KFold() ของ scikit-learn
สมมติว่าคุณเพิ่งรันโค้ดของเพื่อนร่วมงานที่สร้างโมเดล random forest และคำนวณค่าความแม่นยำแบบ out-of-sample แล้วพบว่าโค้ดนั้นไม่ได้กำหนด random state ไว้ ทำให้ค่าความคลาดเคลื่อนที่ได้ต่างจากที่เพื่อนร่วมงานรายงานไว้โดยสิ้นเชิง
เพื่อประเมินความแม่นยำของโมเดล random forest นี้บนข้อมูลใหม่ได้ดียิ่งขึ้น จึงตัดสินใจสร้าง index สำหรับใช้กับ KFold cross-validation
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การตรวจสอบความถูกต้องของโมเดลใน Python
คำแนะนำการฝึกหัด
- เรียกเมธอด
KFold()เพื่อแบ่งข้อมูลโดยใช้ 5 splits พร้อมเปิดใช้งานการสุ่ม (shuffling) และกำหนด random state เป็น 1111 - ใช้เมธอด
split()ของKFoldกับX - แสดงจำนวน index ในทั้ง train indices และ validation indices
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
from sklearn.model_selection import KFold
# Use KFold
kf = KFold(____, ____, ____)
# Create splits
splits = kf.____(____)
# Print the number of indices
for train_index, val_index in splits:
print("Number of training indices: %s" % len(____))
print("Number of validation indices: %s" % len(____))