最終更新日:2026年8月26日
gk machine_learning evaluation
G検定トップ
> 学習・検証・テストデータの違い|役割で切り分ける【G検定】
まず結論
3つの役割は、次の1行で切り分けます。
学習=パラメータ更新、検証=調整・選択、テスト=最後の評価
G検定では、テストデータをモデル調整に使っていないかを見るのが重要です。
直感的な説明
試験勉強にたとえると、
- 学習データ:問題集で解き方を身につける
- 検証データ:模試を見て勉強法を調整する
- テストデータ:本番で最終成績を確認する
模試の結果を見て勉強法を変えるのは問題ありません。一方、本番問題を何度も見ながら勉強法を変えると、本当の実力を測れなくなります。
定義・仕組み
| データ | 主な役割 | 代表例 |
|---|---|---|
| 学習データ | モデルのパラメータを学習 | 重み更新 |
| 検証データ | モデル・ハイパーパラメータを選択 | 学習率、正則化係数、Early Stopping |
| テストデータ | 選択後のモデルを最終評価 | 汎化性能の確認 |
学習データ
モデルの重みなど、学習によって決まるパラメータの更新に使います。
検証データ
学習率やモデル構造などのハイパーパラメータ選択、Early Stoppingの停止判断などに使います。検証結果はモデル選択に影響するため、最終評価用データとは分けます。
テストデータ
学習・モデル選択が終わった後に、最終的な汎化性能を評価します。テスト結果を見て何度もモデルを変更すると、テストデータにも実質的に適合してしまいます。
いつ使う?(得意・不得意)
データ分割は、未知データに対する性能を公平に見たいときに使います。
注意したいのは、前処理も分割後の役割を守ることです。たとえば標準化の平均・標準偏差を全データから計算すると、検証・テスト側の情報が学習へ入る可能性があります。
G検定ひっかけポイント
- ❌ テストデータでハイパーパラメータを選ぶ → 最終評価が汚れる
- ❌ 検証データを使って勾配で重みを更新する → 通常の役割分担では誤り
- ⭕ 検証データでEarly Stoppingを判断する → 正しい
- ⭕ テストデータはモデル選択後に使う → 正しい
選択肢を切るときは、次の対応を使います。
重み更新 → 学習
調整・選択 → 検証
最終評価 → テスト
まとめ(試験直前用)
- 学習:パラメータ更新
- 検証:ハイパーパラメータ調整・モデル選択
- テスト:最後の汎化性能評価
- テスト結果を見て調整を繰り返さない
- 分割後の前処理でもリーケージに注意
関連: 交差検証 / Early Stopping