G検定(ジェネラリスト検定)
こうさけんしょう
交差検証
Cross-validation
交差検証は、訓練データをいくつかのまとまりに分け、学習に使う部分と検証に使う部分を入れ替えながら評価を繰り返し、その結果の平均でモデルの性能を見積もる評価方法です。検証データを1つに固定して切り出す方法に比べ、学習に使えるデータを無駄にしにくく、データの分け方の偶然にも左右されにくくなります。
詳しい説明
同じデータで学習と評価をしてはいけない理由
予測のためのモデルを学習させたデータで、そのまま性能を評価するのは方法として誤りです。見たことのあるデータの正解をそのまま繰り返すだけのモデルでも満点になりますが、まだ見ていないデータに対しては役に立つ予測ができません。この状態を過学習と呼びます。これを避けるため、教師あり学習の実験では、手元のデータの一部をテストデータとして学習から外しておくのが一般的です。
テストデータを何度も使うと起きる情報の漏れ
ハイパーパラメータ(人が手で決める設定値)をいろいろ試すとき、テストデータでの成績が最もよくなるまで調整を繰り返すと、テストデータに対して過学習するおそれがあります。テストデータの情報がモデルに漏れ、評価の値が汎化性能を表さなくなるためです。対策として、もう1つ検証データを取り分け、訓練データで学習、検証データで調整、最後にテストデータで最終評価をする3分割の方法があります。
3分割の弱点
データを3つに分けると、学習に使えるデータの数が大きく減ります。さらに、訓練データと検証データをどう分けたかという偶然に、結果が左右されることがあります。
k分割交差検証の手順
この問題を解決するのが交差検証です。基本の方法であるk分割交差検証では、訓練データをk個の小さなまとまりに分けます。そのうちk-1個で学習し、残りの1個で精度などの性能を測ります。検証に使う1個を入れ替えながらこれをk回繰り返し、k回分の値の平均を性能の指標とします。
利点と費用
計算の手間はかかりますが、検証データを1つに固定する方法ほどデータを無駄にしません。サンプル数がとても少ない問題では、これが大きな利点になります。
テストデータは最後まで別に残す
交差検証を使えば検証データを別に用意する必要はなくなります。それでも、最終評価のためのテストデータは別に残しておくべきです。なお、シラバス2024の中項目10のキーワードには、交差検証のほかに、k-分割交差検証とホールドアウト検証も並んでいます。
試験で問われること
G検定
- 学習に使ったデータで性能を評価すると、正解を丸暗記しただけのモデルでも満点になる。まだ見ていないデータへの性能は測れないので、テストデータを分けておく。
- ハイパーパラメータをテストデータで何度も調整すると、テストデータの情報がモデルに漏れる。その結果、評価の値が汎化性能を表さなくなる。
- 訓練・検証・テストの3分割には、学習に使えるデータが減る弱点と、分け方の偶然に結果が左右される弱点がある。
- k分割交差検証では、訓練データをk個に分け、k-1個で学習して残り1個で検証する。これを入れ替えながらk回行い、その平均を性能の指標にする。
- 交差検証を行っても、最終評価のためのテストデータは別に残しておく。
最終更新日: 2026/09/23