Kom igångKom igång gratis

Ange för Spark hur din ALS-modell ska finjusteras

Nu behöver vi skapa ett ParamGrid för att tala om för Spark vilka hyperparametrar vi vill att den ska justera och hur, samt bygga en utvärderare så att Spark vet hur algoritmens prestanda ska mätas.

Den här övningen är en del av kursen

Bygg rekommendationsmotorer med PySpark

Visa kurs

Övningsinstruktioner

  • Importera RegressionEvaluator från pyspark.ml.evaluation samt ParamGridBuilder och CrossValidator från pyspark.ml.tuning.
  • Bygg ett ParamGrid med namnet param_grid med hjälp av den tillhandahållna ParamGridBuilder. Anropa metoden .addGrid() för varje hyperparameter genom att ange modellens namn och namnet på respektive hyperparameter (ex: .addGrid(als.rank, [])). Gör detta för hyperparametrarna rank, maxIter och regParam. Ange också de respektive listorna med hyperparametervärden som Spark ska prova, enligt följande:
 rank: [10, 50, 100, 150]  
 maxIter: [5, 50, 100, 200]  
 regParam: [.01, .05, .1, .15]  
  • Skapa en RegressionEvaluator med namnet evaluator. Sätt metricName till "rmse", sätt labelCol till "rating", och ange för Spark att prediktionskolumnen ska kallas predictionCol "prediction".
  • Kör len(param_grid) för att bekräfta att param_grid skapades korrekt och att rätt antal hyperparameterkombinationer kommer att testas. Antalet ska vara lika med antalet rank-värden * antalet maxIter-värden * antalet regParam-värden i ParamGridBuilder.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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))
Redigera och kör kod