Posted at

出現頻度のまま学習データの比率にするのは得策ではない。

機械学習のためにデータを収集して学習を実行する人のために、経験的な知見をメモしたいと思う。

機械学習に詳しくない人は、「データを片っ端から学習データに加えればうまくいくんだろう」と思っているかもしれない。

しかし、学習データに加える比率を調整したほうが学習がうまくいきやすい。

既に多くの人が指摘しているので、ここではそれらへのリンクを示すことで代用したい。


アンバランスなデータ

アンバランスなデータの場合、損失関数の定義の中で影響してしまう。

それは、学習が損失関数の定義の中で、trainデータの集合が重要になってくるからです。


例:SVM の損失関数の定義 サポートベクターマシン


損失関数の紹介


アンバランスなサンプルの損失環境への影響

仮にポジティブサンプルが1%、ネガティブサンプルが99%のデータセットで、なんの工夫もなしに学習すると無意味な学習結果になってしまいます。

全てに対してFalseを返せば、なんと99%の精度で当てたことになります。

でも、それってほしいものじゃないね。

ですから、学習データの頻度を自分の問題に適するように考えて調整してください。

世の中には、既に有用な記事を書いてくださっている方々がいます。

例:

https://qiita.com/ryouta0506/items/619d9ac0d80f8c0aed92

不均衡データのクラス分類

https://www.slideshare.net/sfchaos/ss-11307051

https://teratail.com/questions/117564

https://tjo.hatenablog.com/entry/2017/08/11/162057

http://kamonohashiperry.com/archives/469

https://blog.amedama.jp/entry/imbalanced-data

https://qiita.com/r-takahama/items/631a59953fc20ceaf5d9