2015-05-14 38 views
15

Tôi đang viết một ứng dụng tia lửa và muốn sử dụng các thuật toán trong MLlib. Trong tài liệu API tôi tìm thấy hai lớp khác nhau cho cùng một thuật toán.Sự khác biệt giữa org.apache.spark.ml.classification và org.apache.spark.mllib.classification

Ví dụ: có một LogisticRegression trong org.apache.spark.ml.classification cũng là LogisticRegressionwithSGD trong org.apache.spark.mllib.classification.

Sự khác biệt duy nhất tôi có thể tìm thấy là một trong org.apache.spark.ml được kế thừa từ Công cụ ước tính và có thể được sử dụng trong xác thực chéo. Tôi khá bối rối khi chúng được đặt trong các gói khác nhau. Có ai biết lý do cho nó không? Cảm ơn!

Trả lời

22

Đó là JIRA ticket

Và Từ Design Doc:

MLlib hiện nay bao gồm một lựa chọn cơ bản của thuật toán máy học tập, ví dụ, hồi quy logistic, cây quyết định, xen kẽ phương nhỏ nhất, và k-means. Bộ API hiện tại chứa một số lỗi thiết kế ngăn chúng tôi di chuyển về phía trước tới địa chỉ đường ống học máy thực tế, làm cho MLlib trở thành một dự án có thể mở rộng.

Bộ API mới sẽ hoạt động dưới org.apache.spark.mlo.a.s.mllib sẽ không được dùng nữa khi chúng tôi di chuyển tất cả các tính năng sang o.a.s.ml.

+0

Xin chào Yijie, cảm ơn rất nhiều! Theo tôi hiểu, nếu tôi muốn thực hiện xác nhận chéo trên các thuật toán nằm trong o.a.s.mllib, tôi chỉ có thể đặt các thông số theo cách thủ công và chạy nhiều lần thay vì sử dụng phương thức Cross-validator. Bạn có cách nào tốt hơn để làm điều đó không? – ailzhang

+0

@ailzhang, có thể bạn có thể đăng bài này dưới dạng một câu hỏi khác và xem liệu ai đó có thể giúp tôi không :) Tôi biết rất ít về Mllib –

+0

ok ~ cảm ơn sự giúp đỡ của bạn! – ailzhang

6

Các spark mllib guide nói:

spark.mllib chứa các API gốc được xây dựng trên RDDs.

spark.ml cung cấp API cấp cao hơn được xây dựng trên đầu khung DataFrames để xây dựng đường ống ML.

Sử dụng spark.ml được khuyến khích bởi vì với DataFrames API là linh hoạt hơn và linh hoạt. Nhưng chúng tôi sẽ tiếp tục hỗ trợ spark.mllib cùng với sự phát triển của spark.ml. Người dùng nên thoải mái khi sử dụng các tính năng của spark.mllib và mong đợi nhiều tính năng hơn nữa sẽ đến. Nhà phát triển nên đóng góp các thuật toán mới để spark.ml nếu chúng phù hợp với khái niệm đường ống ML tốt, ví dụ: trình tách và tính năng biến thế.

Tôi nghĩ rằng tài liệu giải thích rất rõ.

Các vấn đề liên quan