ÎncepețiÎncepe gratuit

Spune-i lui Spark cum să regleze modelul tău ALS

Acum trebuie să creăm un ParamGrid pentru a-i spune lui Spark ce hiperparametri vrem să regleze și cum să o facă, apoi să construim un evaluator astfel încât Spark să poată măsura performanța algoritmului.

Acest exercițiu face parte din cursul

Construiește motoare de recomandare cu PySpark

Vezi cursul

Instrucțiuni pentru exercițiu

  • Importă RegressionEvaluator din pyspark.ml.evaluation și ParamGridBuilder și CrossValidator din pyspark.ml.tuning.
  • Construiește un ParamGrid numit param_grid folosind ParamGridBuilder-ul disponibil. Apelează metoda .addGrid() pentru fiecare hiperparametru, furnizând numele modelului și numele fiecărui hiperparametru (ex: .addGrid(als.rank, [])). Fă acest lucru pentru hiperparametrii rank, maxIter și regParam. Furnizează și listele respective de valori pe care Spark ar trebui să le testeze, după cum urmează:
 rank: [10, 50, 100, 150]  
 maxIter: [5, 50, 100, 200]  
 regParam: [.01, .05, .1, .15]  
  • Creează un RegressionEvaluator numit evaluator. Setează metricName la "rmse", setează labelCol la "rating" și spune-i lui Spark că, atunci când generează predicții, să numească predictionCol "prediction".
  • Rulează len(param_grid) pentru a confirma că param_grid a fost creat și că numărul corect de combinații de hiperparametri va fi testat. Acesta ar trebui să fie egal cu numărul de valori rank * numărul de valori maxIter * numărul de valori regParam din ParamGridBuilder.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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))
Editează și rulează codul