Créer un modèle ALS
Spécifions votre premier modèle ALS. Complétez le code ci-dessous pour construire votre premier modèle ALS.
Rappelez-vous que vous pouvez utiliser la méthode .columns sur la trame de données ratings pour voir les noms des colonnes qui contiennent les données d'utilisateur, de film et de cote. Spark doit connaître le nom de ces colonnes pour exécuter correctement ALS.
Cette activité fait partie du cours
Créer des moteurs de recommandation avec PySpark
Instructions de l’exercice
- Avant de créer notre modèle ALS, nous devons diviser les données en données d'entraînement et en données de test. Utilisez la méthode
randomSplit()pour scinder la trame de donnéesratingsentraining_dataettest_dataavec une répartition de 0.8/0.2 respectivement, et unseeddu générateur de nombres aléatoires de42. - Indiquez à Spark quelles colonnes contiennent
userCol,itemColetratingCol. Utilisez la méthode.columnsau besoin. Complétez les hyperparamètres. Réglezrankà 10,maxIterà 15,regParam(lambda) à .1,coldStartStrategyà"drop", l'argumentnonnegativeàTrue, et comme nos données contiennent des cotes explicites, fixez l'argumentimplicitPrefsàFalse. - Ajustez maintenant le modèle
alsà la partietraining_datades donnéesratingsen appelant la méthodeals.fit()surtraining_data. Nommez le modèle ajustémodel. - Générez des prédictions sur la partie
test_datades donnéesratingsen appelant la méthodemodel.transform()surtest_data. Nommez les prédictionstest_predictions. N'hésitez pas à afficher les prédictions en appelant 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()