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
Instrucțiuni pentru exercițiu
- Importă
RegressionEvaluatordinpyspark.ml.evaluationșiParamGridBuilderșiCrossValidatordinpyspark.ml.tuning. - Construiește un
ParamGridnumitparam_gridfolosindParamGridBuilder-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 hiperparametriirank,maxIterșiregParam. 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
RegressionEvaluatornumitevaluator. SeteazămetricNamela"rmse", seteazălabelColla"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_grida 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 valorirank* numărul de valorimaxIter* numărul de valoriregParamdinParamGridBuilder.
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))