НачатьНачать бесплатно

Построение модели 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) — 0,1, coldStartStrategy"drop", аргумент nonnegative задайте как True, а поскольку данные содержат явные оценки, установите аргумент implicitPrefs равным False.
  • Обучите модель als на тренировочной части данных training_data, вызвав метод als.fit() и передав в него training_data. Сохраните обученную модель под именем model.
  • Сгенерируйте предсказания для тестовой части данных test_data, вызвав метод 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()
Редактировать и запускать код