交差検証 こうさけんしょう
k分割交差検証汎化性能ハイパーパラメータモデル評価過学習防止訓練データ
交差検証について教えて
簡単に言うとこんな感じ!
「何度もシャッフルして繰り返しテストする」イメージだよ!データをいくつかのブロックに分けて、「このブロックをテスト用、残りを訓練用」というパターンを何周か繰り返すことで、たまたまデータの分け方が良かっただけじゃない、安定した精度評価ができるんだ。データを無駄にせず、信頼できる評価が得られるってこと!
交差検証とは
交差検証(Cross-Validation)とは、機械学習モデルの汎化性能を推定する評価手法です。データを複数のブロック(フォールド)に分割し、あるブロックをテスト用(検証用)、残りを訓練用として学習・評価するサイクルを繰り返します。全てのフォールドの評価スコアの平均を最終的な汎化性能の推定値とします。
単純にデータを1回だけ訓練・テストに分ける手法(ホールドアウト法)と比べ、交差検証はデータの全てを一度はテストデータとして使うため、データが少ない場面でも信頼性の高い評価が得られます。また「たまたまテストデータが簡単だった」という偶然の影響を排除できます。
AIシステムの発注・評価の場では「テスト精度98%」という数値がシングルラン(1回のみ)なのか交差検証によるものなのかを区別することが重要です。交差検証ベースの評価のほうが信頼性が高く、ベンダーから提示される精度が何を根拠としているかを確認する際の重要な判断基準になります。
主な交差検証の種類
| 手法 | 説明 | 向いている場面 |
|---|---|---|
| k分割交差検証(k-Fold CV) | データをk個のブロックに分割してk回評価 | 最も標準的。k=5または10がよく使われる |
| 層化k分割交差検証(Stratified k-Fold) | 各フォールドのクラス比率を維持して分割 | 分類問題・クラスが不均衡な場合 |
| Leave-One-Out(LOO-CV) | 1件ずつテストに使うn回の評価 | データが極めて少ない場合 |
| 時系列交差検証 | 時系列を考慮して過去→未来の方向で分割 | 時系列データ(売上予測・株価等) |
| グループk分割交差検証 | グループ単位でテスト分割 | 患者単位・企業単位など、個体ごとの評価が必要な場合 |
歴史と背景
- 1930〜40年代:統計学の分野でモデル選択の問題意識が芽生える
- 1974年:Stoneが交差検証の理論的枠組みを発表
- 1978年:Allen, M. D. がPRESS(予測残差平方和)として交差検証の体系化を進める
- 1993年:Kohavi が機械学習文脈での交差検証の有効性を実験的に示す論文を発表
- 2000年代:SciPy・scikit-learnなどのライブラリが交差検証を標準機能として実装し、実務普及が加速
- 現在:ハイパーパラメータのチューニング(グリッドサーチ・ランダムサーチ)と組み合わせて使うネスト交差検証が標準プラクティスとなっている
k分割交差検証(k=5)の流れ
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| ISO/IEC 22989:2022 | AI概念・用語(モデル評価・汎化性能の定義を含む) |
| ISO/IEC 23053 | 機械学習を使ったAIシステムのフレームワーク |
関連用語
- 過学習・過適合 — 交差検証で検出・防止しようとする現象
- 学習率 — 交差検証でチューニングするハイパーパラメータのひとつ
- エポック・バッチサイズ — 交差検証でチューニングするハイパーパラメータ
- 精度・再現率・F値 — 交差検証の評価に使われる指標
- 混同行列 — 交差検証の各フォールドで計算される評価の内訳
- 正則化(L1・L2) — 正則化パラメータのチューニングに交差検証が使われる
- 特徴量エンジニアリング — 交差検証を使って特徴量の有効性を評価する