Impliciete modellen bouwen
Nu je alle hyperparameterwaarden hebt vastgelegd, kan Spark genoeg modellen bouwen om elke combinatie te testen. Hiervoor is een for-lus meegeleverd. Volg de instructies hieronder om deze ALS-modellen automatisch te maken. In de volgende oefeningen laat je deze modellen op testgegevenssets draaien om te zien welke het beste presteert.
Het ALS-algoritme is al voor je geïmporteerd. De lijsten die je in de vorige oefening hebt gemaakt (ranks, maxIters, regParams, alphas) zijn voor je klaargezet.
Deze oefening maakt deel uit van de cursus
Aanbevelingssystemen bouwen met PySpark
Oefeninstructies
- Er is een lege lijst
model_listbeschikbaar. Defor-lus maakt voor elke combinatie van hyperparameters een model en stopt dat inmodel_list. - Maak de
for-lus af door te verwijzen naar de inhoud van elke lijst, waarbijrde elementen van de lijstranksvoorstelt,mide elementen van de lijstmaxIters,rpde elementen van de lijstregParamsenade elementen van de lijstalphas. - Print
len(model_list)énmodel_listom te controleren dat elk model is aangemaakt. De lengte moet gelijk zijn aan het product van alle lengtes van elke hyperparameterlijst hierboven. Je kunt de extra validatie uitvoeren om zeker te zijn.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# 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))