AIC、BIC、交差検証、ROC曲線、混同行列など、統計モデルの選択と評価に関する手法
k-fold交差検証について、正しい記述はどれか。
この問題では、機械学習において最も重要なモデル評価手法の一つであるk-fold交差検証(k-fold Cross-Validation)について理解を深めます。
k-fold交差検証は、限られたデータを効率的に活用してモデルの汎化性能(未知のデータに対する予測性能)を評価する統計的手法です。単一のデータ分割による評価の不安定性を解決し、より信頼性の高い性能評価を可能にします。
1. データの分割
全データセットをk個の等しいサイズの部分集合(fold)にランダムに分割します。各foldは互いに重複しないように作成されます。
2. 学習と検証の繰り返し
以下の処理をk回繰り返します:
3. 最終評価
k回の検証結果を統合して最終的な性能指標を計算します:
ここで、$\text{Score}_i$は第i回目の検証での性能スコアです。
一般的な設定:
kの値による特徴:
| k値 | 学習データサイズ | 計算コスト | 誤差推定のバイアス(悲観側) |
|---|---|---|---|
| 小さい(k=3,5) | 小さい | 低い | 大きめ |
| 中程度(k=10) | 中程度 | 中程度 | 小さめ |
| 大きい(k=n) | 大きい | 高い | 最も小さい |
kを大きくすると学習データが全データに近づくため、汎化誤差を悲観的に見積もるバイアスは小さくなります。一方、推定量の分散はkに対して単調に減るとは限りません。LOOでは各回の学習データがほぼ同じで結果同士の相関が強いため、テスト誤差推定の分散がかえって大きくなることがあります。kの選択はバイアス・分散・計算量のトレードオフで、実務では5や10がよく使われます。
層化k-fold交差検証(Stratified k-fold):
時系列交差検証(Time Series CV):
計算コスト:
実装のポイント:
実践的な注意点:
交差検証は汎化性能の推定には優れていますが、最終的なモデルの学習には全データを使用することが一般的です。また、ハイパーパラメータの調整を行う場合は、ネストした交差検証(入れ子交差検証)を使用して、より厳密な評価を行うことが推奨されます。