EmpezarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Aquí se proporciona una lista vacía llamada model_list. El bucle for creará un modelo para cada combinación de hiperparámetros que reciba y lo añadirá a model_list.
  • Completa el bucle for haciendo referencia al contenido de cada lista, donde r representa los elementos de la lista ranks, mi representa los elementos de la lista maxIters, rp representa los elementos de la lista regParams y a representa los elementos de la lista alphas.
  • Imprime len(model_list) así como model_list para 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))
Editar y ejecutar código