Настройте гиперпараметры ALS-модели для Spark
Теперь нам нужно создать ParamGrid, чтобы указать Spark, какие гиперпараметры требуется настроить и каким образом, а затем создать оценщик, с помощью которого Spark сможет измерять производительность алгоритма.
Это упражнение является частью курса
Построение рекомендательных систем с помощью PySpark
Инструкции к упражнению
- Импортируйте
RegressionEvaluatorизpyspark.ml.evaluation, а такжеParamGridBuilderиCrossValidatorизpyspark.ml.tuning. - Постройте
ParamGridс именемparam_grid, используя предоставленныйParamGridBuilder. Вызовите метод.addGrid()для каждого гиперпараметра, передав имя модели и имя гиперпараметра (например:.addGrid(als.rank, [])). Сделайте это для гиперпараметровrank,maxIterиregParam. Укажите соответствующие списки значений, которые Spark должен перебрать:
rank: [10, 50, 100, 150]
maxIter: [5, 50, 100, 200]
regParam: [.01, .05, .1, .15]
- Создайте
RegressionEvaluatorс именемevaluator. УстановитеmetricNameв значение"rmse",labelCol— в значение"rating", аpredictionCol— в значение"prediction", чтобы Spark корректно обрабатывал сгенерированные прогнозы. - Запустите
len(param_grid), чтобы убедиться, чтоparam_gridсоздан, и проверить, что будет протестировано правильное количество комбинаций гиперпараметров. Оно должно быть равно произведению количества значенийrank,maxIterиregParamвParamGridBuilder.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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))