Cross-validation

Supervised Learning ด้วย scikit-learn

George Boorman

Core Curriculum Manager, DataCamp

แรงจูงใจในการใช้ Cross-validation

  • ประสิทธิภาพของโมเดลขึ้นอยู่กับวิธีแบ่งข้อมูล

  • ไม่สะท้อนความสามารถในการ generalize ของโมเดลกับข้อมูลใหม่

  • แนวทางแก้ไข: Cross-validation!

Supervised Learning ด้วย scikit-learn

พื้นฐาน Cross-validation

หัวตาราง: split 1, fold 1, fold 2, fold 3, fold 4 และ fold 5

Supervised Learning ด้วย scikit-learn

พื้นฐาน Cross-validation

split 1 ถูกสำรองไว้เป็นชุดทดสอบ

Supervised Learning ด้วย scikit-learn

พื้นฐาน Cross-validation

fold 2-5 ใช้เป็นข้อมูลฝึก

Supervised Learning ด้วย scikit-learn

พื้นฐาน Cross-validation

คำนวณ metric บน fold เหล่านี้

Supervised Learning ด้วย scikit-learn

พื้นฐาน Cross-validation

fold 2 เป็นข้อมูลทดสอบ

Supervised Learning ด้วย scikit-learn

พื้นฐาน Cross-validation

fold 1, 3, 4 และ 5 เป็นข้อมูลฝึก

Supervised Learning ด้วย scikit-learn

พื้นฐาน Cross-validation

คำนวณ metric อีกครั้ง

Supervised Learning ด้วย scikit-learn

พื้นฐาน Cross-validation

ทำซ้ำกับ fold ที่สาม

Supervised Learning ด้วย scikit-learn

พื้นฐาน Cross-validation

ทำซ้ำกับ fold ที่สี่

Supervised Learning ด้วย scikit-learn

พื้นฐาน Cross-validation

ทำซ้ำกับ fold ที่ห้า

Supervised Learning ด้วย scikit-learn

Cross-validation และประสิทธิภาพของโมเดล

  • 5 folds = 5-fold CV

  • 10 folds = 10-fold CV

  • k folds = k-fold CV

  • fold มากขึ้น = ใช้ทรัพยากรการคำนวณมากขึ้น

Supervised Learning ด้วย scikit-learn

Cross-validation ใน scikit-learn

from sklearn.model_selection import cross_val_score, KFold

kf = KFold(n_splits=6, shuffle=True, random_state=42)
reg = LinearRegression()
cv_results = cross_val_score(reg, X, y, cv=kf)
Supervised Learning ด้วย scikit-learn

ประเมินประสิทธิภาพของ Cross-validation

print(cv_results)
[0.70262578, 0.7659624, 0.75188205, 0.76914482, 0.72551151, 0.73608277]
print(np.mean(cv_results), np.std(cv_results))
0.7418682216666667 0.023330243960652888
print(np.quantile(cv_results, [0.025, 0.975]))
array([0.7054865, 0.76874702])
Supervised Learning ด้วย scikit-learn

มาฝึกกันเถอะ!

Supervised Learning ด้วย scikit-learn

Preparing Video For Download...