K-fold Cross-Validation
เริ่มต้นด้วยการฝึกใช้งาน K-fold cross-validation ซึ่งเป็นเทคนิคที่นิยมใช้มากที่สุด
ข้อมูลที่จะใช้ในแบบฝึกหัดนี้มาจากการแข่งขัน Kaggle ชื่อ "Two Sigma Connect: Rental Listing Inquiries" โจทย์คือการจำแนกประเภท (multi-class classification) ของประกาศเช่าออกเป็น 3 คลาส ได้แก่ ความสนใจต่ำ ความสนใจปานกลาง และความสนใจสูง เพื่อให้การประมวลผลรวดเร็วขึ้น จะใช้ข้อมูลตัวอย่างย่อยที่มี 1,000 รายการ
ให้นำกลยุทธ์การ validate แบบ K-fold มาใช้งาน และตรวจสอบขนาดของแต่ละ fold ที่ได้ โดย DataFrame train พร้อมใช้งานใน workspace แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การแข่งขัน Kaggle ด้วย Python
คำแนะนำการฝึกหัด
- สร้างออบเจ็กต์
KFoldโดยกำหนดจำนวน fold เป็น 3 - วนลูปผ่านแต่ละ split โดยใช้ออบเจ็กต์
kf - ในแต่ละ split ให้เลือก fold สำหรับ training และ testing โดยใช้
train_indexและtest_index
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import KFold
from sklearn.model_selection import KFold
# Create a KFold object
kf = ____(n_splits=____, shuffle=True, random_state=123)
# Loop through each split
fold = 0
for train_index, test_index in ____.____(train):
# Obtain training and testing folds
cv_train, cv_test = train.iloc[____], train.iloc[____]
print('Fold: {}'.format(fold))
print('CV train shape: {}'.format(cv_train.shape))
print('Medium interest listings in CV train: {}\n'.format(sum(cv_train.interest_level == 'medium')))
fold += 1