การแสดงผลประสิทธิภาพของโมเดล classification
ในแบบฝึกหัดนี้ คุณจะแก้ปัญหา classification โดยคอลัมน์ "popularity" ในชุดข้อมูล music_df ถูกแปลงเป็นค่าไบนารี โดย 1 หมายถึงความนิยมที่มากกว่าหรือเท่ากับค่ามัธยฐานของคอลัมน์ "popularity" และ 0 หมายถึงความนิยมที่ต่ำกว่าค่ามัธยฐาน
ภารกิจของคุณคือสร้างและแสดงผลของโมเดลสามแบบที่แตกต่างกัน เพื่อจำแนกว่าเพลงใดเป็นที่นิยมหรือไม่
ข้อมูลถูกแบ่ง ปรับสเกล และโหลดไว้ให้แล้วในชื่อ X_train_scaled, X_test_scaled, y_train และ y_test นอกจากนี้ยังได้ import KNeighborsClassifier, DecisionTreeClassifier และ LogisticRegression ไว้ให้เรียบร้อยแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Supervised Learning ด้วย scikit-learn
คำแนะนำการฝึกหัด
- สร้าง dictionary ที่มีคีย์เป็น
"Logistic Regression","KNN"และ"Decision Tree Classifier"โดยกำหนดค่าของแต่ละคีย์เป็นการเรียกใช้โมเดลที่สอดคล้องกัน - วนลูปผ่านค่าต่างๆ ใน
models - สร้างออบเจ็กต์
KFoldเพื่อแบ่งข้อมูลออกเป็น 6 ส่วน โดยตั้งค่าshuffleเป็นTrueและrandom_stateเป็น12 - ทำ cross-validation โดยใช้โมเดล ฟีเจอร์ชุดฝึกที่ปรับสเกลแล้ว ชุดเป้าหมายสำหรับการฝึก และตั้งค่า
cvให้เท่ากับkf
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create models dictionary
models = {"____": ____(), "____": ____(), "____": ____()}
results = []
# Loop through the models' values
for model in ____.____():
# Instantiate a KFold object
kf = ____(n_splits=____, random_state=____, shuffle=____)
# Perform cross-validation
cv_results = ____(____, ____, ____, cv=____)
results.append(cv_results)
plt.boxplot(results, labels=models.keys())
plt.show()