Random forests
Random Forest เป็น ensemble method ที่ทรงพลังและเป็นที่นิยม โดยใช้ decision tree หลายต้นร่วมกันผ่านวิธี bootstrap aggregation (หรือเรียกสั้น ๆ ว่า bagging) hyperparameter หลักของโมเดลประเภทนี้มีสองตัว ได้แก่ จำนวนต้นไม้ และความลึกสูงสุดของแต่ละต้น ในแบบฝึกหัดนี้ จะได้สร้างและประเมิน random forest classifier อย่างง่ายโดยกำหนดค่า hyperparameter ไว้ล่วงหน้า
X_train, y_train, X_test, y_test พร้อมใช้งานใน workspace แล้ว รวมถึง pandas as pd, numpy as np และ sklearn นอกจากนี้ยังมี RandomForestClassifier() จาก sklearn.ensemble พร้อมด้วย roc_curve() และ auc() จาก sklearn.metrics
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การพยากรณ์ CTR ด้วย Machine Learning ใน Python
คำแนะนำการฝึกหัด
- สร้าง random forest classifier โดยกำหนดจำนวนต้นไม้เป็น 50 ต้น และความลึกสูงสุดเป็น 5
- ฝึกโมเดล จากนั้นดึงคะแนนความน่าจะเป็นผ่าน
.predict_proba()และดึงผลการทำนายผ่าน.predict()สำหรับข้อมูล testing - ประเมินค่า AUC ของ ROC curve โดยใช้
roc_curve()เพื่อคำนวณfprและtprก่อน แล้วจึงใช้auc()กับผลลัพธ์ที่ได้ - ประเมินค่า precision และ recall ของโมเดล
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create random forest classifier with specified params
clf = ____(____ = 50, ____ = 5)
# Train classifier - predict probability score and label
y_score = clf.____(X_train, y_train).____(X_test)
y_pred = clf.____(X_train, y_train).____(X_test)
# Get ROC curve metrics
fpr, tpr, thresholds = ____(y_test, y_score[:, 1])
print("ROC of AUC: %s"%(____(fpr, tpr)))
# Get precision and recall
precision = ____(y_test, y_pred, average = 'weighted')
recall = ____(y_test, y_pred, average = 'weighted')
print("Precision: %s, Recall: %s" %(precision, recall))