訓練・検証・テスト分割と汎化性能

3分割でモデルの真の実力を測る作法。リークを避け、汎化性能を正しく評価します。

モデルの真の実力を測る、訓練・検証・テストの3分割。汎化性能の概念を理解します。

胡桃 あんず(普段) 胡桃 あんず

テストデータで100%正解だったら、それでバッチリってこと?

白銀 ゆき(普段) 白銀 ゆき

そこが落とし穴なの。 テストデータで学習しちゃってたら、未知のデータに対する性能はわからないのよ。

若葉 みどり 先生(笑顔) 若葉 みどり 先生

機械学習では訓練(train)、検証(validation)、テスト(test)の3つにデータを分けるの。

白銀 ゆき(普段) 白銀 ゆき

補足すると、訓練はモデルのパラメータ学習、検証はハイパーパラメータ調整やモデル選択、テストは最終的な汎化性能の評価、という役割分担になっているの。

桜井 もも(普段) 桜井 もも

比率はどれくらいなんですかぁ?

白銀 ゆき(普段) 白銀 ゆき

典型は train:val:test = 6:2:2 や 7:2:1。 データ量が多ければtestを5%程度に絞ることも。 重要なのは『テストデータは1度しか使わない』こと。

胡桃 あんず(普段) 胡桃 あんず

1度しか使わないって、どうして?

若葉 みどり 先生(普段) 若葉 みどり 先生

テストデータでハイパーパラメータを調整すると、テストデータに『間接的に学習』してしまい、汎化性能を正しく測れなくなるの。 これをリークと呼ぶ。

白銀 ゆき(普段) 白銀 ゆき

汎化性能=未知のデータに対する予測精度。 これを正しく測るには、テストデータを最後の1度だけ使う規律が大切なの。

桜井 もも(普段) 桜井 もも

うぅ〜ん…厳しいルールなんですねぇ…

胡桃 あんず(普段) 胡桃 あんず

じゃあ、ハイパラ調整は検証データだけでやればいいんだね!

若葉 みどり 先生(笑顔) 若葉 みどり 先生

そうそう。 そして検証データを何度も使うと、今度は検証データにオーバーフィットしてしまうから、{kw('交差検証')}(後の記事で扱うわ)を使ってリスクを抑えることが多いのよ。

白銀 ゆき(普段) 白銀 ゆき

DS検定では『データ分割の役割』『リークの危険性』が頻出。 訓練=学習、検証=調整、テスト=最終評価、を明確に区別して。

確認クイズ

モデルのハイパーパラメータ調整に最も適切なデータはどれか。

  1. 訓練データ
  2. 検証データ
  3. テストデータ
  4. 本番データ
こたえを見る

正解: 2. 検証データ

検証データ。 訓練データはパラメータ学習に使い、テストデータは最終評価のみに使います。 ハイパーパラメータ(学習率・木の深さ等)の調整は検証データで行うのが正しいプロセス分離です。

桜井もも・若葉みどり先生のイラスト。先生をうっかり「お母さん」と呼んでしまって真っ赤

この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。

この記事について

データサイエンティスト検定スタディが作成した教材です。運営について・記事の作り方

試験についてはこちらをご覧ください: データサイエンティスト協会 公式サイト

この記事を共有