データの不均衡

クラス比が偏った分類データセットを「不均衡」と呼びます。データセットの大部分を占めるクラスをマジョリティ クラスと呼びます。この割合が低いのはマイノリティのクラスです。

不均衡と見なされるものは何か答えは次の表の「軽度」から「極端」です。

不均衡度 マイノリティ クラスの割合
データセットの 20 ~ 40%
データセットの 1 ~ 20%
エクストリーム データセットの 1% 未満

不均衡なデータに注意すべき理由不均衡なデータセットを使用する分類タスクがある場合は、特定のサンプリング手法を適用する必要があります。

不正行為を検出するモデルの例について考えてみましょう。不正行為は、このデータセットの 200 トランザクションごとに 1 回発生します。したがって、真の分布ではデータの約 0.5% が陽性です。

2 本の棒線がある棒グラフ。一方のバーには約 200 件のネガティブ トランザクションが表示され、もう一方のバーには 1 つのポジティブ トランザクションが表示されます。

これが問題になるのはなぜでしょうか。ネガティブな要素に対するポジティブがほとんどないので、トレーニング モデルはネガティブな例にほとんどの時間を費やし、ポジティブな例から十分に学習することはありません。たとえば、バッチサイズが 128 の場合、多くのバッチに正のサンプルがないため、勾配の情報量は少なくなります。

データセットに不均衡がある場合は、まず真の分布に関するトレーニングを試してください。モデルが正常に動作し、一般化されると、これで完了です。 そうでない場合は、次のダウンサンプリングとアップウェイトの手法を試します。

ダウンサンプリングとアップウェイト

不均衡なデータを効果的に処理するには、大半のクラスをダウンサンプリングしてアップウェイトします。まず、次の 2 つの新しい用語を定義することから始めましょう。

  • 「ダウンサンプリング」は、大半のクラスの例よりも、過度に少ないサブセットでトレーニングを行うことを意味します。
  • 「アップウェイト」とは、ダウンサンプリングされたクラスに、ダウンサンプリングされた係数とサンプルの重みを追加することを意味します。

ステップ 1: 過半数のクラスをダウンサンプリングする。再び偽のデータセットの例で、1 は正で 200 は負の値です。ダウンサンプリングを 10 倍すると、バランスは 1 の正の値から 20 の負の値(5%)まで上がります。結果のトレーニング セットは引き続き中程度の不均衡ですが、陰性に対する陽性の割合は元の非常に不均衡な割合(0.5%)よりもはるかに優れています。

2 本の棒線がある棒グラフ。一方のバーには 20 件のネガティブ トランザクションが表示され、他方のバーには 1 つのポジティブ トランザクションが表示されます。

ステップ 2: ダウンサンプリングされたクラスにアップウェイトを行う: 最後のステップでは、ダウンサンプリングされたクラスにサンプルの重みを追加します。10 倍のダウンサンプリングを行うため、サンプルの重みは 10 になります。

ダウンサンプリングとアップウェイトの概念図。ステップ 1 のダウンサンプリングでは、多数派のクラスのデータセットを表すブロックからランダムに選択されたサンプルを pull します。ステップ 2 では、ランダムに重み付けし、ランダムに選択した各例に重みを追加します。

「重み」という言葉は、ニューラル ネットワークの接続など、モデル パラメータを表すものを指すことがあります。ここでは、重みの例について説明します。これは、トレーニング中に個々のサンプルをカウントすることです。重みの例が 10 の場合、モデルは重み 1 の例よりも 10 倍重要である(損失を計算するとき)ことを意味します。

重みは、ダウンサンプリングに使用した係数と同じにする必要があります。

\[\text{ \{example weight\} = \{original example weight\} × \{downsampling factor\} }\]

ダウンサンプリングとアップウェイトを行う理由

ダウンサンプリング後にサンプルの重みを追加するのは奇妙に思えるかもしれません。私たちは、マイノリティのクラスに対するモデルの改善を試みましたが、その大部分は重み付けされていたのはなぜですか。その結果、次の変更が行われます。

  • 収束の高速化: トレーニング中に少数派のクラスがより頻繁に確認されるため、モデルの収束が速くなります。
  • ディスク容量: 大部分のクラスを統合し、重み付けが大きい少数の例に統合することで、ディスク ストレージの容量を縮小できます。この節約により、少数派のクラスのディスク容量が増えるため、そのクラスからより多くの数値と幅広い例を収集できます。
  • 調整: アップウェイトにより、モデルは引き続きキャリブレーションされます。出力は確率として解釈できます。