Machine Morning

機械学習やWebについて学んだことを記録しています。

層化抽出法(stratified sampling)とは

sklearnのtrain_test_splitsklearn.model_selection.train_test_split — scikit-learn 0.20.2 documentation )に引数stratifyを渡せるがstratifyって何?と思ったので調べてみた。

層化抽出法は簡潔に言うと”母集団の分布と同じになるようにサンプリングする方法”である。例えばk個のクラスに分類されるデータセットから訓練用データセットとテスト用データセットに分割する場合、あるクラスに属する母集団(データセット)のデータ数が元から少ないこともある。その場合あるクラスの全てのデータがどちらかのデータセットに集まってしまう可能性があり、母集団(元のデータセット)とは大きく異なった分布のデータで学習を行ってしまうことがある。これを避けるために、どのクラス(層)からも母集団分布に近いサンプリングを行うことで、誤差分散を小さくする。

参考URLは図があるのでわかりやすい。

参考

bellcurve.jp

qiita.com