1 クラス不均衡の概要

クラス不均衡は、分類タスクにおいて各クラスに属するデータ数の偏りが大きい状態を指す。偏りが極端になるほど、学習アルゴリズムは多いクラスの傾向に合わせやすくなり、少ないクラスの特徴を十分に学習できないことがある。

1.1 定義と特徴

1.1.1 データ分布の偏り

理想的な分類では、学習データが各ラベルをほぼ同程度に含むことが望ましい。一方でクラス不均衡では、ラベルごとの出現頻度が大きく異なり、少数派クラスではサンプル不足が生じる。場合によっては「少ない」だけでなく「質的にばらつきが大きい」こともあり、単純な数の不足を超えた難しさが加わる。

1.1.2 学習への影響(多数派への最適化

学習は損失関数の最小化として定式化されることが多い。最小化の際、多数派クラスの誤りが損失全体に与える影響が相対的に大きくなると、多数派を正しく分類するだけで損失が十分下がってしまう。結果として、少数派の誤分類が起きても学習上の罰が弱くなり、決定境界が多数派側に寄りやすい。

1.2 発生要因

1.2.1 現実世界の希少性

現実の現象には頻度差がある。たとえば異常イベントや特定の診断カテゴリのように、発生頻度が低い事象は自然に少数ラベルとして集計されやすい。さらに、観測の条件や測定コストの都合で、少数側の取得が制限されることもある。

1.2.2 ラベリング・収集の偏り

収集の段階で、ラベル付けが恣意的または系統的に偏ることがある。検査対象を選ぶ基準、専門家の判断閾値、誤りに対する検査優先度などが原因となり、少数クラスが「真の分布」よりも偏った形で記録される。ラベリングの遅延や不達も、見かけの比率を変える要因になる。

1.2.3 時系列・状況依存の偏り

データが時系列で生成されると、期間によって状態が偏る。季節性、運用の変更、社会的イベントなどにより、ある時期に特定ラベルが増減し、学習データの比率が不均衡になる。さらに状況依存では、同じラベルでも環境条件が異なり、少数クラスが特定条件に固定されて学習されることがある。

2 押さえるべき評価の考え方

不均衡は学習だけでなく評価の解釈にも強い影響を与える。したがって指標選択は「何を良いとみなすか」を明確にする作業になり、単一の数値で判断する危険を抑える必要がある。

2.1 代表的な評価指標

2.1.1 混同行列と要点

混同行列は、予測ラベルと実ラベルの対応を表にしたもので、真陽性・偽陽性・真陰性・偽陰性の内訳を確認できる。クラス不均衡では、正解率だけでは偽陽性偽陰性のバランスが見えにくいため、混同行列によりどの種類の誤りが増えているかを把握することが重要になる。

2.1.2 精度再現率適合率・F値

適合率(precision)は「予測した陽性のうち当たっている割合」、再現率(recall)は「実際の陽性のうち回収できた割合」を表す。精度と再現率のトレードオフは閾値や確率較正に依存し、不均衡下ではどちらが許容されるべきかが目的により変わる。両者を統合する指標としてF値が用いられ、特にF1は両者の調和を重視する。

2.1.3 ROC曲線とPR曲線

ROC曲線は偽陽性率と真陽性率の関係を示す。一方PR曲線は適合率と再現率の関係を示し、少数クラスが極端に少ない状況ではPRの方が有用な場合がある。理由は、PRでは陽性予測の稀少性がそのまま適合率に反映されるためである。どちらが適切かは目的とクラス頻度に依存する。

2.2 閾値設定とその影響

多くのモデルは確率やスコアを出力するが、最終判定は閾値で決まる。不均衡下では閾値の選び方が誤りの種類を大きく変え、評価指標にも直結する。

2.2.1 出力確率の解釈

出力スコアが「確率として解釈できる」かどうかは別問題である。確率較正が不十分だと、同じ閾値でも実際の陽性率と対応しない。実務では、校正手法や信頼性確認を含め、スコアの意味を丁寧に扱うことが望ましい。

2.2.2 しきい値最適化の考え方

最適化は、検出漏れ(偽陰性)と誤報(偽陽性)のどちらを重く見るかで変わる。たとえば検出重視なら再現率を優先し、誤報抑制が重要なら適合率を高める方向に調整する。しばしばコストや運用制約に基づく重み付けが行われ、評価指標と同時に意思決定の基準も合わせる。

2.3 不均衡下での「誤解されやすい指標」

不均衡では、指標が良好に見えても実務の失敗につながることがある。指標の意味を目的に照らして点検することが必要である。

2.3.1 正解率が高くても失敗する例

少数クラスをほぼ常に外しても、多数クラスが圧倒的に多ければ正解率は高くなり得る。たとえば陽性が極めて稀な検出で、モデルがほぼ全てを陰性と予測する場合、正解率は維持されても陽性の回収ができない。結果として、意思決定に必要な「検出能力」が欠ける。

2.3.2 学習者が見落としがちな落とし穴

学習と評価の間で、閾値、クラス比率、分割条件が揃っていないケースがある。学習時の比率調整を行ったのに評価時は実頻度と異なるデータで評価している場合、指標が誤って見える。さらに、クロスバリデーションの分割で少数クラスが偏ると、評価のばらつきが増え、選定が不安定になる。

3 データレベルの対処法

データレベルの対処は、学習に供されるサンプル構成を変えることで不均衡の影響を緩和する。手法は数の操作だけでなく、少数側の多様性を補う発想にも広がる。

3.1 アンダーサンプリング

3.1.1 ランダム削除の基本

アンダーサンプリングは、多数派クラスから一部を削除して比率を近づける方法である。ランダム削除は実装が容易だが、削る量が大きいほど多数派の多様なパターンが失われる。特に特徴空間で広く分布するクラスでは、情報欠落が性能低下として顕在化しやすい。

3.1.2 情報を保つ選択(例:代表サンプル)

ランダムではなく、代表的なサンプルを残す工夫がある。クラスタリングに基づく選別や、中心近傍の代表点の採用などが該当する。目的は削除による損失を抑えつつ、多数派側の支配を弱めることである。

3.2 オーバーサンプリング

3.2.1 既存少数クラスの複製

オーバーサンプリングは少数派を増やす方向で、既存サンプルの複製が最も単純である。複製は実データ分布の確定的な情報にはならないため、過学習の温床になることがある。特に少数側がノイズやラベル誤りを含む場合、誤りの重複も学習に強く反映される。

2.2.2 データ拡張(画像・音声・テキスト)

データ拡張は、ラベルを保つ範囲で入力の表現を変え、少数側の多様性を増やす方法である。画像なら回転や輝度変換、音声なら時間方向の摂動やスペクトルの操作、テキストなら同義語置換や言い換えなどが候補となる。拡張の範囲が広すぎると、意味が変わって学習が崩れるため、妥当性の検証が重要になる。

2.2.3 合成データ(例:特徴空間での生成)

少数クラスの特徴空間で新しいサンプルを作るアプローチもある。代表例として、近傍サンプル同士の中間的特徴を生成する考え方が用いられる。こうした手法は「見かけのデータ量」を増やす一方で、境界付近の生成が過度に行われると、決定境界の誤学習につながることがある。

3.3 サンプリング戦略の比較

3.3.1 バランスの取り方(比率設計)

比率は単に均等にするのではなく、評価目的に応じて設計する余地がある。過度に均等化すると、実運用の頻度と異なる前提で学習してしまい、確率校正や閾値設計に影響が出る。したがって比率は「学習安定性」と「運用整合性」の両面で調整される。

3.3.2 学習安定性と再現性

サンプリングには乱数が絡むことが多く、同じ条件でも学習結果が揺れる場合がある。再現性を高めるには、乱数シード管理、分割の固定、複数回の試行による分散評価が有効である。さらに、削除・生成で少数側の分布がどう変化したかを記録して追跡できる形にすることが望ましい。

4 アルゴリズムレベルの対処法

アルゴリズム側では、損失の設計や学習プロセスの組み替えにより、不均衡の影響を抑える。サンプリングよりも本質的に誤りの重み付けを調整できる場合がある。

4.1 損失関数の工夫

4.1.1 クラス重み付け

クラス重み付けは、少数派の誤分類に大きな罰を与える発想である。多数派と少数派の寄与を損失内で調整し、学習が少数側にも注意を向けるよう誘導する。重みは頻度の逆数などで設定されることが多いが、極端な値は学習の不安定化や過学習を招くため、検証による調整が必要となる。

4.1.2 フォーカル損失の考え方

フォーカル損失は、学習が進んだ後に簡単に分類できる例の寄与を下げ、難しい例の寄与を増やすように調整する。これにより、少数側だけでなく、誤分類しやすいサンプルへ焦点を当てる効果が期待される。結果として、モデルが多数派の単純なパターンに過度に適応するのを抑える狙いがある。

4.1.3 コスト感応学習

コスト感応学習は、誤りの種類ごとに実際の損害や制約を反映して学習する考え方である。偽陽性が許容されにくい領域ではその損害を大きくし、偽陰性の方を重視する領域では別の重み付けを行う。損失の重み設計が意思決定のコストと整合するほど、運用での有効性が高まりやすい。

4.2 学習戦略の工夫

4.2.1 二段階学習(予備検出→精密分類)

二段階の設計では、まず候補領域を広く拾う検出器を作り、その後により精密な分類器で絞り込む。前段は再現率を重視して見落としを減らし、後段で適合率を改善するように設計できる。こうした分解は、不均衡による誤分類がボトルネックになっている場合に有効である。

4.2.2 リサンプリングを学習に組み込む設計

学習の途中でサンプリング比率を変える方式や、バッチ内での構成を制御する方式がある。たとえば各ミニバッチで少数派が一定割合含まれるようにすれば、勾配更新が少数側に偏り過ぎない。これにより、単純な全体再サンプリングよりも計算効率と安定性の両立が期待できる。

4.3 決定境界へのアプローチ

4.3.1 マージン最大化の調整

マージン最大化に基づく手法では、少数派に対して誤差許容を調整することで境界の位置を制御できる。クラスごとに損失や制約の強さを変えることで、少数側を取りこぼしにくい境界形成を狙う。調整パラメータは過度に強くすると境界が不自然に曲がり、ノイズへの過敏性が増える。

4.3.2 階層的分類の利用

階層的分類は、問題を上位の粗い区分と下位の細かい区分に分ける。上位で「少数側に近い領域」をまとめて拾い、その後で詳細に識別することで、不均衡が顕在化する領域を局所化できる。クラス間の構造が自然に存在する場合に特に相性がよい。

5 実務での進め方(トレーニング手順)

実務では、対処法を闇雲に適用するのではなく、検査・記録・比較を通じて改善点を特定することが重要になる。

5.1 前処理と検査

5.1.1 クラス分布の可視化

最初に行うべきは、各ラベルの件数、比率、場合によっては時間帯やデータ取得条件ごとの分布確認である。単なる集計では見えない偏りを発見でき、後の分割設計にも影響する。可視化は意思決定を早める実務的な手段である。

5.1.2 欠損・重複・ノイズの扱い

欠損値、重複サンプル、ラベル誤りが不均衡と絡むと、モデルは誤った学習を強化することがある。特に少数側にノイズが集中していると、オーバーサンプリングや重み付けでそのノイズが拡大しうる。したがってデータ品質の点検は、対処法の前提として扱うべきである。

5.2 ベースライン構築

5.2.1 そのまま学習した場合の記録

最初に不均衡への対処を入れない学習を行い、性能の土台を記録する。ここでの狙いは、改善量を客観的に把握することである。加えて、どの指標がどの程度悪化しているかを特定することで、次に調整すべき点が明確になる。

5.2.2 主要指標の固定と比較設計

評価指標は固定し、同じ分割で比較する。指標が変わると改善の意味が取り違えられやすい。さらに、閾値をどの基準で決めるかも比較設計に含め、学習戦略の違いを評価に混ぜないようにする。

5.3 ハイパーパラメータ探索

5.3.1 重み・サンプリング比率の探索

重み付けやサンプリングでは、強さが性能に直結するため探索が必要になる。探索範囲を広げ過ぎると計算コストが増えるため、まずは粗く方向性を確認し、その後に絞る手順が実務的である。探索中も複数回の分散を確認し、偶然の改善を避ける。

5.3.2 交差検証の設計(分割の注意)

交差検証は分割方法が鍵になる。不均衡では少数クラスが分割で消えることがあり、そうなると学習や評価が成立しない、または極端に不安定になる。層化分割などにより各折でラベル比率が維持されるよう設計し、モデル選定の信頼性を確保する。

5.4 失敗事例の整理

5.4.1 少数クラス過学習

少数側の複製や生成を強く行うと、訓練データへの適合が過度になり、未見データで崩れることがある。兆候として、訓練指標は良いが検証指標が伸びない、または少数側の評価が大きくばらつく。対策としては生成や重みの強度調整、正則化、品質点検が挙げられる。

5.4.2 多数クラス取りこぼし

不均衡対処を入れすぎると、結果として多数派の誤分類が増え、全体の実用性が低下することがある。たとえば少数側の再現を極端に優先しすぎると、誤報が増えて運用が破綻する。目的関数やコストと指標の整合を見直すことが必要になる。

5.4.3 適切でない評価指標の採用

誤った指標を採用すると、学習が目的から外れても「良いモデル」になってしまう。たとえば少数検出の達成が重要なのに正解率だけで選定してしまうなどが典型例である。評価設計を改善し、混同行列やPR系の指標と組み合わせることで誤解を抑える。

6 よくある誤解と学習者向けのチェックリスト

不均衡への対処は「正しい手法を適用する」ことだけでなく、「誤った解釈をしない」ことが成果を左右する。以下は学習者がつまずきやすい点を整理したものである。

6.1 「正解率で判断してしまう」問題

6.1.1 典型的な誤判断

多くの学習者が最初に用いる指標として正解率があるが、不均衡ではそれが最適性を保証しない。少数側を見逃すモデルでも高い値になりうるため、意思決定に必要な見落としの少なさが評価に反映されない。正解率の高さを根拠に改善を判断すると、後工程で破綻しやすい。

6.2 データ操作の副作用

6.2.1 分布の変形と現場ギャップ

再サンプリングや拡張で学習分布が変わると、現場での入力分布とズレが生じる。とくに生成や強い拡張では、現実に存在しないパターンが混ざる恐れがある。結果として、訓練では上手く分類できるが運用で性能が落ちる。

6.2.2 学習と評価の不整合

学習時に比率調整したのに、評価時の閾値やクラス頻度が一致しないことがある。たとえば訓練分布に合わせたスコア閾値のまま本番で運用すると、偽陽性率や回収率が意図から外れる。閾値は評価設計とセットで管理するのが望ましい。

6.3 迷ったときの選択指針

6.3.1 目的別(検出重視・誤報抑制)の方針

検出漏れを避けたい場合は再現率やPR曲線の適合率—再現率の両面を重視し、誤報を避けたい場合は適合率寄りに設計する。さらに、運用で許される誤りの種類に応じてコスト重みを設定することが、迷いを減らす実務的な手がかりになる。

6.3.2 小さく試して検証する手順

最初から大規模な変更を行うのではなく、ベースラインを保ったまま一つの要素だけを変えて確認する。たとえば指標、分割、閾値、重み強度、サンプリング比率の順に切り分けることで、どの変更が効いたかを特定しやすい。少数クラスの評価はばらつきが出やすいため、単発の数値だけで結論を出さず、複数試行で確認する。