Spark को बताएँ कि आपका ALS मॉडल कैसे ट्यून करना है
अब हमें एक ParamGrid बनाना है ताकि Spark को बताएँ कि किन हाइपरपैरामीटर्स को ट्यून करना है, उन्हें कैसे ट्यून करना है, और फिर एक evaluator बनाएँ ताकि Spark एल्गोरिदम के परफॉर्मेंस को माप सके।
यह अभ्यास पाठ्यक्रम का हिस्सा है
PySpark के साथ Recommendation Engines बनाना
अभ्यास निर्देश
pyspark.ml.evaluationसेRegressionEvaluatorऔरpyspark.ml.tuningसेParamGridBuilderतथाCrossValidatorइम्पोर्ट करें.- दिए गए
ParamGridBuilderका उपयोग करकेparam_gridनाम काParamGridबनाएँ। हर हाइपरपैरामीटर पर.addGrid()मेथड कॉल करें, जहाँ मॉडल का नाम और हाइपरपैरामीटर का नाम दें (उदा.:.addGrid(als.rank, [])). यहrank,maxIterऔरregParamहाइपरपैरामीटर्स के लिए करें। साथ ही, Spark को आज़माने के लिए नीचे दिए गए हाइपरपैरामीटर मानों की सूचियाँ पास करें:
rank: [10, 50, 100, 150]
maxIter: [5, 50, 100, 200]
regParam: [.01, .05, .1, .15]
evaluatorनाम का एकRegressionEvaluatorबनाएँ।metricNameको"rmse"पर सेट करें,labelColको"rating"पर सेट करें, और Spark को बताएँ कि प्रेडिक्शंस बनाते समयpredictionColको"prediction"कहा जाए।len(param_grid)चलाएँ ताकि पुष्टि हो कि param_grid बन गया है और सही संख्या में हाइपरपैरामीटर कॉम्बिनेशंस टेस्ट होंगे। यह ParamGridBuilder में दी गई rank मानों की संख्या * maxIter मानों की संख्या * regParam मानों की संख्या के बराबर होना चाहिए।
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# 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))