สร้างการพยากรณ์ด้วย random forest
เพื่อฝึกโมเดล machine learning สำหรับพยากรณ์พอร์ตโฟลิโอที่เหมาะสม เราต้องแบ่งข้อมูลออกเป็นชุด train และ test สำหรับประเมินประสิทธิภาพ วิธีนี้เหมือนกับที่เราทำในบทก่อนหน้า โดยนำอาร์เรย์ features และ targets มาแบ่งตาม train_size ที่กำหนด ซึ่งโดยทั่วไปมักอยู่ที่ประมาณ 70–90% ของข้อมูลทั้งหมด
จากนั้นนำโมเดล (ในที่นี้คือ random forest) มาฝึกกับข้อมูล train และประเมินคะแนน R\(^2\) บนชุด train และ test โดยใช้ .score() ของโมเดล ในแบบฝึกหัดนี้ hyperparameter ถูกกำหนดไว้ให้แล้ว แต่โดยปกติควรค้นหาค่าที่เหมาะสมด้วย ParameterGrid เหมือนที่เคยทำในบทก่อน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning สำหรับการเงินด้วย Python
คำแนะนำการฝึกหัด
- กำหนด
train_sizeให้เท่ากับ 85% ของข้อมูลทั้งหมด โดยใช้ property.shapeของfeatures - สร้าง train targets และ test targets จาก
targetsโดยใช้การ indexing ของ Python - ฝึกโมเดล random forest ด้วย
train_featuresและtrain_targets
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Make train and test features
train_size = int(0.85 * ____)
train_features = features[:train_size]
test_features = features[train_size:]
train_targets = targets[____]
test_targets = targets[____]
# Fit the model and check scores on train and test
rfr = RandomForestRegressor(n_estimators=300, random_state=42)
rfr.fit(____, ____)
print(rfr.score(train_features, train_targets))
print(rfr.score(test_features, test_targets))