// PART 14 · DEMO 02
DEMO REHAB L1

交差検証を、foldの入れ替わりで体験する

— Interactive k-fold Cross-Validation Demo

15 min hands-on · L1 · 2026.05.20 update · by Editor

交差検証(k-fold cross-validation)は、データを k 個のグループ(fold) に分け、1 つを検証用、残りを学習用として使う手順を k 回繰り返し、検証データの役割を入れ替えていく方法です。1 回だけの train/test 分割では「たまたま難しい症例が test に偏る」リスクがある一方、交差検証では全症例を一度は検証に使うため、特定の分割に依存しない性能評価ができます(理論的背景は 09·01 過学習と正則化 も参照)。本デモでは、fold が入れ替わるたびに検証データが切り替わる様子を可視化します。

// HOW TO USE

右の操作パネルから「NEXT FOLD」を押して、緑の検証データ(現在 fold)が順番に入れ替わっていく様子を確認してください。「ALL FOLDS」で自動アニメーション。下の棒グラフは fold ごとの検証 MSE のばらつき を示します。複雑さ(次数)を上げると、fold 間のばらつきが大きくなる(=不安定)のが見えるはずです。

// CURRENT FOLD · 学習と検証

緑の点が現在 fold の検証データ、青の点が学習データ。

学習 検証 モデル 真の関係

// TIP  次数を上げる → fold 間の検証 MSE のばらつきが大きくなる(モデル不安定)。

// k-FOLD CROSS-VALIDATION FLOW · 4 ステップ

交差検証のアルゴリズム全体像。

01

データを k 個に分ける

症例データを、なるべく同じ大きさの k 個のグループ(fold)にランダム分割。

02

1 つを検証用にする

現在の fold だけを検証データに、残りを学習データに。学習 → 検証で MSE を計算。

03

k 回くり返す

検証データの役割を順番に入れ替え、すべての症例を一度は検証に使う。

04

平均して評価する

各 fold の性能を平均し、特定の分割に依存しない汎化性能の推定値とする。

01

なぜ交差検証を使うか?

1 回だけの train/test 分割では、たまたま難しい症例がテスト側に偏ることがある。交差検証では検証データを入れ替えて複数回評価するため、性能評価が特定の分割に左右されにくくなる

02

医療データでの見方

退院時 FIM や歩行自立の予測では、症例数が限られることが多い。単一分割の AUC や RMSE だけでなく、交差検証で性能の平均とばらつき(分散)を確認することが重要。

03

研究での注意点

  • 前処理・特徴量選択は各 fold の学習データ内で行う(データリーケージ防止)
  • 分類問題では層化(stratified)交差検証を検討
  • 交差検証は内部検証であり、外部検証の代替にはならない
  • 最終テストデータは、モデル選択に使わず最後に 1 度だけ評価

// RELATED関連記事で深く学ぶ