การสร้าง Recommendation Engines ด้วย PySpark
Jamen Long
Data Scientist at Nike
als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
อาร์กิวเมนต์
userCol: ชื่อคอลัมน์ที่เก็บ id ของผู้ใช้itemCol: ชื่อคอลัมน์ที่เก็บ id ของไอเทมratingCol: ชื่อคอลัมน์ที่เก็บคะแนนรีวิว

als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
ไฮเปอร์พารามิเตอร์
rank, $k$: จำนวน latent featuresals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
ไฮเปอร์พารามิเตอร์
rank, $k$: จำนวน latent featuresmaxIter: จำนวนรอบการวนซ้ำals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
ไฮเปอร์พารามิเตอร์
rank, $k$: จำนวน latent featuresmaxIter: จำนวนรอบการวนซ้ำregParam: Lambdaals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
ไฮเปอร์พารามิเตอร์
rank, $k$: จำนวน latent featuresmaxIter: จำนวนรอบการวนซ้ำregParam: Lambdaalpha: จะกล่าวถึงในภายหลัง ใช้กับ implicit ratings เท่านั้นals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
อาร์กิวเมนต์เพิ่มเติม
nonnegative = True: กำหนดให้ค่าทั้งหมดเป็นบวกals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
อาร์กิวเมนต์เพิ่มเติม
nonnegative = True: กำหนดให้ค่าทั้งหมดเป็นบวกcoldStartStrategy = "drop": แก้ปัญหาที่เกิดจากการแบ่ง test/trainals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
อาร์กิวเมนต์เพิ่มเติม
nonnegative = True: กำหนดให้ค่าทั้งหมดเป็นบวกcoldStartStrategy = "drop": แก้ปัญหาที่เกิดจากการแบ่ง test/trainimplicitPrefs = True: True/False ขึ้นอยู่กับประเภทของ ratingsals = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
# Fit ALS to training dataset
model = als.fit(training_data)
# Generate predictions on test dataset
predictions = model.transform(test_data)
การสร้าง Recommendation Engines ด้วย PySpark