ПочатиПочніть безкоштовно

Підкажіть Spark, як тюнити вашу модель ALS

Тепер потрібно створити 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" і вкажіть Spark, що під час генерації прогнозів слід назвати стовпець predictionCol "prediction".
  • Запустіть 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))
Редагувати та запускати код