Xây dựng mô hình implicit
Giờ khi bạn đã xác định xong mọi giá trị siêu tham số, hãy để Spark xây đủ số mô hình để thử mọi kết hợp. Để hỗ trợ việc này, một vòng lặp for đã được cung cấp. Làm theo hướng dẫn bên dưới để tự động tạo các mô hình ALS này. Ở các bài tập tiếp theo, bạn sẽ chạy các mô hình này trên tập dữ liệu kiểm tra để xem mô hình nào hoạt động tốt nhất.
Thuật toán ALS đã được nhập sẵn cho bạn. Các danh sách bạn tạo trong bài tập trước (ranks, maxIters, regParams, alphas) cũng đã được tạo sẵn.
Bài tập này là một phần của khóa học
Xây dựng Recommendation Engine với PySpark
Hướng dẫn bài tập
- Một danh sách rỗng tên là
model_listđược cung cấp sẵn. Vòng lặpforsẽ tạo một mô hình cho mỗi tổ hợp siêu tham số được đưa vào và thêm nó vàomodel_list. - Hoàn thiện vòng lặp
forbằng cách tham chiếu nội dung của từng danh sách, trong đórlà các phần tử của danh sáchranks,milà các phần tử của danh sáchmaxIters,rplà các phần tử của danh sáchregParamsvàalà các phần tử của danh sáchalphas. - In
len(model_list)cũng nhưmodel_listđể đảm bảo mỗi mô hình đã được tạo. Độ dài phải bằng tích độ dài của tất cả các danh sách siêu tham số ở trên. Bạn có thể chạy phần kiểm tra bổ sung được cung cấp để chắc chắn.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# For loop will automatically create and store ALS models
for r in ____:
for mi in ____:
for rp in ____:
for a in ____:
model_list.append(ALS(userCol= "userId", itemCol= "songId", ratingCol= "num_plays", rank = r, maxIter = mi, regParam = rp, alpha = a, coldStartStrategy="drop", nonnegative = True, implicitPrefs = True))
# Print the model list, and the length of model_list
print (model_list, "Length of model_list: ", len(____))
# Validate
len(model_list) == (len(ranks)*len(maxIters)*len(regParams)*len(alphas))