Začněte nyníZačněte zdarma

Ř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

Zobrazit kurz

Pokyny k cvičení

  • Importuj RegressionEvaluator z pyspark.ml.evaluation a ParamGridBuilder a CrossValidator z pyspark.ml.tuning.
  • Pomocí ParamGridBuilder sestav ParamGrid s názvem param_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 hyperparametry rank, maxIter a regParam. 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ř RegressionEvaluator s názvem evaluator. Nastav metricName na "rmse", labelCol na "rating" a Sparku řekni, že sloupec s predikcemi má pojmenovat predictionCol jako "prediction".
  • Spusť len(param_grid), abys ověřil/a, že byl param_grid sprá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 v ParamGridBuilder.

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))
Upravit a spustit kód