Créer des moteurs de recommandation avec PySpark
Jamen Long
Data Scientist at Nike
als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Arguments
userCol : nom de la colonne contenant les identifiants utilisateur itemCol : nom de la colonne contenant les identifiants d'élément ratingCol : nom de la colonne contenant les notes

als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Hyperparamètres
rank, $k$ : nombre de caractéristiques latentesals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Hyperparamètres
rank, $k$ : nombre de caractéristiques latentesmaxIter : nombre d'itérationsals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Hyperparamètres
rank, $k$ : nombre de caractéristiques latentesmaxIter : nombre d'itérationsregParam : lambdaals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Hyperparamètres
rank, $k$ : nombre de caractéristiques latentesmaxIter : nombre d'itérationsregParam : lambdaalpha : traité plus loin. Utilisé uniquement avec des notes implicites.als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Arguments supplémentaires
nonnegative = True : garantit des valeurs positivesals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Arguments supplémentaires
nonnegative = True : garantit des valeurs positivescoldStartStrategy = "drop" : corrige les problèmes de découpe test/entraînementals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Arguments supplémentaires
nonnegative = True : garantit des valeurs positivescoldStartStrategy = "drop" : corrige les problèmes de découpe test/entraînementimplicitPrefs = True : True/False selon le type de notesals = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
# Fit ALS to training dataset
model = als.fit(training_data)
# Generate predictions on test dataset
predictions = model.transform(test_data)
Créer des moteurs de recommandation avec PySpark