— ONNX出力の注意点・平均回帰問題・スタッキングの落とし穴まで —
FXの値動きをAIで予測するとき、
よく使われるモデルのひとつが LightGBM(LGBM) です。
本記事では、
・回帰モデルの誤差関数(MAEなど)の違い
・平均回帰問題と対策
・スタッキングに回帰を使うときの注意点
・MQL5でLightGBMモデルを使うためのONNX化のコツ
をまとめて解説します。

CNN-LSTMをも凌駕するLGBMを使いこなそう(‘ω’)
1. MQL5でLightGBMを使うなら、ONNX出力が必須
LightGBMで学習したモデルを、
MetaTrader5(MQL5)でそのまま読み込むことはできません。
そのため一般的には、
→ ONNX形式に変換してからMQL5で読み込む
という流れになります。
しかし、ここで ひとつ重要なポイント があります。
■ ONNXの出力形状は必ず [1, 1] に ReShape する
LightGBMの回帰モデルは、そのままONNXに変換すると
出力形状が [1] や [None] のように扱われることがあり、
MQL5 の OnnxRun ではエラーになることがあります。
以下の記事を参考にしてください👇
https://wonderfulfxlife.com/onnxcatboostregressor/
この記事の内容と同じように、
最終出力を [1,1] に ReShape しておく必要があります。
◆ ReShapeする理由
MQL5 の OnnxRun は
(バッチサイズ, 出力次元)
の2次元を前提にしているためです。
2. MAEを中心とした誤差関数の関係図(メリット → 問題 → 改善)
ここからが本題です。
回帰モデルの誤差関数にはいろいろありますが、
最初に考えるべきなのは MAE(平均絶対誤差) です。
ここでは、
MAE → Huber → Quantile
の流れで「なぜこれらが存在するのか」をつなげて説明します。
3. MAE(平均絶対誤差)
◆ MAEとは
「予測がどれくらい外れたか」を
絶対値 で平均したものです。
◆ MAEのメリット
- 外れ値(急激な価格変動)に強い
- RMSEよりもシンプルで直感的
- 過剰なペナルティを与えない
◆ MAEのデメリット
- 勾配が一定のため、学習が遅くなりやすい
- 外れ値に強すぎる=動きが小さくまとまりやすい
- → 平均回帰を起こしやすい
ここがFXでは特に問題になります。
★ MAE は「無難な中心付近」を予測しやすい
価格の変化量はほとんどが小さいため、
MAEで学習すると、
“とりあえず0付近にしておけば平均的に損をしない”
という方向に学習が進みます。
つまり、
MAE → 平均回帰しやすい(予測が弱くなる)
4. Huber損失(MAEの弱点をやわらげたもの)
◆ Huberとは
MAEの「学習の遅さ」と
RMSEの「外れ値に弱すぎる」
を折り合わせた損失関数です。
誤差が小さいときはRMSE、
誤差が大きいときはMAEになる
というハイブリッド型。
◆ メリット
- MAEより学習が安定しやすい
- RMSEより外れ値に強い
- 平均回帰の発生を少し減らせる
◆ デメリット
- まだ「中央値」に引っ張られやすく、
FXでは まだ平均回帰が残りやすい
→ これをさらに改善するためにあるのが「Quantile」です。
5. Quantile損失(分位点回帰)
◆ Quantileとは
ターゲットの 分布の特定位置(分位点) を予測する損失。
たとえば 0.7 を指定すると、
70%の位置の値を予測するモデルになります。
◆ メリット
- 中央値(0.5)の固定ではなく、
0.3・0.7・0.9 など好きな位置を予測できる - → 平均回帰の回避に使いやすい
- ボラティリティ推定に使える
◆ デメリット
- 少し難しく、調整が必要
- 目的がはっきりしていないと逆に精度が下がる

Quantileでも平均回帰問題が解決しない時は特徴量・目的変数を改善させよう!
6. 平均回帰問題とは?FXでは特に深刻
FXは短期予測の値動きの9割が「ほぼ横ばい」です。
そのため、一般的な次の足を予測する回帰モデルは
■ とりあえず中央値(平均付近)を出しておけば
最も安全(損失最小)
という結論になりやすい。
これが 平均回帰問題(Mean Reversion Problem) です。

◆ 平均回帰の結果
- 上昇トレンドなのに動きが小さすぎる
- 下落トレンドでも予測の伸びが弱い
- 実際の値動きよりも予測が「フラット」
つまり 価格予測AIなのに全然強くならない。
7. 平均回帰の対策
以下の方法が効果的です。
■① 目的変数を工夫する
- ATRで正規化
- ATRのlog(ATRLog)
- ターゲットの中長期化
- 価格差ではなく「方向性+確率」形式
■② 損失関数をMAE → Huber → Quantileに進化させる
- MAE:中央値に寄りやすい
- Huber:MAEほど弱くない
- Quantile:中央値から脱出
■③ ベースモデルは分類にして方向性のみを学習
回帰より「分類」のほうが、
平均回帰の影響を受けません。
8. スタッキングと平均回帰問題の関係
(重要ポイント)
一般的には、
■ ベースモデル:回帰
■ メタモデル:分類
とするのがセオリーです。
理由は、
- 回帰モデルは情報量が多い
- メタモデルが方向性だけを学習して効率が良い
とされているためです。
◆ しかし、FXでは平均回帰問題があるため
ベースを回帰にしても、その出力が「弱い」ままでは意味がありません。
ベースモデルが
- 平均に張り付く
- ボラティリティを捉えない
- ノイズに綺麗に負ける
状態だと、
メタモデルに渡す情報も弱くなり、
スタッキングは成立しません。
▼ スタッキングについての調査結果はこちら
https://wonderfulfxlife.com/stacking_deepresearch/
9. FXのスタッキングで大事なのは「ベースの強さ」
まとめると、
■ MAE → 平均回帰を起こしやすい
↓
■ Huber → 少し改善
↓
■ Quantile → 平均回帰を回避しやすい
↓
■ 回帰ターゲットを工夫(ATRLogなど)
↓
■ ベースモデルの情報量が増える
↓
■ そこで初めてスタッキングが成立する
という順番です。
まとめ
本記事では
- LightGBM回帰 × MAE × 平均回帰問題
- Huber・Quantileとの関係
- スタッキングの落とし穴
- MQL5に使うためのONNXの ReShape([1,1])問題
をまとめました。
FXのAIモデルを強くするには、
目的変数・損失関数・出力形状・スタッキング構造
すべてがつながっています。
「MAEで学習させればいい」という単純な話ではなく、
FX特有の“平均回帰”を避ける工夫が重要です。
オンラインコミュニティ
こちらのコミュニティで、AIや機械学習をトレードに活かすために日々探求しています。
興味のある方は覗いてみてください。