11

Tôi muốn thử một ví dụ về thuật toán học máy ALS. Và mã của tôi hoạt động tốt, Tuy nhiên tôi không hiểu tham số rank được sử dụng trong thuật toán.Thứ hạng trong máy ALS Học thuật toán trong Apache Spark Mllib

Tôi đã sau mã trong java

// Build the recommendation model using ALS 
    int rank = 10; 
    int numIterations = 10; 
    MatrixFactorizationModel model = ALS.train(JavaRDD.toRDD(ratings), 
      rank, numIterations, 0.01); 

Tôi đã đọc một số nơi mà nó là số nhân tố tiềm ẩn trong mô hình.

Giả sử tôi có tập dữ liệu (người dùng, sản phẩm, xếp hạng) có 100 hàng. Giá trị phải là rank (các yếu tố tiềm ẩn).

Trả lời

15

Như bạn đã nói thứ hạng đề cập đến các yếu tố tiềm ẩn hoặc ẩn được cho là giả định. Ví dụ: nếu bạn đang đo lường xem có bao nhiêu người thích phim và cố gắng dự đoán trước thì bạn có thể có ba trường: người, phim, số lượng ngôi sao. Bây giờ, hãy nói rằng bạn đã toàn tri và bạn biết sự thật tuyệt đối và bạn biết rằng trên thực tế tất cả các xếp hạng phim có thể được dự đoán hoàn hảo bởi chỉ 3 yếu tố ẩn, giới tính, tuổi tác và thu nhập. Trong trường hợp đó, "xếp hạng" của lần chạy của bạn phải là 3.

Tất nhiên, bạn không biết có bao nhiêu yếu tố cơ bản, nếu có, thúc đẩy dữ liệu của bạn để bạn phải đoán. Bạn càng sử dụng càng nhiều thì kết quả sẽ càng tốt, nhưng bạn càng cần nhiều thời gian nhớ và tính toán.

Một cách để làm việc đó là bắt đầu với xếp hạng 5-10, sau đó tăng 5 lần mỗi lần cho đến khi kết quả của bạn ngừng cải thiện. Bằng cách đó bạn xác định thứ hạng tốt nhất cho tập dữ liệu của bạn bằng cách thử nghiệm.

+0

Tyler, Cảm ơn lời giải thích tốt như vậy. Tuy nhiên, tôi có một câu hỏi ở đây, các yếu tố tiềm ẩn, mà chúng tôi giả định, họ chỉ là người dùng (lựa chọn, sở thích) hoặc họ có thể bao gồm các đặc điểm của mặt hàng đó? –

+1

Đó hoàn toàn là một đặc tính của dữ liệu. –

+0

nếu bạn có thể đưa ra chính xác câu trả lời cho Lambda, mà tôi tin là thông số ALS duy nhất khác sử dụng ... Đây là câu trả lời hay nhất tôi đã tìm thấy để xếp hạng –

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