skip to content

モデルのアンサンブルは、とても有効でした

/ 5 min read

Table of Contents

ドル円の期待値予測モデルを開発している。

単体モデルでも、そこそこのパフォーマンス(例 Val10週/Forward6週 Avg 2 pips/trade)は出る。ただし、トレード数は少ない。

複数のモデルの予測値を単純平均してみると、パフォーマンスが単体モデルよりも明らかに改善した。トレード数も増えた。

複数モデルのアンサンブルは、機械学習において、数少ない 再現性が高い改善手法 の1つと言える。

単体モデルの限界

単体モデルは、訓練期間に存在したパターンへ強く適応しやすい。

学習期間では機能していた特徴量の組み合わせが、未知期間では機能しなくなることも多い。

  • 学習期間では良い成績
  • Validation でも悪くない
  • しかし未知の Forward や Live で崩れる

という現象が起きる。

これが典型的な Overfitting(過学習) だ。

単体モデルは、ある意味で 「学習の期間に最適化された1つの仮説」 に近い。

なぜアンサンブルが効くのか

アンサンブルの核心は、独立した誤差を平均して相殺すること にある。

もし複数のモデルが、

  • それぞれ異なる視点を持ち
  • 完全には相関しておらず
  • 過学習ポイントもズレている

ならば、平均を取ることで個別モデルの「癖」が薄まる。

逆に、複数モデルに共通する部分だけが残る。

つまり、

一般化されたシグナル(共通要素)だけが生き残る

そう、我々が求めている一般化がここにある。

弱学習器(Weak Learner)の条件

アンサンブルで重要なのは、各モデルが「違う」こと だ。

全部似たモデルを集めても意味がない。

例えば、

  • 学習期間を変える
  • 特徴量セットを変える
  • モデル構造を変える
  • シード値を変える
  • 損失関数を少し変える
  • Entry条件を少し変える

などで、モデルの視点をずらす。

理想は、 予測相関が中程度(例: 0.3〜0.7程度) で、誤差も独立している状態。

相関が高すぎると、全員が同じ場所で失敗する。

逆に独立性があるほど、誤差平均の効果が効く。

Bagging(バギング)

アンサンブルの古典的手法が Bagging(Bootstrap Aggregating) だ。

考え方はシンプルで、

  1. 訓練データをランダムサンプリング
  2. 少しずつ異なるデータで複数モデルを学習
  3. 出力を平均する

というもの。

各モデルが異なるデータを学習するため、予測の癖や誤差が少しずつズレる。

その結果、平均化によって過学習由来のノイズが打ち消される。

特に、

「学習データに合わせ込みやすいモデル」ほど効果が大きい

モデルごとの“癖”を薄め、共通して有効なシグナルだけを残しやすくなる

なお、金融時系列であるFX予測においては、ブロックに分割して、時系列を維持したまま、サンプリングしている。

アンサンブル方法

複数のモデルの出力を使って、平均、加重平均、閾値越え、投票制などのアンサンブルができる。

組み合わせパターンが多いので、遺伝的アルゴリズム(Genetic Algorithm/GA)で、探索した。

以下のようなアンサンブルを使用している。

  • 複数モデルの単純平均
  • 上位2つのモデルのそれぞれの閾値以上
  • 下位1つのモデルの閾値以下での回避

単体モデルと比較すると、アンサンブルの方が明らかに上回ることが確認できた。

エッジになる

複数または大量のモデルのアンサンブルを使う、アンサンブルの方法を工夫することは、エッジになる得るだろう。