Mulai sekarangMulai gratis

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

Lihat Kursus

Instruksi latihan

  • Impor RegressionEvaluator dari pyspark.ml.evaluation serta ParamGridBuilder dan CrossValidator dari pyspark.ml.tuning.
  • Bangun ParamGrid bernama param_grid menggunakan ParamGridBuilder yang disediakan. Panggil metode .addGrid() pada setiap hiperparameter dengan memberikan nama model dan nama masing-masing hiperparameter (contoh: .addGrid(als.rank, [])). Lakukan ini untuk hiperparameter rank, maxIter, dan regParam. 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 RegressionEvaluator bernama evaluator. Atur metricName ke "rmse", atur labelCol ke "rating", dan beri tahu Spark bahwa saat menghasilkan prediksi, gunakan predictionCol bernama "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))
Edit dan Jalankan Kode