การเลือกโมเดล
ทั้ง regularization และ cross validation ต่างเป็นเครื่องมือที่มีประสิทธิภาพสำหรับการเลือกโมเดล โดย regularization ช่วยป้องกัน overfitting และ cross validation ช่วยให้มั่นใจได้ว่าโมเดลได้รับการประเมินอย่างถูกต้อง ในแบบฝึกหัดนี้ จะใช้ regularization และ cross validation ร่วมกัน เพื่อดูว่าโมเดลต่างๆ มีความแตกต่างกันอย่างมีนัยสำคัญหรือไม่ โดยคำนวณเฉพาะค่า precision แม้ว่าแบบฝึกหัดเดียวกันนี้จะสามารถทำได้กับ recall และ evaluation metrics อื่นๆ ได้เช่นกัน
X_train, y_train, X_test, y_test พร้อมใช้งานใน workspace แล้ว รวมถึง pandas ในชื่อ pd, numpy ในชื่อ np และ sklearn ก็พร้อมใช้งานด้วย นอกจากนี้ยังมี precision_score() และ recall_score() จาก sklearn.metrics รวมถึง KFold() และ cross_val_score() จาก sklearn.model_selection
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การพยากรณ์ CTR ด้วย Machine Learning ใน Python
คำแนะนำการฝึกหัด
- ตั้งค่า K-Fold cross validation โดยใช้
n_splitsกำหนดจำนวน 4 splits แล้วกำหนดให้กับk-fold - สร้าง decision tree classifier
- ใช้
k_foldรัน cross validation และประเมินค่า precision และ recall ของโมเดล decision tree สำหรับค่าmax_depthที่กำหนด
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Iterate over different levels of max depth and set up k-fold
for max_depth_val in [3, 5, 10]:
k_fold = ____(____ = 4, random_state = 0, shuffle = True)
clf = ____(____ = max_depth_val)
print("Evaluating Decision Tree for max_depth = %s" %(max_depth_val))
y_pred = clf.fit(____, ____).predict(____)
# Calculate precision for cross validation and test
cv_precision = ____(
____, X_train, y_train, cv = k_fold, scoring = 'precision_weighted')
precision = ____(y_test, y_pred, average = 'weighted')
print("Cross validation Precision: %s" %(cv_precision))
print("Test Precision: %s" %(precision))