สร้างโมเดล ALS
มาสร้างโมเดล ALS แรกกัน เติมโค้ดด้านล่างให้ครบเพื่อสร้างโมเดล ALS แรกของคุณ
ระลึกไว้ว่าสามารถใช้เมธอด .columns กับ DataFrame ratings เพื่อดูชื่อคอลัมน์ที่เก็บข้อมูลผู้ใช้ ภาพยนตร์ และคะแนน Spark จำเป็นต้องทราบชื่อคอลัมน์เหล่านี้เพื่อรัน ALS ได้อย่างถูกต้อง
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การสร้าง Recommendation Engines ด้วย PySpark
คำแนะนำการฝึกหัด
- ก่อนสร้างโมเดล ALS ต้องแบ่งข้อมูลออกเป็นชุด training และชุด test ใช้เมธอด
randomSplit()เพื่อแบ่ง DataFrameratingsเป็นtraining_dataและtest_dataในสัดส่วน 0.8/0.2 ตามลำดับ และกำหนดseedสำหรับตัวสร้างตัวเลขสุ่มเป็น42 - บอก Spark ว่าคอลัมน์ใดคือ
userCol,itemColและratingColใช้เมธอด.columnsหากจำเป็น จากนั้นกำหนดค่าไฮเปอร์พารามิเตอร์ให้ครบ ได้แก่ ตั้งค่าrankเป็น 10,maxIterเป็น 15,regParamหรือ lambda เป็น .1,coldStartStrategyเป็น"drop", อาร์กิวเมนต์nonnegativeเป็นTrueและเนื่องจากข้อมูลเป็น explicit ratings ให้ตั้งค่าimplicitPrefsเป็นFalse - Fit โมเดล
alsกับข้อมูลtraining_dataโดยเรียกเมธอดals.fit()บนtraining_dataที่เตรียมไว้ ตั้งชื่อโมเดลที่ได้ว่าmodel - สร้างการทำนายบนชุดข้อมูล
test_dataโดยเรียกเมธอดmodel.transform()บนtest_dataที่เตรียมไว้ ตั้งชื่อผลการทำนายว่าtest_predictionsและสามารถดูผลลัพธ์ได้โดยเรียกเมธอด.show()บนtest_predictions
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Split the ratings dataframe into training and test data
(training_data, test_data) = ratings.____([____, ____], seed=42)
# Set the ALS hyperparameters
from pyspark.ml.recommendation import ALS
als = ALS(userCol="____", itemCol="____", ratingCol="____", rank =____, maxIter =____, regParam =____,
coldStartStrategy="____", nonnegative =____, implicitPrefs = ____)
# Fit the mdoel to the training_data
____ = ____.fit(____)
# Generate predictions on the test_data
____ = ____.transform(____)
test_predictions.show()