Cho Spark biết cách tinh chỉnh mô hình ALS của bạn
Bây giờ bạn sẽ tạo một ParamGrid để cho Spark biết cần tinh chỉnh những siêu tham số nào, tinh chỉnh ra sao, rồi xây dựng một evaluator để Spark biết cách đo lường hiệu suất của thuật toá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
- Import
RegressionEvaluatortừpyspark.ml.evaluationvàParamGridBuildercùngCrossValidatortừpyspark.ml.tuning. - Xây dựng một
ParamGridtên làparam_gridbằngParamGridBuilderđã cung cấp. Gọi phương thức.addGrid()cho từng siêu tham số bằng cách truyền vào tên của mô hình và tên từng siêu tham số (ví dụ:.addGrid(als.rank, [])). Thực hiện cho các siêu tham sốrank,maxItervàregParam. Đồng thời cung cấp danh sách các giá trị siêu tham số mà Spark sẽ thử như sau:
rank: [10, 50, 100, 150]
maxIter: [5, 50, 100, 200]
regParam: [.01, .05, .1, .15]
- Tạo một
RegressionEvaluatortên làevaluator. ĐặtmetricNamelà"rmse", đặtlabelCollà"rating", và cho Spark biết khi tạo dự đoán thì gọi cột dự đoán là"prediction"trongpredictionCol. - Chạy
len(param_grid)để xác nhận rằng param_grid đã được tạo và số lượng tổ hợp siêu tham số sẽ được kiểm thử là đúng. Con số này phải bằng số giá trị của rank * số giá trị của maxIter * số giá trị của regParam trong ParamGridBuilder.
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.
# Import the requisite items
from pyspark.ml.evaluation import ____
from pyspark.ml.____ import ____, ____
# Add hyperparameters and their respective values to param_grid
____ = ParamGridBuilder() \
.addGrid(als.rank, [____, ____, ____, ____]) \
.addGrid(als.____, [____, ____, ____, ____]) \
.addGrid(als.____, [____, ____, ____, ____]) \
.build()
# Define evaluator as RMSE and print length of evaluator
____ = RegressionEvaluator(metricName="____", labelCol="____", predictionCol="____")
print ("Num models to be tested: ", len(param_grid))