โหลดชุดข้อมูล Movie Lens เข้า RDD
Collaborative filtering เป็นเทคนิคสำหรับระบบแนะนำสินค้า (recommender systems) ที่ใช้คะแนนและการโต้ตอบของผู้ใช้กับสินค้าต่าง ๆ เพื่อแนะนำสิ่งใหม่ ด้วยความก้าวหน้าของ Machine Learning และการประมวลผลข้อมูลแบบขนาน ระบบแนะนำสินค้าจึงได้รับความนิยมอย่างกว้างขวางในช่วงไม่กี่ปีที่ผ่านมา และถูกนำไปใช้ในหลายด้าน ไม่ว่าจะเป็นภาพยนตร์ เพลง ข่าว หนังสือ บทความวิจัย คำค้นหา และแท็กโซเชียล ในแบบฝึกหัด 3 ส่วนนี้ เป้าหมายคือการสร้างระบบแนะนำภาพยนตร์อย่างง่ายด้วย PySpark MLlib โดยใช้ชุดข้อมูลบางส่วนจาก MovieLens 100k dataset
ในส่วนแรก ให้โหลดข้อมูล MovieLens (ratings.csv) เข้า RDD จากนั้นสำหรับแต่ละบรรทัดใน RDD ซึ่งมีรูปแบบเป็น userId,movieId,rating,timestamp ให้แมปข้อมูลไปยัง Ratings object (userID, productID, rating) โดยนำคอลัมน์ timestamp ออก แล้วแบ่ง RDD ออกเป็น training RDD และ test RDD
จำไว้ว่า SparkContext sc พร้อมใช้งานใน workspace แล้ว รวมถึงตัวแปร file_path (ซึ่งเป็นพาธไปยังไฟล์ ratings.csv) และคลาส ALS (คือ Rating) ก็พร้อมใช้งานเช่นกัน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Big Data Fundamentals with PySpark
คำแนะนำการฝึกหัด
- โหลดชุดข้อมูล
ratings.csvเข้า RDD - แบ่ง RDD โดยใช้
,เป็นตัวคั่น - สำหรับแต่ละบรรทัดของ RDD ให้ใช้คลาส
Rating()เพื่อสร้าง tuple ของuserID, productID, rating - แบ่งข้อมูลแบบสุ่มออกเป็นข้อมูล training และข้อมูล test (0.8 และ 0.2)
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Load the data into RDD
data = sc.____(file_path)
# Split the RDD
ratings = data.____(lambda l: l.split('____'))
# Transform the ratings RDD
ratings_final = ratings.____(lambda line: Rating(int(line[0]), int(____), float(____)))
# Split the data into training and test
training_data, test_data = ratings_final.____([0.8, 0.2])