機械学習
weka
不均衡データ
over-sampling

WEKAにおけるover-sampling

収集したデータが均一でなく,不均衡データとなった場合,under-samplingやover-samplingを利用して,データ数を調整する必要があります.
今回はover-samplingをWEKAでどのように行うのかについて記述します.

不均衡データとは

sfchaos blogより引用

クラス分類を実行する際の悩みどころの一つとして,クラス分類の興味の対象となるクラスのサンプル数が他のクラスと比べて少ないケースがよくあることが挙げられます.このようなデータは不均衡データと呼ばれます.
例えば,スパムメールかどうかの判別において,スパムであるサンプル数とスパムではないサンプル数.あるいは,ある重病に罹患する人を特定したい場合,その病気に罹患した人数と罹患していない人数.こうしたケースではクラス間でサンプル数に偏りがあるため,クラス分類の手法をそのまま適用しても十分な分類精度を得られないことが往々にしてあります

不均衡データのまま分類を行うと,分類精度に問題があるため,データ数の調整を行います.

over-sampling

今回は,SMOTEを利用します.

  1. weka>filters>supervised>instance>SMOTEを選択.
  2. 詳細設定からclassValueとpercentageを設定.

classValue:データ数を増やしたい分類データを指定.
percentage:増やすデータの割合を指定.100%の場合,元データの2倍となる.
3. Applyボタンを押してフィルターを適用.

まとめ

WEKAでのover-samplingのやり方が動画でしか見つけられなかったため,まとめました.
また,SMOTEは初期ダウンロード時には含まれていないので,パッケージをダウンロードする必要があります.

参考

Weka Tutorial 04: Systematic Oversampling (Class Imbalance Problem)