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

Побудуйте модель ALS

Задамо вашу першу модель ALS. Доповніть код нижче, щоб зібрати свою першу модель ALS.

Нагадаємо, що ви можете скористатися методом .columns у датафреймі ratings, щоб переглянути назви стовпців, які містять дані про користувача, фільм і оцінки. Spark має знати назви цих стовпців, щоб коректно виконувати ALS.

Ця вправа є частиною курсу

Створення рушіїв рекомендацій у PySpark

Переглянути курс

Інструкції до вправи

  • Перш ніж будувати модель ALS, потрібно розбити дані на тренувальні та тестові. Скористайтеся методом randomSplit(), щоб розділити датафрейм ratings на training_data та test_data у пропорції 0.8/0.2 відповідно та з seed генератора випадкових чисел 42.
  • Вкажіть для Spark, які стовпці містять userCol, itemCol і ratingCol. За потреби використайте метод .columns. Заповніть гіперпараметри. Встановіть rank на 10, maxIter на 15, regParam (lambda) на .1, coldStartStrategy на "drop", аргумент nonnegative має бути True, а оскільки наші дані містять явні оцінки, встановіть implicitPrefs на False.
  • Тепер навчіть модель als на частині training_data з даних ratings, викликавши метод als.fit() на наданому training_data. Назвіть отриману модель model.
  • Згенеруйте передбачення на частині test_data з даних ratings, викликавши метод model.transform() на наданому test_data. Назвіть передбачення test_predictions. За бажання перегляньте їх, викликавши метод .show() на test_predictions.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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()
Редагувати та запускати код