Řekni Sparku, jak ladit tvůj ALS model
Teď vytvoříme ParamGrid, který Sparku řekne, jaké hyperparametry má ladit a jak to dělat. Pak sestavíme evaluátor, aby Spark věděl, jak měřit výkon algoritmu.
Toto cvičení je součástí kurzu
Tvorba doporučovacích systémů s PySparkem
Pokyny k cvičení
- Importuj
RegressionEvaluatorzpyspark.ml.evaluationaParamGridBuilderaCrossValidatorzpyspark.ml.tuning. - Pomocí
ParamGridBuildersestavParamGrids názvemparam_grid. Na každý hyperparametr zavolej metodu.addGrid()– zadej název modelu a název daného hyperparametru (např..addGrid(als.rank, [])). Udělej to pro hyperparametryrank,maxIteraregParam. Jako hodnoty, které má Spark vyzkoušet, použij tyto seznamy:
rank: [10, 50, 100, 150]
maxIter: [5, 50, 100, 200]
regParam: [.01, .05, .1, .15]
- Vytvoř
RegressionEvaluators názvemevaluator. NastavmetricNamena"rmse",labelColna"rating"a Sparku řekni, že sloupec s predikcemi má pojmenovatpredictionColjako"prediction". - Spusť
len(param_grid), abys ověřil/a, že bylparam_gridsprávně vytvořen a že bude otestován správný počet kombinací hyperparametrů. Výsledek by se měl rovnat počtu hodnot rank * počtu hodnot maxIter * počtu hodnot regParam vParamGridBuilder.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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))