EmpezarEmpieza gratis

Crea un modelo ALS

Vamos a definir tu primer modelo ALS. Completa el código de abajo para construir tu primer modelo ALS.

Recuerda que puedes usar el método .columns sobre el data frame ratings para ver cómo se llaman las columnas que contienen los datos de usuario, película y calificaciones. Spark necesita conocer los nombres de estas columnas para ejecutar correctamente ALS.

Este ejercicio forma parte del curso

Creación de motores de recomendación con PySpark

Ver curso

Instrucciones del ejercicio

  • Antes de construir nuestro modelo ALS, necesitamos dividir los datos en entrenamiento y prueba. Usa el método randomSplit() para dividir el dataframe ratings en training_data y test_data con un reparto 0.8/0.2 respectivamente y una seed para el generador aleatorio de 42.
  • Indica a Spark qué columnas contienen userCol, itemCol y ratingCol. Usa el método .columns si lo necesitas. Completa los hiperparámetros. Establece rank en 10, maxIter en 15, regParam o lambda en .1, coldStartStrategy en "drop", el argumento nonnegative en True y, como nuestros datos contienen calificaciones explícitas, pon el argumento implicitPrefs en False.
  • Ahora ajusta el modelo als a la parte training_data de los datos ratings llamando al método als.fit() sobre el training_data proporcionado. Llama model al modelo ajustado.
  • Genera predicciones sobre la parte test_data de los datos ratings llamando al método model.transform() sobre el test_data proporcionado. Llama test_predictions a las predicciones. Si quieres, visualiza las predicciones llamando al método .show() sobre test_predictions.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# 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()
Editar y ejecutar código