Crear modelos implícitos
Ahora que ya tienes todos los valores de hiperparámetros definidos, deja que Spark construya suficientes modelos para probar cada combinación. Para facilitarlo, aquí se proporciona un bucle for. Sigue las instrucciones de abajo para crear automáticamente estos modelos de ALS. En los ejercicios siguientes ejecutarás estos modelos sobre conjuntos de datos de prueba para ver cuál funciona mejor.
El algoritmo ALS ya está importado. Las listas que creaste en el ejercicio anterior (ranks, maxIters, regParams, alphas) ya están disponibles para ti.
Este ejercicio forma parte del curso
Creación de motores de recomendación con PySpark
Instrucciones del ejercicio
- Aquí se proporciona una lista vacía llamada
model_list. El bucleforcreará un modelo para cada combinación de hiperparámetros que reciba y lo añadirá amodel_list. - Completa el bucle
forhaciendo referencia al contenido de cada lista, donderrepresenta los elementos de la listaranks,mirepresenta los elementos de la listamaxIters,rprepresenta los elementos de la listaregParamsyarepresenta los elementos de la listaalphas. - Imprime
len(model_list)así comomodel_listpara asegurarte de que se creó cada modelo. La longitud debe ser igual al producto de todas las longitudes de cada lista de hiperparámetros anterior. Puedes ejecutar la validación adicional proporcionada para comprobarlo.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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))