Xây dựng mô hình ALS
Hãy khai báo mô hình ALS đầu tiên của bạn. Hoàn thành đoạn mã bên dưới để xây dựng mô hình ALS đầu tiên.
Nhớ rằng bạn có thể dùng phương thức .columns trên dataframe ratings để xem tên các cột chứa dữ liệu người dùng, phim và điểm đánh giá. Spark cần biết tên các cột này để chạy ALS chính xác.
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
- Trước khi xây dựng mô hình ALS, bạn cần chia dữ liệu thành tập huấn luyện và tập kiểm tra. Dùng phương thức
randomSplit()để chia dataframeratingsthànhtraining_datavàtest_datatheo tỷ lệ lần lượt 0.8/0.2 và đặtseedcho bộ sinh số ngẫu nhiên là42. - Chỉ cho Spark biết những cột nào là
userCol,itemColvàratingCol. Dùng phương thức.columnsnếu cần. Hoàn thiện các siêu tham số. Đặtrank= 10,maxIter= 15,regParam(lambda) = .1,coldStartStrategy="drop", đối sốnonnegativeđặt làTrue, và vì dữ liệu của chúng ta là đánh giá tường minh, đặt đối sốimplicitPrefslàFalse. - Bây giờ hãy fit mô hình
alstrên phầntraining_datacủa dữ liệuratingsbằng cách gọi phương thứcals.fit()trêntraining_datađược cung cấp. Gọi mô hình đã fit làmodel. - Tạo dự đoán trên phần
test_datacủa dữ liệuratingsbằng cách gọi phương thứcmodel.transform()trêntest_datađược cung cấp. Gọi các dự đoán làtest_predictions. Bạn có thể xem các dự đoán bằng cách gọi phương thức.show()trêntest_predictions
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.
# Split the ratings dataframe into training and test data
(training_data, test_data) = ratings.____([____, ____], seed=42)
# Set the ALS hyperparameters
from pyspark.ml.recommendation import ALS
als = ALS(userCol="____", itemCol="____", ratingCol="____", rank =____, maxIter =____, regParam =____,
coldStartStrategy="____", nonnegative =____, implicitPrefs = ____)
# Fit the mdoel to the training_data
____ = ____.fit(____)
# Generate predictions on the test_data
____ = ____.transform(____)
test_predictions.show()