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

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アソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。