【学習データセット】train、validation、test datasetの違い、使い分け

学習用のデータセットでよく出てくるtrain、validation、test datasetの違い、使い分けについてまとめました。

【学習データセット】train、validation、test datasetの違い

train、validation、test datasetの違いは以下のとおりです。

項目 概要
train dataset 分類器のパラメータを更新するための学習用データ。(ニューラルネットワークだと重みを更新)
validation dataset 手動で設定するパラメータの良し悪しを確かめるための検証用データ。学習は行わない。(ニューラルネットワークだと各層のニューロン数、隠れ層の数、バッチサイズ、学習係数など。ニューラルネットワークの重みは自動更新されるのでハイパーパラメータには含まれない)
test dataset 学習後に汎化性能を確かめるために、最後に(理想的には一度だけ)テストデータで、学習は行わない。

【補足】validationとtest datasetを分ける理由

検証用データセット(validation)は、人の手によって設定されるパラメータ(ハイパーパラメータ)を調整するための、分類器のパフォーマンス測定に使います。
一方、テスト用データセット(test)は、学習後の分類器のパフォーマンスを確かめるためだけに使用します(テスト後には、それ以上分類器のハイパーパラメータを調整してはいけません。

もし、検証用データセット(validation)を使ってテストを行えば(学習後の分類器のパフォーマンスを確かめると)、学習には未使用のテスト用データセット(test)を使うよりも良い結果が得られてしまいます。
つまり、実際よりもエラー率が低くなってしまい、最終的なパフォーマンス計測には不適なので、未使用のデータセットとしてのテストセットを用意しておく必要があります。

コメント

タイトルとURLをコピーしました