CommencerCommencez gratuitement

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>
Voir le cours

Instructions de l’exercice

  • Une liste vide appelée model_list est fournie ici. La boucle for créera un modèle pour chaque combinaison d’hyperparamètres fournie et l’ajoutera à model_list.
  • Complétez la boucle for en référençant le contenu de chaque liste : r représente les éléments de la liste ranks, mi ceux de maxIters, rp ceux de regParams et a ceux de alphas.
  • Affichez len(model_list) ainsi que model_list pour 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))
Modifier et exécuter le code