交差検証

Cross-Validation

交差検証とは

交差検証(Cross-Validation)とは、モデルの汎化性能を推定するためのデータ分割手法です。限られたデータセットを効率的に活用し、モデルの評価の安定性と信頼性を高めます。データの分割方法による偏りを軽減できるため、モデル選択やハイパーパラメータ調整において広く使用されています。

表:交差検証の要点まとめ
ひとことで言うとデータの分け方を変えて何度も評価し、平均で性能を測る方法。
何がうれしいかたまたま良い分け方だっただけ、という誤解を防げる。
注意点時系列データでは無作為に分けてはいけない。時間順の分割を使う。

k分割交差検証

最も一般的な手法はk分割交差検証(k-fold Cross-Validation)です。データをk個のグループ(フォールド)に分割し、k回の学習・評価を行います。各回で1つのフォールドをテストデータ、残りを訓練データとして使用し、k回の評価結果の平均を最終的な性能推定値とします。k=5やk=10がよく使われます。

図:交差検証の手順
1データをk分割5分割が一般的
▶
21つを評価用に残りで学習
▶
3評価用を交代全部が1回ずつ担当
▶
4k回の平均安定した性能評価
▶
5ばらつきも見る標準偏差で安定性を確認

交差検証の種類

k分割交差検証の他にも、層化k分割交差検証(各フォールドでクラス比率を維持)、Leave-One-Out交差検証(k=nとして各サンプルを1回ずつテストに使用)、グループ交差検証(同じグループのデータが訓練とテストに分かれないようにする)、時系列交差検証(時間順序を保持した分割)などがあります。

交差検証の注意点

交差検証は計算コストがk倍になること、前処理(特徴量スケーリングなど)はフォールドごとに独立に行う必要があること、データリーケージに注意が必要なことなどの注意点があります。適切に実施すれば、過学習の検出やモデルの信頼性評価に非常に有効です。