青の統計学-DS Playground-

モデル選択・評価

AIC、BIC、交差検証、ROC曲線、混同行列など、統計モデルの選択と評価に関する手法

交差検証の基本 レベル1

k-fold交差検証について、正しい記述はどれか。

解説

この問題では、機械学習において最も重要なモデル評価手法の一つであるk-fold交差検証(k-fold Cross-Validation)について理解を深めます。

k-fold交差検証とは?

k-fold交差検証は、限られたデータを効率的に活用してモデルの汎化性能(未知のデータに対する予測性能)を評価する統計的手法です。単一のデータ分割による評価の不安定性を解決し、より信頼性の高い性能評価を可能にします。

k-fold交差検証の手順

1. データの分割

全データセットをk個の等しいサイズの部分集合(fold)にランダムに分割します。各foldは互いに重複しないように作成されます。

2. 学習と検証の繰り返し

以下の処理をk回繰り返します:

  • 学習フェーズ:k-1個のfoldを結合して学習データとし、モデルを訓練
  • 検証フェーズ:残り1個のfoldを検証データとし、訓練されたモデルの性能を評価
  • 各回で異なるfoldを検証用として使用

3. 最終評価

k回の検証結果を統合して最終的な性能指標を計算します:

$\text{CV Score} = \frac{1}{k} \sum_{i=1}^{k} \text{Score}_i$

ここで、$\text{Score}_i$は第i回目の検証での性能スコアです。

k-fold交差検証の利点
  • データの有効活用:全てのデータが学習と検証の両方に使用されるため、データを無駄にしない
  • 偏りの軽減:単一の分割による偶然の偏りを複数回の評価で平均化
  • 安定した評価:性能評価の分散を小さくし、より信頼性の高い結果を得られる
  • ばらつきの把握:k回の結果から平均値と標準偏差を計算し、性能のばらつきの目安を得られる(fold同士は学習データを共有して独立ではないため、厳密な信頼区間にはならない)

kの値の選択

一般的な設定:

  • k = 5:計算コストと評価の安定性のバランスが良い
  • k = 10:バイアスと分散のバランスがよく、最もよく使用される
  • k = n(Leave-One-Out):バイアスは最も小さいが、推定の分散が大きくなり得て、計算コストも高い

kの値による特徴:

k値学習データサイズ計算コスト誤差推定のバイアス(悲観側)
小さい(k=3,5)小さい低い大きめ
中程度(k=10)中程度中程度小さめ
大きい(k=n)大きい高い最も小さい

kを大きくすると学習データが全データに近づくため、汎化誤差を悲観的に見積もるバイアスは小さくなります。一方、推定量の分散はkに対して単調に減るとは限りません。LOOでは各回の学習データがほぼ同じで結果同士の相関が強いため、テスト誤差推定の分散がかえって大きくなることがあります。kの選択はバイアス・分散・計算量のトレードオフで、実務では5や10がよく使われます。

特殊な交差検証手法

層化k-fold交差検証(Stratified k-fold):

  • 分類問題において、各foldで元のクラス比率を維持
  • 不均衡データセットで特に有効

時系列交差検証(Time Series CV):

  • 時系列データでは時間順序を保持した分割が必要
  • 未来のデータで過去を予測することを防ぐ

計算コストと実装上の考慮

計算コスト:

  • k回のモデル学習が必要なため、単純なホールドアウト法の約k倍の時間
  • 大規模データセットや複雑なモデルでは計算時間が問題となる場合がある

実装のポイント:

  • データの分割は再現可能になるよう乱数シードを固定
  • 前処理(標準化など)は各foldで独立して実行
  • データリークを防ぐため、検証データの情報を学習に使用しない

実践的な注意点:
交差検証は汎化性能の推定には優れていますが、最終的なモデルの学習には全データを使用することが一般的です。また、ハイパーパラメータの調整を行う場合は、ネストした交差検証(入れ子交差検証)を使用して、より厳密な評価を行うことが推奨されます。

問題 3/20
カテゴリ一覧に戻る
問題検索