Leave-One-Out Cross-Validation (LOOCV) へようこそ!
こんにちは!Exam SRMの勉強中の方なら、モデル構築に使ったデータに対する性能をそのまま信頼するわけにはいかないことは、すでにご存知ですよね。モデルが未知のデータに対してどれだけうまく機能するかを知る必要があります。前回のセクションでは「検証セットアプローチ(Validation Set Approach)」について学びました。今回は、その洗練された兄弟分であるLeave-One-Out Cross-Validation(LOOCV:一留交差検証)を見ていきましょう。
最初は少し数学的に見えるかもしれませんが、心配しないでください。このノートを読み終える頃には、LOOCVがモデルを「テスト」するための非常に公平で徹底的な方法であることがわかるはずです。それでは、さっそく見ていきましょう!
LOOCVとは何か?
20人の生徒がいるクラスを想像してみてください。先生が生徒の成績をどれだけ正確に予測できるかを調べたいとします。LOOCVでは、以下のようなステップを踏みます。
1. 1人の生徒を部屋から外に出します。
2. 残りの19人の生徒のデータを使って、先生に「学習」させます。
3. 外に出した1人の生徒の成績を、先生に予測させます。
4. このプロセスを、毎回別の生徒を外に出して、計20回繰り返します。
5. 先生が20回の試行で行ったミスの平均をとります。
統計学の言葉で言うと、全観測値が \( n \) 個ある場合、\( n-1 \) 個の観測値を使ってモデルをトレーニング(訓練)し、1個の観測値を使って検証(テスト)します。このプロセスを \( n \) 回繰り返すのです。
ステップ・バイ・ステップの手順
1. 最初の観測値 \( (x_1, y_1) \) を検証セットとして取り除きます。
2. 残りの \( n-1 \) 個の観測値を使用してモデルを当てはめます。
3. \( x_1 \) の値を予測し、誤差を計算します: \( MSE_1 = (y_1 - \hat{y}_1)^2 \)。
4. 観測値2、3と順番に進め、\( n \) 個目の観測値まで同じことを繰り返します。
5. 最後に、それら個々の誤差を平均して、LOOCVの推定値を得ます:
\( CV_{(n)} = \frac{1}{n} \sum_{i=1}^{n} MSE_i \)
クイック復習ボックス:
- トレーニングセットのサイズ: \( n-1 \)
- 検証セットのサイズ: 1
- 反復回数: \( n \)
なぜLOOCVは検証セットアプローチより優れているのか?
検証セットアプローチ(データを50/50に分割する方法)には、2つの大きな欠点があることを覚えていますか?LOOCVはその両方を解決します!
1. ランダム性がない: 検証セットアプローチでは、どの観測値がトレーニング用で、どの観測値がテスト用になるかによって結果が変動してしまいます。しかし、LOOCVにはランダム性がありません。同じデータに対してLOOCVを2回実行しても、全く同じ答えが得られます。なぜなら、すべての観測値が検証ポイントになる機会を一度ずつ確実に得るからです。
2. バイアス(偏り)が小さい: 検証セットアプローチでは、データの半分しかトレーニングに使えません。モデルはデータが少ないと性能が落ちる傾向があります。つまり、検証セットアプローチはテスト誤差率を過大評価(悲観的)しがちです。一方、LOOCVはほぼすべてのデータ(\( n-1 \) 点)をトレーニングに使うため、より正確で(バイアスの少ない)誤差の推定値を提供できます。
線形モデルのための「魔法」のショートカット
こう思っているかもしれません:「待って、10,000個も観測値があったら、10,000回もモデルを当てはめるの?そんなの時間がかかりすぎる!」
その通りです!ほとんどのモデルにとって、LOOCVは計算コストが非常に高いです。しかし、最小二乗法による線形回帰や多項式回帰の場合、モデルをたった1回当てはめるだけでLOOCV誤差を計算できる「魔法」の公式が存在します!
\( CV_{(n)} = \frac{1}{n} \sum_{i=1}^{n} \left( \frac{y_i - \hat{y}_i}{1 - h_i} \right)^2 \)
この式において、\( \hat{y}_i \) はすべてのデータにフィットさせた元のモデルからの予測値であり、\( h_i \) はレバレッジ(てこ比)統計量です。レバレッジ \( h_i \) は、ある観測値が自分自身のフィットにどれだけ影響を与えているかを示します。レバレッジが高い観測値は、回帰直線を自分の方へ「引き寄せる」性質があります。
重要なポイント: このショートカットを使えば、線形回帰においては、たった1回モデルをフィットさせるのと同じ速さでLOOCVが実行できるのです!
LOOCVのメリットとデメリット
統計学のあらゆる手法にはトレードオフがあります。LOOCVの「良い点」と「悪い点」を見てみましょう。
良い点:
- 低バイアス: データセットのほぼ全体でトレーニングを行うため、モデルのデータ不足による性能低下を防げます。
- 安定性: 何回実行しても同じ結果が得られます(分割の運に左右されません)。
悪い点:
- 高い計算コスト: 線形回帰のショートカットを使わない限り、\( n \) 回モデルを当てはめるのは時間がかかります。
- 高い分散: ここは少しトリッキーです!私たちがトレーニングする \( n \) 個のモデルは、それぞれがほとんど同じ(\( n-2 \) 個の観測値を共有している)ため、その出力は高度に相関しています。相関の高い値を平均すると、相関の低い値を平均する場合よりも、結果として得られる平均値の分散は大きくなります。(これについては、次章でK-fold交差検証と比較します)。
豆知識: この文脈で「分散が高い」ということは、もし元のデータセットが少しでも異なっていた場合、K-fold推定値よりもLOOCVの誤差推定値の方が大きく変動してしまう可能性がある、という意味です。
避けるべきよくある間違い
間違い1:このショートカットは線形モデルにしか適用できないことを忘れる。 決定木やサポートベクターマシンのような複雑な手法を使う場合、\( h_i \) の公式は使えません。この場合は実際にモデルを \( n \) 回実行する必要があります。
間違い2:LOOCVが常に「最高」の方法だと思い込む。 バイアスは低いですが、高い分散と計算コストがネックとなり、実務では10-fold交差検証の方が良い選択となることが多いです。LOOCVは小規模なデータセット用のツールキットとして持っておきましょう!
LOOCVのまとめ
1. 定義: \( K = n \) としたK-fold交差検証の特別なケース。
2. 手順: \( n-1 \) でトレーニングし、1でテストする。これを \( n \) 回繰り返し、結果を平均する。
3. メリット1: 検証セットアプローチよりもバイアスが低い。
4. メリット2: 決定的である(分割による運に左右されない)。
5. デメリット: 計算に時間がかかる場合があり、K-fold CVよりも分散が高い。
6. 特別な公式: 線形回帰の場合は、レバレッジ(\( h_i \))のショートカットを使って時間を節約できる。
よく頑張りました!これでLeave-One-Out交差検証のコンセプトは完璧です。次は、検証セットアプローチとLOOCVの中間地点とも言える「K-fold交差検証」について見ていきましょう。その調子で頑張ってください!