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

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
แก้ไขและรันโค้ด