Bygg implicita modeller
Nu när du har angett alla hyperparametervärden är det dags att låta Spark bygga tillräckligt många modeller för att testa varje kombination. För att underlätta detta finns en for-slinga tillhandahållen här. Följ instruktionerna nedan för att automatiskt skapa dessa ALS-modeller. I kommande övningar kör du modellerna på testdata för att se vilken som presterar bäst.
ALS-algoritmen är redan importerad. Listorna du skapade i föregående övning (ranks, maxIters, regParams, alphas) är redan tillgängliga.
Den här övningen är en del av kursen
Bygg rekommendationsmotorer med PySpark
Övningsinstruktioner
- En tom lista kallad
model_listfinns redan.for-slingan skapar en modell för varje kombination av hyperparametrar och lägger till den imodel_list. - Fyll i
for-slingan genom att referera till innehållet i varje lista, därrrepresenterar elementen i listanranks,mirepresenterar elementen imaxIters,rprepresenterar elementen iregParamsocharepresenterar elementen ialphas. - Skriv ut
len(model_list)ochmodel_listför att kontrollera att varje modell skapades korrekt. Längden ska vara lika med produkten av längderna på alla hyperparameterlistor ovan. Du kan även köra den extra valideringen som tillhandahålls för att bekräfta detta.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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))