AI資格ドリル
資格を選ぶ↓

用語比較

訓練・検証・テストデータの違い|モデルの学習と評価でデータを3つに分ける理由(DS検定・G検定)

訓練データはモデルを学習させるデータ、検証データは設定を選ぶために使うデータ、テストデータは最後に性能を確かめるデータです。同じデータで学習と評価をすると未知のデータに対する誤差が分からないため、役割ごとに分けます。

DS検定の公式スキルチェックリストにはホールドアウト法と交差検証、G検定の公式シラバスには交差検証と過学習が載っています。どちらも、データをどう分けて評価するかを前提にした用語で、3つのデータの役割を押さえておくと選択肢の見分けが楽になります。

このページは、訓練データとテストデータの2つだけは分かるが、検証データがなぜ必要なのかが曖昧な人向けです。scikit-learnの公式ドキュメントの説明を中心に、3つの役割を見分けます。

この記事の根拠と出典

各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。DS検定の一次情報確認日: 2026-10-02。

結論

訓練データ

モデルを学習させるために使うデータ。scikit-learnの公式ドキュメントでは、トレーニングセットにあたる。

検証データ

設定(ハイパーパラメータ)を変えながら、学習したモデルを評価するために取り置くデータ。実験がうまくいきそうになってから、最終評価をテストデータで行う。

テストデータ

学習に使わず、最後の評価のために取り置くデータ。設定を何度も調整すると、テストデータの情報がモデルに漏れうる。

違いを表で確認

比較軸訓練データ検証データ
使う場面訓練データ:モデルの学習検証データ:設定を選ぶ評価。テストデータ:最終評価
設定の調整に使うか検証データ:使うテストデータ:使わない(調整に使うと性能が正しく測れなくなる)
学習に使うか訓練データ:使う検証データ・テストデータ:使わない
分ける欠点3つに分けると学習に使える件数が大きく減る結果が(訓練、検証)の分け方の偶然に左右されうる

どこで迷っているかを切り分ける

01

訓練データとテストデータの2つに分ければ十分だと考えている人

設定の調整を何度もテストデータの結果を見ながら行うと、テストデータの情報がモデルに漏れ、性能の評価が当てにならなくなります。scikit-learnの公式ドキュメントは、この問題を避けるために検証データを別に取り置く方法を説明しています。

02

検証データと交差検証の関係を知りたい人

3つに分けると学習に使える件数が減るため、交差検証が使われます。交差検証でも最終評価用のテストデータは取り置きますが、検証データを別に取り置く必要はなくなります。

03

G検定で、検証データが出てくる場面を知りたい人

早期終了は、訓練データとは別に用意した検証データでの誤差を学習の途中で監視し、改善しなくなった時点で学習を打ち切る手法です。

具体例で使い分ける

例 1

設定を変えるたびに、取り置いたデータで精度を確かめている場合

ハイパーパラメータを何度も変えながら、取り置いたデータで評価する場面を問う設問です。

  • 設定の調整に使うデータが、検証データです。
  • scikit-learnの公式ドキュメントでは、うまくいきそうになってから、テストデータで最終評価を行います。

結論: 設定を選ぶための評価に使うのは検証データ、最後の評価に使うのはテストデータです。

例 2

学習に使ったデータで、そのまま精度を測った場合

訓練データで学習したモデルを、同じ訓練データで評価した設問です。

  • scikit-learnの公式ドキュメントは、同じデータで学習と評価を行うと未知のデータに対する誤差を示さず、方法論上の誤りになると説明しています。
  • 過学習したモデルでも、完全なスコアが得られます。

結論: 評価は学習に使っていないデータで行います。

問題文から答えを選ぶ手順

  1. 1

    学習に使うかを確認する

    モデルを学習させるデータは、訓練データです。

  2. 2

    設定の調整に使うかを確認する

    設定を変えながら評価に使うデータは、検証データです。

  3. 3

    最後の評価に使うかを確認する

    調整が終わってから、性能を確かめるために一度取り置いたデータは、テストデータです。

試験での見分け方

  • 1学習させるのが訓練データ。
  • 2設定を選ぶために評価するのが検証データ。
  • 3最後に性能を確かめるのがテストデータ。

誤答しやすい選択肢

検証データとテストデータを同じものと考える

修正: 検証データは設定を選ぶ評価に使い、テストデータは最後の評価のために取り置きます。設定の調整にテストデータを使うと、情報がモデルに漏れます。

訓練データで測った精度を、そのまま性能とみなす

修正: scikit-learnの公式ドキュメントでは、同じデータで学習と評価をするのは方法論上の誤りです。学習に使っていないデータで評価します。

交差検証をすればテストデータは不要と考える

修正: scikit-learnの公式ドキュメントでは、交差検証でも最終評価のためのテストデータは取り置きます。不要になるのは、別に取り置く検証データです。

確認問題

Q1ハイパーパラメータを選ぶための評価に使うデータは、検証データとテストデータのどちらですか?

答え: 検証データ

テストデータは、設定を決めたあとの最終評価のために取り置きます。

Q2データを訓練・検証・テストの3つに分けるときの欠点は何ですか?

答え: 学習に使える件数が大きく減ることと、結果が分け方の偶然に左右されうること

scikit-learnの公式ドキュメントが挙げる欠点です。これを補う方法が交差検証です。

Q3G検定の早期終了で、学習の途中の誤差を監視するために使うデータは何ですか?

答え: 訓練データとは別に用意した検証データ

検証誤差が改善しなくなった時点で学習を打ち切ります。

到達チェック

  • 訓練データの役割を言える
  • 検証データの役割を言える
  • テストデータの役割を言える
  • 3つに分ける欠点と、交差検証との関係を言える

同じ資格で次に知りたいこと

よくある質問

Q訓練データ・検証データ・テストデータは何が違いますか?

A

訓練データはモデルの学習、検証データは設定を選ぶ評価、テストデータは最後の評価に使います。

Qなぜデータを3つに分けるのですか?

A

scikit-learnの公式ドキュメントでは、設定を調整するときにテストデータの情報がモデルに漏れ、評価が汎化性能を表さなくなることを避けるためです。

Q交差検証をすれば検証データは不要ですか?

A

scikit-learnの公式ドキュメントでは、交差検証では検証データを別に取り置く必要はなくなりますが、最終評価用のテストデータは取り置きます。

Q検証データはG検定のどこに出ますか?

A

早期終了で、訓練データとは別に用意した検証データの誤差を監視する手法として出ます。

次に見る比較

執筆: ミナト編集部(運営者情報を見る)