CommencerCommencez gratuitement

Construire un modèle ALS

Spécifions votre premier modèle ALS. Complétez le code ci-dessous pour créer votre premier modèle ALS.

Rappelez-vous que vous pouvez utiliser la méthode .columns sur le data frame ratings pour voir les noms des colonnes contenant les données d’utilisateur, de film et de notation. Spark doit connaître ces noms de colonnes pour exécuter correctement ALS.

Cet exercice fait partie du cours

<cours>Créer des moteurs de recommandation avec PySpark</cours>
Voir le cours

Instructions de l’exercice

  • Avant de construire notre modèle ALS, nous devons diviser les données en un jeu d’entraînement et un jeu de test. Utilisez la méthode randomSplit() pour scinder le dataframe ratings en training_data et test_data avec une répartition respectivement de 0.8/0.2 et un seed pour le générateur aléatoire de 42.
  • Indiquez à Spark quelles colonnes contiennent userCol, itemCol et ratingCol. Utilisez la méthode .columns si besoin. Complétez les hyperparamètres. Définissez rank à 10, maxIter à 15, regParam (lambda) à .1, coldStartStrategy à "drop", l’argument nonnegative à True, et comme nos données contiennent des évaluations explicites, définissez l’argument implicitPrefs à False.
  • Ajustez maintenant le modèle als sur la partie training_data des données ratings en appelant la méthode als.fit() sur le training_data fourni. Nommez le modèle ajusté model.
  • Générez des prédictions sur la partie test_data des données ratings en appelant la méthode model.transform() sur le test_data fourni. Nommez les prédictions test_predictions. N’hésitez pas à visualiser les prédictions avec la méthode .show() sur test_predictions.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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()
Modifier et exécuter le code