SMOTEとは

SMOTEは、機械学習における不均衡データセット(Imbalanced Dataset)クラス不均衡問題を解消するために考案されたオーバーサンプリング手法の一つであり、少数クラスのサンプルとその近傍のサンプルを基に、人工的な合成データ(Synthetic Data)を生成するためのアルゴリズムのことです。

SMOTEの概要と不均衡データ問題

SMOTE(Synthetic Minority Over-sampling Technique、合成少数派オーバーサンプリング技術)は、訓練データセットにおいて、ある特定のクラス(少数クラス)のサンプル数が他のクラス(多数クラス)に比べて著しく少ない場合に生じる、クラス不均衡問題に対処するために広く用いられる手法です。

クラス不均衡なデータで機械学習モデルを訓練すると、モデルはサンプル数の多い多数クラスの予測を優先的に最適化し、少数クラスの学習がおろそかになりがちです。その結果、少数クラスのサンプルに対する予測精度(特にリコールやF1スコア)が極端に低下し、モデルの汎化性能が損なわれてしまいます。

SMOTEは、少数クラスのサンプルを単に複製して数を増やす(オーバーサンプリング)のではなく、少数クラスのサンプル群が持つ特徴空間の分布を保ちながら、新しい合成サンプルを生成するというアプローチを取ります。これにより、モデルに提供される情報が豊かになり、より正確な識別境界の学習を促します。

主な目的は、少数クラスのデータ量を増加させつつ、その特徴空間内での多様性を維持し、モデルの予測性能と公平性を向上させることです。

SMOTEの技術的仕組みと合成データの生成

SMOTEは、以下のステップで合成サンプルを生成します。この処理は、少数クラスの各サンプルに対して個別に実行されます。

1. 最近傍点の探索

少数クラスに属する任意のサンプル $x_i$ を選択します。次に、そのサンプル $x_i$ から特徴空間上の距離が最も近い $k$ 個のサンプル($k$ はユーザーが指定)を、同じ少数クラスのサンプルの中から探索します。これらは$x_i$の最近傍点と呼ばれます。

2. 合成サンプルの生成

少数クラスのサンプル $x_i$ と、その近傍点からランダムに選択された一つのサンプル $\hat{x}_i$ との間で、新しい合成サンプル $x_{new}$ を生成します。

この生成は、特徴空間における線形補間によって行われます。

x_{new} = x_i + (\hat{x}_i - x_i) \cdot \delta

ここで、$\delta$ は0から1の範囲でランダムに選ばれる数値です。

3. 特徴空間での多様性の確保

上記の計算により、新しいサンプル $x_{new}$ は、元のサンプル $x_i$ とその近傍点 $\hat{x}_i$ を結ぶ線分上のどこかに生成されます。$\delta$ がランダムであるため、毎回異なる位置にサンプルが生成され、元のデータを単に複製する場合と比較して、合成データの多様性(バリエーション)が確保されます

この手順を、少数クラスのサンプル数が多数クラスのサンプル数に近づくまで繰り返すことで、データセットのクラス分布のバランスが改善されます。

SMOTEの課題と拡張手法

SMOTEは有効な手法ですが、いくつか課題も存在します。

  1. ノイズの生成: 少数クラス内に存在するノイズや外れ値を近傍点として使用してしまうと、そのノイズを拡大・増幅させてしまい、モデルの学習を阻害する可能性があります。
  2. 識別境界の曖昧化: 多数クラスの領域に非常に近い場所で合成サンプルを生成してしまうと、少数クラスと多数クラスの境界線が曖昧になり、分類精度がかえって悪化する場合があります。

これらの課題に対処するため、後にBorderline-SMOTE(少数クラスと多数クラスの境界線付近のサンプルに焦点を絞る)やADASYN(学習が難しいサンプルほど多くの合成サンプルを生成する)といった、SMOTEを改良した拡張手法が開発されています。

関連用語

クラス不均衡 | 今更聞けないIT用語集
不均衡データセット | 今更聞けないIT用語集
AIソリューション

お問い合わせ

システム開発・アプリ開発に関するご相談がございましたら、APPSWINGBYまでお気軽にご連絡ください。

APPSWINGBYの

ソリューション

APPSWINGBYのセキュリティサービスについて、詳しくは以下のメニューからお進みください。

システム開発

クラウドネイティブ技術とアジャイル手法を駆使し、市場投入スピード(Time-to-Market)を最大化。「進化し続けるアプリケーション」を開発します。初期リリースを最速化し、拡張性と柔軟性を備えた、ビジネスの成長に追従できるアプリケーションを開発します。

DX・AI戦略支援

「何から手を付けるべきか分からない」「AIを導入したいが、費用対効果が見えない」といった経営課題に対し、技術とビジネスの両面から解を導き出します。 絵に描いた餅で終わる戦略ではなく、エンジニアリングの実装能力に基づいた、「実現可能で、勝てる技術戦略」を策定します。


リファクタリング・リアーキテクチャ

「システムが古くて改修できない」「障害が頻発する」といった技術的負債を解消します。既存資産の徹底的な診断に基づき、コードのクリーン化(リファクタリング)や、クラウドへの移行(リアーキテクチャ)を行い、システムの寿命を延ばしコストを最適化します。