始める無料で始める

ランダムフォレストで予測を行う

最適なポートフォリオを予測する機械学習モデルを構築するには、モデルの性能を評価するための訓練セットとテストセットを用意する必要があります。前の章と同様に、featurestargets の配列を使い、設定した train_size に基づいてデータを分割します。訓練サイズはデータ全体の 70〜90% 程度に設定することが一般的です。

次に、モデル(ここではランダムフォレスト)を訓練データに適合させ、.score() メソッドを使って訓練セットとテストセットそれぞれの R\(^2\) スコアを評価します。今回はハイパーパラメータがあらかじめ設定されていますが、通常は前の章で行ったように ParameterGrid を使って探索するとよいでしょう。

この演習はコースの一部です

Python による金融のための Machine Learning

コースを見る

演習の手順

  • features.shape プロパティを使って、train_size をデータ全体の 85% に設定してください。
  • Python のインデックス指定を使って、targets から訓練用ターゲットとテスト用ターゲットを作成してください。
  • ランダムフォレストモデルを train_featurestrain_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))
コードを編集して実行