BaşlayınÜcretsiz başlayın

Spark'a ALS modelini nasıl ayarlayacağını söyle

Şimdi Spark'a hangi hiperparametreleri ayarlamasını istediğimizi, bunları nasıl ayarlayacağını söylemek için bir ParamGrid oluşturacağız ve Spark'ın algoritmanın performansını nasıl ölçeceğini bilmesi için bir değerlendirici kuracağız.

Bu egzersiz, kursun bir parçasıdır

PySpark ile Öneri Motorları Oluşturma

Kursa Göz Atın

Egzersiz talimatları

  • pyspark.ml.evaluation içinden RegressionEvaluator'ı ve pyspark.ml.tuning içinden ParamGridBuilder ile CrossValidator'ı içe aktar.
  • Verilen ParamGridBuilder'ı kullanarak param_grid adlı bir ParamGrid oluştur. Her bir hiperparametre için modelin adı ve hiperparametrenin adını vererek .addGrid() metodunu çağır (ör.: .addGrid(als.rank, [])). Bunu rank, maxIter ve regParam hiperparametreleri için yap. Ayrıca Spark'ın denemesi gereken ilgili hiperparametre değer listelerini aşağıdaki gibi ver:
 rank: [10, 50, 100, 150]  
 maxIter: [5, 50, 100, 200]  
 regParam: [.01, .05, .1, .15]  
  • evaluator adlı bir RegressionEvaluator oluştur. metricName'i "rmse" olarak, labelCol'u "rating" olarak ayarla ve Spark'a tahminler oluşturduğunda predictionCol için "prediction" adını kullanmasını söyle.
  • len(param_grid) çalıştırarak param_grid'in oluşturulduğunu ve doğru sayıda hiperparametre kombinasyonunun test edileceğini doğrula. Bu değer, ParamGridBuilder içindeki rank değerlerinin sayısı * maxIter değerlerinin sayısı * regParam değerlerinin sayısına eşit olmalı.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# 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))
Kodu Düzenle ve Çalıştır