โมเดล Gradient Boosting
คราวนี้เราจะฝึกโมเดล Gradient Boosting (GB) กัน มีคนเปรียบเอาไว้ว่าโมเดลเชิงเส้นเปรียบเหมือนรถยนต์ธรรมดา ส่วน GB เปรียบเหมือนเฮลิคอปเตอร์ทางทหาร GB มีศักยภาพสูงกว่า Random Forest แต่ก็ไม่ได้ดีกว่าเสมอไป ซึ่งเป็นไปตามหลักการที่เรียกว่า No Free Lunch Theorem นั่นคือเราควรลองใช้โมเดลหลายแบบสำหรับแต่ละปัญหาเสมอ
GB มีความคล้ายคลึงกับ Random Forest แต่ความแตกต่างสำคัญคือ tree แต่ละต้นถูกสร้างขึ้นแบบต่อเนื่อง โดยในแต่ละรอบ tree ถัดไปจะเรียนรู้จากค่าความผิดพลาด (residual errors) ของ tree ก่อนหน้า เพื่อให้โมเดลโดยรวมแม่นยำขึ้นเรื่อย ๆ
ในแบบฝึกหัดนี้ เราจะไม่ค้นหา hyperparameters เอง เพราะได้กำหนดค่าที่เหมาะสมไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning สำหรับการเงินด้วย Python
คำแนะนำการฝึกหัด
- สร้างออบเจกต์
GradientBoostingRegressorโดยใช้ hyperparameters ที่กำหนดไว้ให้แล้ว - ฝึกโมเดล
gbrด้วยtrain_featuresและtrain_targets - พิมพ์ค่าคะแนนสำหรับ features และ targets ของชุดฝึกและชุดทดสอบ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
from sklearn.ensemble import GradientBoostingRegressor
# Create GB model -- hyperparameters have already been searched for you
gbr = ____(max_features=4,
learning_rate=0.01,
n_estimators=200,
subsample=0.6,
random_state=42)
gbr.fit(____)
print(gbr.score(train_features, train_targets))
____