1. 定義と概要
テストデータとは、学習がすべて完了したモデルに対して、それまでの学習や調整のどちらにも一切使っていない未知のデータを用意し、汎化性能を測るために使うデータの集合です。手元のデータは役割ごとに三つに分けて扱われ、テストデータはそのうちの一つにあたります。
学習に関わるデータの区分を整理すると、次のようになります。
| データの区分 | 主な使いどころ | モデルへの関与 |
|---|---|---|
| 訓練データ | パラメータ(重みやバイアスなど、学習によって調整される数値)の学習 | モデルの中身を作る材料になる |
| 検証データ | ハイパーパラメータ(学習率など、人があらかじめ設定する値)の調整やモデル選択、早期終了の判断 | 学習途中の調整に関与する |
| テストデータ | 学習が完了したモデルの汎化性能の測定 | 構築にも調整にも関与しない |
テストデータは訓練データ・検証データの両方から完全に切り分け、モデルの構築にも調整にも関与させません。たとえば手元のデータを訓練・検証・テストの3つに分割した場合、テスト用に確保した分はモデルが完成した後の1回の評価だけに使います。
従来は、訓練データへの当てはまりの良さだけでモデルの出来を判断する場合がありました。しかし、その方法では未知のデータに対する性能を確認できないという課題が残ります。検証データを使ってハイパーパラメータを調整しても、その調整の過程で参照した検証データに対しては間接的に適合している可能性があります。
そこで、学習にも調整にも一切関与させない、まっさらな状態のデータでの最終評価が必要になります。この位置づけから、テストデータは訓練データ・検証データと切り分けて確保されます。
2. 試験対策ポイント
まず重要になるのは、テストデータの役割が、学習が完了したモデルの汎化性能を測る最終評価に限定されるという独立性です。パラメータの学習に使う訓練データや、学習途中のハイパーパラメータ調整・モデル選択・早期終了の判断に使う検証データとは異なり、テストデータはモデルの構築にも調整にも一切関与しません。この独立性が、テストデータを訓練データ・検証データと区別する基本の軸になります。
テストデータは、一度きりの評価に使うのが原則です。テストデータでの結果を見てモデルの設定を調整し、同じテストデータで再評価するという行為を繰り返すと、テストデータの情報が間接的にモデルの調整へ取り込まれ、評価結果が実際の性能より甘くなります。
このように、テストデータの情報が学習や調整の過程に漏れ、独立した評価ができなくなる現象はデータリーケージ(本来使ってはいけない情報が学習過程に紛れ込んでしまう問題)と呼ばれます。テストデータを使った前処理、たとえば正規化(データの値の範囲をそろえる前処理)の基準値の算出などの順序を誤ると発生しうる問題で、テストデータの取り扱いと直結する論点として関連づけられます。
データの分割方法には、手元のデータを1回だけ訓練・検証・テストに分けるホールドアウト検証(データの分け方を1回だけ確定して評価する方法)や、データの分け方を変えながら複数回学習と評価を繰り返す交差検証(クロスバリデーション。データの分け方を変えながら複数回学習と評価を繰り返し、性能を確かめる方法)があります。
交差検証にはさらに、データをk個に分けて順番に評価するk-分割交差検証や、1件だけを検証用に残して残り全部で学習する1つ抜き交差検証といった具体的な手法があり、それぞれの詳しい手順は別の論点として扱われます。どちらの分割方法をとっても、テストデータは学習にも調整にも使わないという位置づけ自体は共通しています。
3. 関連概念との比較・相違点
検証データとの最大の違いは、参照してよい回数と、その結果をモデルの調整に反映してよいかどうかにあります。検証データは学習の途中で繰り返し参照し、その結果をもとにハイパーパラメータの設定やモデルの選択を何度でも変えられます。
一方、テストデータは学習が完了した後の最終評価に1回だけ使うデータで、その結果を見てモデルを作り直すことは想定されていません。検証データが調整のための物差しであるのに対し、テストデータは調整が終わった後に一度だけ当てる物差しという位置づけの違いがあります。
訓練データとの違いは、データが担う役割そのものにあります。訓練データはモデルのパラメータ、すなわち重みやバイアスを学習させるために使うデータで、モデルの中身を作る材料にあたります。
テストデータは、その材料を使って完成したモデルの性能を、学習が終わった後に測るためだけに使われます。訓練データがモデルを作るデータであるのに対し、テストデータはできあがったモデルを測るデータという違いです。この役割分担は、データの分割方法がホールドアウト検証であっても交差検証であっても変わりません。
4. ビジネス・実務での活用シナリオ
与信・金融審査の分野では、モデル開発を終えた後にテストデータで最終評価を1回行い、その精度をもって運用可否を判断します。テストデータでの結果を見てからモデルを作り直すと評価が実際より甘くなり、実運用での誤判定リスクを見誤ることにつながります。
医療診断支援の分野では、診断モデルの実運用申請前に、開発に一切使っていない患者のデータ、つまりテストデータで最終評価を行い、初めて診る患者への対応力を確認します。この評価結果だけが、モデルの性能を裏づける独立した根拠になります。
需要予測・在庫管理の分野では、モデル選定後にテストデータで予測誤差を1回だけ確認し、それを最終的な精度として報告します。繰り返しテストデータを見て微調整すると、報告した精度が実運用の発注で再現しなくなるという関係にあります。
三つの事例に共通するのは、テストデータでの評価が現場に出す前の最後の関門であり、その結果を書き換えるような調整を挟まない点です。
5. 要点まとめ
- テストデータは、学習がすべて完了したモデルの汎化性能を測るためだけに使うデータで、訓練データ(パラメータ学習)・検証データ(学習途中の調整)とは独立して確保します。
- テストデータは一度きりの評価に使うのが原則で、結果を見て調整を繰り返すと評価結果が実際の性能より甘くなります。
- テストデータの情報が学習や調整の過程に漏れ独立性が損なわれる現象はデータリーケージと呼ばれ、テストデータの取り扱いと直結する論点です。
6. 確認問題
問1テストデータは、学習がすべて完了したモデルの汎化性能を測るための最終評価にのみ使われる。
解答・解説をみる
○ 正しい
テストデータの用途は学習完了後の最終評価に限られ、パラメータの学習や学習途中の調整には使いません。訓練データ・検証データとの独立性を区別する中心の論点です。
問2テストデータでの評価結果を見てモデルの設定を調整し、その後同じテストデータで再評価しても、評価結果の信頼性は損なわれない。
解答・解説をみる
× 誤り
テストデータは一度きりの評価に使うのが原則です。結果を見て調整し再評価を繰り返すと、テストデータの情報が間接的にモデルの調整へ取り込まれ、評価結果が実際の性能より甘くなります。正しくは、調整を繰り返すたびに評価の信頼性が下がるという関係にあります。
問3テストデータの情報が学習や調整の過程に漏れ、独立した評価ができなくなる現象をデータリーケージと呼ぶ。
解答・解説をみる
○ 正しい
テストデータの情報が学習側に漏れて独立性が損なわれる現象はデータリーケージと呼ばれ、テストデータの取り扱いを誤ると起こりうる問題として関連づけられます。

