テストデータセットとは、完成した機械学習モデルの最終的な精度や汎化性能を客観的に評価するために用いられるデータ集合です。モデルの学習に使用する訓練データセットや、調整段階で参照する検証データセットとは厳密に分離され、モデルが開発中に一度も見たことがない未知のデータとして運用時と同等の予測能力を計測する役割を果たします。
テストデータセットとは
テストデータセットとは、機械学習モデルの最終的な汎化性能を評価するために使用される、学習過程では完全に独立させたデータのことです。
詳しく解説
機械学習モデルの開発では、収集したデータを「訓練データセット」「検証データセット」「テストデータセット」の3つに分割することが一般的です。訓練データセットでモデルのパラメータを学習させ、検証データセットでハイパーパラメータの調整を行いますが、これらに使われたデータはモデルが一度見ているため、未知のデータに対する正しい予測精度を測れません。そのため、学習過程で一切使わなかったテストデータセットを用いて最終評価を行い、過学習が発生していないか確認するとともに、客観的な評価指標を算出します。
具体例・使われ方
画像認識モデルの開発を例に挙げます。手書き文字の画像データを1万枚用意した場合、7000枚を訓練データセット、1500枚を検証データセット、残り1500枚をテストデータセットに分割します。最終的に残しておいた1500枚のテストデータセットを完成したモデルに入力し、正解率などの評価指標を測定することで、運用時に未知のデータが入力されても正しく認識できるかを検証します。
似た用語との違い
訓練データセットはモデルの重みを更新して直接学習させるためのデータであり、検証データセットは学習中にモデルのチューニングや選択のために参照されるデータです。これに対してテストデータセットは、モデルの学習や調整には一切使用せず、完成したモデルの最終評価のみに利用されます。検証データセットと混同されやすいですが、検証データセットは開発途中の判断に使われるため、そこでの良好な結果がそのまま未知のデータに対する高い汎化性能を保証するわけではありません。
注意点
モデルの開発中やハイパーパラメータ調整の段階でテストデータセットの結果を参照してモデルを修正してしまうと、テストデータセット自体に過剰適合してしまうデータリークが発生します。一度でも評価に利用して意思決定に反映させたテストデータセットは、客観性を失うため注意が必要です。また、テストデータセットが実際の運用環境のデータ分布を正しく反映していない場合、評価結果が高くても実運用で期待どおりの精度が出ないリスクがあります。