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

การเลือกโมเดล

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