การถดถอยด้วยฟีเจอร์ประเภทหมวดหมู่
เมื่อสร้าง music_dummies ซึ่งมีฟีเจอร์แบบไบนารีสำหรับแต่ละแนวเพลงแล้ว ถึงเวลาสร้างโมเดล ridge regression เพื่อทำนายความนิยมของเพลง
music_dummies ถูกโหลดไว้ล่วงหน้าแล้ว พร้อมกับ Ridge, cross_val_score, numpy ในชื่อ np และออบเจ็กต์ KFold ที่เก็บไว้ในตัวแปร kf
โมเดลจะถูกประเมินด้วยการคำนวณค่า RMSE เฉลี่ย แต่ก่อนอื่น ต้องแปลงคะแนนของแต่ละ fold ให้เป็นค่าบวกและหาค่ารากที่สอง ค่านี้แสดงถึงค่าความผิดพลาดเฉลี่ยของการทำนาย จึงสามารถนำไปเปรียบเทียบกับส่วนเบี่ยงเบนมาตรฐานของตัวแปรเป้าหมาย—"popularity" ได้
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Supervised Learning ด้วย scikit-learn
คำแนะนำการฝึกหัด
- สร้าง
Xที่ประกอบด้วยฟีเจอร์ทั้งหมดในmusic_dummiesและyที่ประกอบด้วยคอลัมน์"popularity" - สร้างโมเดล ridge regression โดยกำหนด
alphaเท่ากับ 0.2 - ทำ cross-validation บน
Xและyโดยใช้โมเดล ridge กำหนดcvเท่ากับkfและใช้ negative mean squared error เป็น scoring metric - แสดงค่า RMSE โดยแปลง
scoresที่เป็นค่าลบให้เป็นค่าบวก แล้วหาค่ารากที่สอง
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create X and y
X = ____
y = ____
# Instantiate a ridge model
ridge = ____
# Perform cross-validation
scores = ____(____, ____, ____, cv=____, scoring="____")
# Calculate RMSE
rmse = np.____(____)
print("Average RMSE: {}".format(np.mean(rmse)))
print("Standard Deviation of the target array: {}".format(np.std(y)))