抄訳 Borderline-SMOTE: A New Over-Sampling Method in Imbalanced Data Sets Learning(2005)

October 22, 2022

SMOTEは不均衡データに対するオーバーサンプリングを使う手法である。 少数側のクラスのサンプルと近傍のサンプルから少数クラスのサンプルを合成する。 SMOTEはすべての少数クラスのサンプルが合成のもとになりえる。 対して、borderline-SMOTE1とborderline-SMOTE2は、境界から遠い少数クラスのサンプルを使わず、近いサンプルのみから合成する。 borderline-SMOTE1は、合成の相手側として常に少数クラスのサンプルを選び、borderline-SMOTE2は多数クラスのサンプルを選ぶこともある。

borderline-SMOTE1の場合、少数クラスを\(P=\{p_1,p_2,\dots p_{\textit{num}}\}\), 多数クラスを\(N=\{n_1,n_2,\dots n_{\textit{num}}\}\)とする。 各\(p_i\)について、\(m\)近傍を探す。 \(m\)個のうち、多数クラスに属するサンプルの数を\(m'\)とする。 \(m=m'\)ですべての近傍が少数クラスであれば、ノイズとみなして以降は無視する。 半数以上が多数クラスに属し、\(m/2\le m' < m\)であれば、オーバーサンプルの対象にする。 その集合を\(\textit{DANGER}=\{{p'}_1, {p'}_2,\dots ,{p'}_{\textit{dnum}}\}\)とする。

\(\textit{DANGER}\)の各サンプルについて、少数クラス\(P\)に属する\(k\)個の近傍を見つけ、\(s\times \textit{dnum}\)の少数クラスのサンプルを合成する。 \(s\)は\(1\)から\(k\)の間の整数である。 各\({p'}_i\)について\(k\)個からランダムに\(s\)個の近傍を選ぶ。 次に\({p'}_i\)と\(s\)個の間の差\(\textrm{dif}_j(j=1,2,\dots s)\)と\([0,1]\)区間のランダムな値\(r_j (j=1,2,\dots s)\)を計算し、 $$ \textit{synthetic}_j = {p'}_i + r_j \times \textit{dif}_j (j=1,2,\dots s) $$ によってサンプルを合成する。

論文へのリンク

雑記

すべての近傍が多数のサンプルであれば、その少数クラスのサンプルを合成に使わないが、少数だからこそ近傍がすべて多数クラスのサンプルでありえるので、本当にノイズかどうかは確認したほうがよさそう。