ทดลองใช้ค่า max depth ที่แตกต่างกัน
เราควรปรับแต่งโมเดล machine learning อยู่เสมอเพื่อให้ได้การพยากรณ์ที่แม่นยำที่สุด วิธีหนึ่งคือการปรับ hyperparameter ซึ่งเป็นค่าตั้งต้นของโมเดล ในบทต่อ ๆ ไปเราจะเจาะลึกเรื่องนี้มากขึ้น แต่สำหรับตอนนี้ให้นึกภาพว่า hyperparameter คือปุ่มปรับที่ช่วยให้ผลการพยากรณ์ดีที่สุดเท่าที่จะทำได้
สำหรับ decision tree ทั่วไป hyperparameter ที่สำคัญที่สุดน่าจะเป็น max_depth ซึ่งกำหนดจำนวนการแบ่งสูงสุดในต้นไม้การตัดสินใจ มาหาค่า max_depth ที่ดีที่สุดโดยดูจากค่า R\(^2\) ของโมเดลบนชุดข้อมูลทดสอบ ซึ่งได้จากเมธอด score() ของโมเดล decision tree ของเรา
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning สำหรับการเงินด้วย Python
คำแนะนำการฝึกหัด
- วนลูปผ่านค่า 3, 5 และ 10 เพื่อใช้เป็นพารามิเตอร์
max_depthในโมเดล decision tree - กำหนดพารามิเตอร์
max_depthใน DecisionTreeRegressor ให้เท่ากับdในแต่ละรอบของลูป - แสดงผลค่า score ของโมเดลบน
train_featuresและtrain_targets
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Loop through a few different max depths and check the performance
for d in [____]:
# Create the tree and fit it
decision_tree = DecisionTreeRegressor(____)
decision_tree.fit(train_features, train_targets)
# Print out the scores on train and test
print('max_depth=', str(d))
print(decision_tree.score(____))
print(decision_tree.score(test_features, test_targets), '\n')