使用隨機森林進行預測
為了訓練機器學習模型來預測理想的投資組合,我們需要建立訓練集與測試集來評估效能。我們會和前幾章相同,將 features 與 targets 陣列依照我們設定的 train_size 進行切分。訓練集的比例通常約為資料的 70–90%。
接著,我們將模型(此處為隨機森林)擬合到訓練資料,並使用模型的 .score() 在訓練與測試資料上評估 R\(^2\) 分數。這裡的超參數已經為你設定好,但在實務上你通常會像前幾章那樣,使用 ParameterGrid 進行搜尋。
本練習屬於課程
Python 金融 Machine Learning
練習說明
- 使用
features的.shape屬性,將train_size設為完整訓練資料的 85%。 - 使用 Python 索引,從
targets建立訓練與測試的目標值。 - 將隨機森林模型擬合到
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))