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
Egzersiz talimatları
pyspark.ml.evaluationiçindenRegressionEvaluator'ı vepyspark.ml.tuningiçindenParamGridBuilderileCrossValidator'ı içe aktar.- Verilen
ParamGridBuilder'ı kullanarakparam_gridadlı birParamGridoluştur. Her bir hiperparametre için modelin adı ve hiperparametrenin adını vererek.addGrid()metodunu çağır (ör.:.addGrid(als.rank, [])). Bunurank,maxIterveregParamhiperparametreleri 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]
evaluatoradlı birRegressionEvaluatoroluştur.metricName'i"rmse"olarak,labelCol'u"rating"olarak ayarla ve Spark'a tahminler oluşturduğundapredictionColiç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))