Créer des modèles implicites
Maintenant que vous avez défini toutes les valeurs d’hyperparamètres, laissez Spark entraîner suffisamment de modèles pour tester chaque combinaison. Pour cela, une boucle for est fournie. Suivez les instructions ci-dessous pour créer automatiquement ces modèles ALS. Dans les exercices suivants, vous exécuterez ces modèles sur des jeux de test afin de voir lequel donne les meilleures performances.
L’algorithme ALS a déjà été importé pour vous. Les listes que vous avez créées dans l’exercice précédent (ranks, maxIters, regParams, alphas) ont été préparées pour vous.
Cet exercice fait partie du cours
<cours>Créer des moteurs de recommandation avec PySpark</cours>Instructions de l’exercice
- Une liste vide appelée
model_listest fournie ici. La boucleforcréera un modèle pour chaque combinaison d’hyperparamètres fournie et l’ajoutera àmodel_list. - Complétez la boucle
foren référençant le contenu de chaque liste :rreprésente les éléments de la listeranks,miceux demaxIters,rpceux deregParamsetaceux dealphas. - Affichez
len(model_list)ainsi quemodel_listpour vérifier que chaque modèle a bien été créé. La longueur doit être égale au produit des longueurs de chacune des listes d’hyperparamètres ci-dessus. Vous pouvez exécuter la validation supplémentaire fournie pour en être sûr.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# For loop will automatically create and store ALS models
for r in ____:
for mi in ____:
for rp in ____:
for a in ____:
model_list.append(ALS(userCol= "userId", itemCol= "songId", ratingCol= "num_plays", rank = r, maxIter = mi, regParam = rp, alpha = a, coldStartStrategy="drop", nonnegative = True, implicitPrefs = True))
# Print the model list, and the length of model_list
print (model_list, "Length of model_list: ", len(____))
# Validate
len(model_list) == (len(ranks)*len(maxIters)*len(regParams)*len(alphas))