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>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 dataframeratingsentraining_dataettest_dataavec une répartition respectivement de 0.8/0.2 et unseedpour le générateur aléatoire de42. - Indiquez à Spark quelles colonnes contiennent
userCol,itemColetratingCol. Utilisez la méthode.columnssi besoin. Complétez les hyperparamètres. Définissezrankà 10,maxIterà 15,regParam(lambda) à .1,coldStartStrategyà"drop", l’argumentnonnegativeàTrue, et comme nos données contiennent des évaluations explicites, définissez l’argumentimplicitPrefsàFalse. - Ajustez maintenant le modèle
alssur la partietraining_datades donnéesratingsen appelant la méthodeals.fit()sur letraining_datafourni. Nommez le modèle ajustémodel. - Générez des prédictions sur la partie
test_datades donnéesratingsen appelant la méthodemodel.transform()sur letest_datafourni. Nommez les prédictionstest_predictions. N’hésitez pas à visualiser les prédictions avec la méthode.show()surtest_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()