การ Overfit และ Underfit
การวิเคราะห์ความซับซ้อนของโมเดลเป็นวิธีที่ดีในการประเมินประสิทธิภาพของ Supervised Learning เป้าหมายคือสร้างโมเดลที่สามารถจับความสัมพันธ์ระหว่าง Feature และตัวแปรเป้าหมายได้ พร้อมกับ Generalize ได้ดีเมื่อเจอข้อมูลใหม่
ชุดข้อมูลฝึกและชุดข้อมูลทดสอบถูกสร้างจากชุดข้อมูล churn_df และโหลดไว้แล้วในชื่อ X_train, X_test, y_train และ y_test
นอกจากนี้ ได้นำเข้า KNeighborsClassifier และ numpy ในชื่อ np ให้เรียบร้อยแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Supervised Learning ด้วย scikit-learn
คำแนะนำการฝึกหัด
- สร้างตัวแปร
neighborsเป็นอาร์เรย์numpyที่มีค่าตั้งแต่1จนถึง12(รวม12ด้วย) - สร้างอินสแตนซ์ของ
KNeighborsClassifierโดยกำหนดจำนวน Neighbor เท่ากับค่าของตัวแปรneighborในลูป - Fit โมเดลกับข้อมูลฝึก
- คำนวณคะแนนความแม่นยำของชุดข้อมูลฝึกและชุดข้อมูลทดสอบแยกกันด้วยเมธอด
.score()แล้วเก็บผลลัพธ์ไว้ใน Dictionarytrain_accuraciesและtest_accuraciesตามลำดับ โดยใช้neighborเป็น Index
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create neighbors
neighbors = np.arange(____, ____)
train_accuracies = {}
test_accuracies = {}
for neighbor in neighbors:
# Set up a KNN Classifier
knn = ____(____=____)
# Fit the model
knn.____(____, ____)
# Compute accuracy
train_accuracies[____] = knn.____(____, ____)
test_accuracies[____] = knn.____(____, ____)
print(neighbors, '\n', train_accuracies, '\n', test_accuracies)