【学習データセット】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)を使うよりも良い結果が得られてしまいます。
つまり、実際よりもエラー率が低くなってしまい、最終的なパフォーマンス計測には不適なので、未使用のデータセットとしてのテストセットを用意しておく必要があります。

機械学習の原理や実装例については以下ページにまとめています。

【機械学習入門】アルゴリズム&プログラミング
機械学習のアルゴリズム(原理)やプログラミング方法について入門者向けにまとめました。
Python
スポンサーリンク

コメント