Comece agoraComece grátis

Diga ao Spark como ajustar seu modelo ALS

Agora vamos criar um ParamGrid para informar ao Spark quais hiperparâmetros queremos ajustar, como ajustá-los e, em seguida, construir um avaliador para que o Spark saiba como medir o desempenho do algoritmo.

Este exercicio faz parte do curso

Construindo mecanismos de recomendação com PySpark

Ver curso

Instruções do exercicio

  • Importe RegressionEvaluator de pyspark.ml.evaluation e ParamGridBuilder e CrossValidator de pyspark.ml.tuning.
  • Construa um ParamGrid chamado param_grid usando o ParamGridBuilder fornecido. Chame o método .addGrid() para cada hiperparâmetro, informando o nome do modelo e o nome de cada hiperparâmetro (ex: .addGrid(als.rank, [])). Faça isso para os hiperparâmetros rank, maxIter e regParam. Também forneça as respectivas listas de valores de hiperparâmetros que o Spark deve testar, conforme indicado aqui:
 rank: [10, 50, 100, 150]  
 maxIter: [5, 50, 100, 200]  
 regParam: [.01, .05, .1, .15]  
  • Crie um RegressionEvaluator chamado evaluator. Defina metricName como "rmse", defina labelCol como "rating" e diga ao Spark que, ao gerar previsões, chame a predictionCol de "prediction".
  • Execute len(param_grid) para confirmar que o param_grid foi criado e para verificar que o número correto de combinações de hiperparâmetros será testado. Ele deve ser igual ao número de valores de rank * o número de valores de maxIter * o número de valores de regParam no ParamGridBuilder.

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

# 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 e Executar Código