Beritahu Spark cara menyetel model ALS Anda
Sekarang kita perlu membuat ParamGrid untuk memberi tahu Spark hiperparameter apa yang ingin kita setel, bagaimana cara menyetelnya, lalu membangun evaluator agar Spark dapat mengetahui cara mengukur kinerja algoritme.
Latihan ini merupakan bagian dari kursus
Membangun Recommendation Engine dengan PySpark
Instruksi latihan
- Impor
RegressionEvaluatordaripyspark.ml.evaluationsertaParamGridBuilderdanCrossValidatordaripyspark.ml.tuning. - Bangun
ParamGridbernamaparam_gridmenggunakanParamGridBuilderyang disediakan. Panggil metode.addGrid()pada setiap hiperparameter dengan memberikan nama model dan nama masing-masing hiperparameter (contoh:.addGrid(als.rank, [])). Lakukan ini untuk hiperparameterrank,maxIter, danregParam. Sertakan juga daftar nilai hiperparameter yang harus dicoba Spark, seperti berikut:
rank: [10, 50, 100, 150]
maxIter: [5, 50, 100, 200]
regParam: [.01, .05, .1, .15]
- Buat
RegressionEvaluatorbernamaevaluator. AturmetricNameke"rmse", aturlabelColke"rating", dan beri tahu Spark bahwa saat menghasilkan prediksi, gunakanpredictionColbernama"prediction". - Jalankan
len(param_grid)untuk memastikan bahwa param_grid telah dibuat dan untuk memastikan jumlah kombinasi hiperparameter yang benar akan diuji. Nilainya harus sama dengan jumlah nilai rank × jumlah nilai maxIter × jumlah nilai regParam dalam ParamGridBuilder.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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))