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

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