เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

Cross-validation ด้วย sklearn

ดังที่ได้อธิบายไว้ในบทที่ 2 การ overfit ชุดข้อมูลเป็นปัญหาที่พบบ่อยในการวิเคราะห์ข้อมูล ปัญหานี้เกิดขึ้นเมื่อโมเดลเรียนรู้ข้อมูลใกล้ชิดเกินไป จนให้ผลลัพธ์ที่ดีมากบนชุดข้อมูลที่ใช้ฝึก แต่ไม่สามารถนำไปใช้กับข้อมูลใหม่ได้

แม้ว่าเทคนิคการแบ่งข้อมูลเป็น train/test ที่เรียนรู้ในบทที่ 2 จะช่วยป้องกันไม่ให้โมเดล overfit ชุดข้อมูลฝึก แต่การปรับ hyperparameter อาจทำให้เกิดการ overfit บนชุดข้อมูลทดสอบได้ เนื่องจากเป็นการปรับโมเดลให้ได้ผลการทำนายที่ดีที่สุดบนชุดข้อมูลทดสอบชุดนั้นโดยเฉพาะ จึงแนะนำให้ตรวจสอบโมเดลบนชุดข้อมูลทดสอบที่หลากหลาย ซึ่ง K-fold cross-validation ช่วยให้ทำได้:

  • แบ่งชุดข้อมูลออกเป็นชุดฝึกและชุดทดสอบ
  • ฝึกโมเดล ทำการทำนาย และคำนวณคะแนน (สามารถเลือกได้ว่าจะใช้ accuracy, precision, recall หรือเมตริกอื่น)
  • ทำซ้ำกระบวนการนี้ทั้งหมด k ครั้ง
  • แสดงผลค่าเฉลี่ยของคะแนนทั้ง 10 รอบ

ในแบบฝึกหัดนี้ จะได้ใช้ Cross Validation กับชุดข้อมูลของเรา และประเมินผลด้วยฟังก์ชัน cross_val_score

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

HR Analytics: การพยากรณ์การลาออกของพนักงานด้วย Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • Import ฟังก์ชัน cross_val_score() สำหรับ cross-validation จากโมดูล sklearn.model_selection
  • แสดงคะแนน cross-validation ของโมเดล โดยกำหนด 10 fold ผ่าน hyperparameter cv

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Import the function for implementing cross validation
from sklearn.model_selection import ____

# Use that function to print the cross validation score for 10 folds
print(____(model,features,target,____=10))
แก้ไขและรันโค้ด