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 ID d'utilisateurs itemCol : Nom de la colonne contenant les ID d'articles ratingCol : Nom de la colonne contenant les cotes

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 : Abordé plus loin. Utilisé seulement avec des cotes implicites.als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Autres arguments
nonnegative = True : Garantit des nombres positifsals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Autres arguments
nonnegative = True : Garantit des nombres positifscoldStartStrategy = "drop" : Corrige les enjeux de découpage 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)
Autres arguments
nonnegative = True : Garantit des nombres positifscoldStartStrategy = "drop" : Corrige les enjeux de découpage test/entraînementimplicitPrefs = True : Vrai/Faux selon le type de cotesals = 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