Crea modelli impliciti
Ora che hai specificato tutti i valori degli iperparametri, lascia che Spark costruisca abbastanza modelli da testare ogni combinazione. Per facilitare questo, qui è fornito un ciclo for. Segui le istruzioni qui sotto per creare automaticamente questi modelli ALS. Negli esercizi successivi eseguirai questi modelli su insiemi di dati di test per vedere quale funziona meglio.
L'algoritmo ALS è già stato importato per te. Le liste che hai creato nell'esercizio precedente (ranks, maxIters, regParams, alphas) sono già state predisposte.
Questo esercizio fa parte del corso
Costruire motori di raccomandazione con PySpark
Istruzioni dell'esercizio
- Qui è fornita una lista vuota chiamata
model_list. Il cicloforcreerà un modello per ogni combinazione di iperparametri fornita e lo inserirà inmodel_list. - Completa il ciclo
forfacendo riferimento al contenuto di ciascuna lista, doverrappresenta gli elementi della listaranks,mirappresenta gli elementi della listamaxIters,rprappresenta gli elementi della listaregParamsearappresenta gli elementi della listaalphas. - Stampa
len(model_list)e anchemodel_listper assicurarti che ogni modello sia stato creato. La lunghezza dovrebbe essere uguale al prodotto di tutte le lunghezze di ciascuna lista di iperparametri sopra. Puoi eseguire la validazione aggiuntiva fornita per esserne sicuro.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# 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))