EmpezarEmpieza gratis

Indica a Spark cómo ajustar tu modelo ALS

Ahora necesitamos crear un ParamGrid para indicarle a Spark qué hiperparámetros queremos que ajuste, cómo debe ajustarlos y, después, construir un evaluador para que Spark sepa cómo medir el rendimiento del algoritmo.

Este ejercicio forma parte del curso

Creación de motores de recomendación con PySpark

Ver curso

Instrucciones del ejercicio

  • Importa RegressionEvaluator de pyspark.ml.evaluation y ParamGridBuilder y CrossValidator de pyspark.ml.tuning.
  • Construye un ParamGrid llamado param_grid usando el ParamGridBuilder proporcionado. Llama al método .addGrid() para cada hiperparámetro indicando el nombre del modelo y el nombre de cada hiperparámetro (p. ej., .addGrid(als.rank, [])). Hazlo para los hiperparámetros rank, maxIter y regParam. Indica también las listas de valores de hiperparámetros que Spark debe probar, tal como se muestran aquí:
 rank: [10, 50, 100, 150]  
 maxIter: [5, 50, 100, 200]  
 regParam: [.01, .05, .1, .15]  
  • Crea un RegressionEvaluator llamado evaluator. Establece metricName en "rmse", labelCol en "rating", y dile a Spark que, cuando genere predicciones, llame a la predictionCol "prediction".
  • Ejecuta len(param_grid) para confirmar que se creó el param_grid y que se probará el número correcto de combinaciones de hiperparámetros. Debe ser igual al número de valores de rank * el número de valores de maxIter * el número de valores de regParam en el ParamGridBuilder.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# Import the requisite items
from pyspark.ml.evaluation import ____
from pyspark.ml.____ import ____, ____

# Add hyperparameters and their respective values to param_grid
____ = ParamGridBuilder() \
            .addGrid(als.rank, [____, ____, ____, ____]) \
            .addGrid(als.____, [____, ____, ____, ____]) \
            .addGrid(als.____, [____, ____, ____, ____]) \
            .build()
           
# Define evaluator as RMSE and print length of evaluator
____ = RegressionEvaluator(metricName="____", labelCol="____", predictionCol="____") 
print ("Num models to be tested: ", len(param_grid))
Editar y ejecutar código