始める無料で始める

モデルのアンサンブル

機械学習モデルの予測精度を向上させる方法の1つが、アンサンブル(複数モデルの組み合わせ)です。基本的なアプローチは、複数のモデルの予測値を平均化する方法です。より高度なアプローチとして、あるモデルの予測値を別のモデルに入力し、最終的な予測を行う方法もあります。どちらの方法も、個々のモデルの精度が十分であれば、全体的な性能を向上させることができます。ランダムフォレストも、多数の決定木をアンサンブルする手法であることを思い出してください。

ニューラルネットワークの予測をアンサンブルするために、先ほど作成した3つのモデル(基本モデル、カスタム損失関数を使ったモデル、ドロップアウトを使ったモデル)でそれぞれ予測を行います。次に、numpy.hstack() 関数で予測値を水平方向に結合し、np.mean(predictions, axis=1) で行ごとの平均を取ります。

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

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

コースを見る

演習の手順

  • .predict() メソッドを使って、3つのモデル(model_1model_2model_3)それぞれで scaled_train_featuresscaled_test_features の予測を行いましょう。
  • np.hstack() を使って予測値を水平方向に結合し、訓練セットとテストセットそれぞれの平均予測値を求めるために行ごとの平均を計算しましょう。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Make predictions from the 3 neural net models
train_pred1 = model_1.predict(____)
test_pred1 = model_1.predict(____)

train_pred2 = ____
test_pred2 = ____

train_pred3 = model_3.predict(scaled_train_features)
test_pred3 = model_3.predict(scaled_test_features)

# Horizontally stack predictions and take the average across rows
train_preds = np.mean(np.hstack((train_pred1, train_pred2, train_pred3)), axis=1)
test_preds = np.mean(____, ____)
print(test_preds[-5:])
コードを編集して実行