เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

กำหนดการปรับจูน ALS โมเดลให้กับ Spark

ต่อไปเราจะสร้าง ParamGrid เพื่อบอกให้ Spark รู้ว่าต้องการปรับจูนไฮเปอร์พารามิเตอร์ใดบ้าง และจะปรับอย่างไร จากนั้นสร้าง evaluator เพื่อให้ Spark สามารถวัดประสิทธิภาพของอัลกอริทึมได้

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การสร้าง Recommendation Engines ด้วย PySpark

ดูคอร์ส

คำแนะนำการฝึกหัด

  • Import RegressionEvaluator จาก pyspark.ml.evaluation และ Import ParamGridBuilder กับ CrossValidator จาก pyspark.ml.tuning
  • สร้าง ParamGrid ชื่อ param_grid โดยใช้ ParamGridBuilder ที่เตรียมไว้ เรียกเมธอด .addGrid() สำหรับแต่ละไฮเปอร์พารามิเตอร์ โดยระบุชื่อโมเดลและชื่อไฮเปอร์พารามิเตอร์นั้น (เช่น .addGrid(als.rank, [])) ทำแบบนี้สำหรับ rank, maxIter และ regParam พร้อมระบุรายการค่าที่ต้องการให้ Spark ทดลองตามที่กำหนดไว้ดังนี้:
 rank: [10, 50, 100, 150]  
 maxIter: [5, 50, 100, 200]  
 regParam: [.01, .05, .1, .15]  
  • สร้าง RegressionEvaluator ชื่อ evaluator กำหนด metricName เป็น "rmse", กำหนด labelCol เป็น "rating" และบอกให้ Spark ตั้งชื่อคอลัมน์ผลลัพธ์การทำนายว่า predictionCol เป็น "prediction"
  • รัน len(param_grid) เพื่อยืนยันว่าสร้าง param_grid สำเร็จ และตรวจสอบว่าจำนวนชุดค่าผสมของไฮเปอร์พารามิเตอร์ถูกต้อง ซึ่งควรเท่ากับจำนวนค่า rank คูณจำนวนค่า maxIter คูณจำนวนค่า regParam ใน ParamGridBuilder

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# 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))
แก้ไขและรันโค้ด