PR

【機械学習初心者向け】クラス不均衡とレジーム不均衡の話 – FX機械学習で精度が出ない本当の理由-

AI

FXの機械学習をやっていると、

  • 上昇はよく当たるのに
  • 下降はほとんど当たらない

という状態になりやすいです。

この原因は、ただの「データ不足」ではなく、
実は 2つの別の不均衡問題 が同時に起きていることが多いです。

この記事では、

  • クラス不均衡とは何か
  • レジーム不均衡とは何か
  • それぞれの対策は何が違うのか

を、できるだけ難しい言葉を使わずに説明します。


1. クラス不均衡とは?

クラス不均衡とは、

正解ラベルの数に大きな偏りがある状態

のことです。

たとえば、次のような場合です。

  • 上昇:70%
  • 下降:30%

この状態で学習すると、
AIは

とりあえず「上昇」と言っておけば当たる

という学習をしてしまい、
下降をうまく当てられなくなります。

クラス不均衡への対策

この問題への対策はよく知られています。

  • データ数をそろえる(アンダーサンプリング)
  • 少ないクラスを重く評価する(クラスウェイト)

こうした方法で、

上昇と下降を同じくらい重要だと教える

ことができます。

これは「同じ相場の中で、ラベルの数だけが偏っている」場合には
とても有効です。


2. でもFXではそれだけでは足りない

FXの相場には、だいたい次の3つの状態があります。

  • 上昇トレンド
  • 下降トレンド
  • レンジ(横ばい)

ここで重要なのは、

それぞれの相場では値動きの性質がまったく違う

という点です。

しかも、多くの通貨ペアでは

  • 上昇トレンドが長く続く
  • 下降は短くて急

というように、

相場の状態そのものの出現回数にも偏りがある

ことがほとんどです。

これが次に説明する「レジーム不均衡」です。


3. レジーム不均衡とは?

レジームとは、簡単に言うと

相場の状態(上昇・下降・レンジなど)

のことです。

レジーム不均衡とは、

ある相場状態ばかりが多く、他は少ない状態

を指します。

たとえば、

  • 学習データのほとんどが上昇相場
  • 下降相場はごく一部

という場合、AIは

上昇相場の特徴ばかりを覚える

ことになります。

このとき、たとえラベルを

  • 上昇
  • 下降

の2つに分けていても、実際には

「上昇かどうか」だけを見ているモデル

になりがちです。

つまり、

下降を学習しているように見えて、実は学習できていない

という状態が起きます。

WAN
WAN

わかりやすい上昇を学習して、それ以外は下降だよねっていう学習になっちゃってる(‘Д’)


4. なぜクラス不均衡対策だけでは足りないのか

クラスウェイトやアンダーサンプリングは、

同じ相場の中で、ラベルの数だけが違う

という問題を解く方法です。

しかしFXでは、

  • 上昇相場の動き
  • 下降相場の動き
  • レンジ相場の動き

がそもそも別物です。

そのため、

データ数を調整しても、相場の性質の違いまでは補正できない

という問題が残ります。

これが、

クラス不均衡を直しても下降が当たらない

大きな理由です。


5. レジーム不均衡への考え方

レジーム不均衡に対しては、

1つのモデルで全部の相場を当てようとしない

という考え方が大切になります。

実務では、次のような作り方がよく使われます。


方法① 上昇モデルと下降モデルを分ける

まず考え方を変えます。

  • 上昇か下降かを当てる

ではなく、

  • 今は上昇しやすいか?
  • 今は下降しやすいか?

を別々に学習させます。

つまり、

  • 上昇 vs それ以外
  • 下降 vs それ以外

という2つのモデルを作ります。

運用では、

  • 上昇モデルが強ければBuy
  • 下降モデルが強ければSell
  • どちらも弱ければ何もしない

という形になります。

こうすると、

  • レンジは自然に除外されやすい
  • 上昇と下降をそれぞれ独立して学習できる

というメリットがあります。


方法② 先に相場状態を分けてから予測する

もう一つの方法は、

  1. 今はトレンド相場か、レンジ相場かを判定
  2. それぞれ専用のモデルを使う

というやり方です。

たとえば、

  • トレンド用モデル
  • レンジ用モデル

を切り替えて使います。

こちらは効果は高いですが、
作る手間が少し増えます。


6. 実務では両方の問題が同時に起きている

FXの機械学習では多くの場合、

  • クラス不均衡(上昇と下降の数の差)
  • レジーム不均衡(相場状態の偏り)

が同時に存在します。

そのため、

  • クラスウェイトなどでラベルの偏りを補正しつつ
  • モデル構成で相場状態の違いにも対応する

という2段構えが必要になります。

どちらか一方だけでは、
安定した成績にはなりにくいです。


7. まとめ

  • クラス不均衡は「ラベルの数の偏り」の問題
  • レジーム不均衡は「相場状態の偏りと性質の違い」の問題

対策も別物です。

  • クラス不均衡 → サンプリングやクラスウェイト
  • レジーム不均衡 → モデル分離や相場状態ごとの判断

もし

上昇だけ当たって、下降が全然当たらない

という場合は、

単なるクラス不均衡ではなく、

相場状態の違いを1つのモデルに押し込めている

ことが原因かもしれません。

モデルの精度を上げるだけでなく、

どういう相場でトレードしたいのか

という戦略設計と合わせて、
学習方法を考えることが大切です。


※この記事はFXの機械学習を始めた方向けに、考え方をわかりやすく説明したものです。実際の運用では、バックテスト・フォワードテスト・リスク管理を必ず行ってください。

オンラインコミュニティ

こちらのコミュニティで、AIや機械学習をトレードに活かすために日々探求しています。
興味のある方は覗いてみてください。

タイトルとURLをコピーしました