1 交差検証の概要
1.1 目的と役割
1.1.1 汎化性能の推定
交差検証は、限られた標本で学習したモデルが、学習に用いていないデータ(未知データ)でもどの程度の精度・頑健性を示すかを推定するための評価枠組みである。単一の訓練・検証分割では、分割の偶然性に左右されやすいが、複数回の学習・評価を通じて推定の安定性を高める。
1.1.2 評価ばらつきの低減
モデル性能は、データのどの部分を訓練に回し、どの部分を評価に回したかに依存する。交差検証は各サブセットを交代で検証に用いるため、性能指標の揺らぎがならされ、推定値の分散を抑える方向に働く。
1.1.3 過学習の検出補助
過学習とは、学習データに適合しすぎて、評価データでは性能が落ちる現象である。交差検証では分割ごとの学習状況が異なるため、特定の分割でのみ急に高い性能が出る場合や、平均性能に対して著しい落ち込みが見られる場合など、過学習の疑いを相対的に検出しやすい。
1.2 基本的な仕組み
1.2.1 データ分割の考え方
基本形では、データをk個の互いに素な部分(フォールド)に分ける。各フォールドは検証用に用い、残りのフォールドを訓練用として学習を行う。分割の設計(ランダム性、層化、時系列の順序維持など)は結果の妥当性に直結する。
1.2.2 学習と検証の反復
反復の回数は分割数に応じて増減する。各反復で訓練集合と検証集合が入れ替わり、モデルは毎回別インスタンスとして学習し直されることが一般的である。これにより、検証データへの過度な適応ではなく、評価集合に関する独立性を確保しやすくなる。
1.2.3 評価指標の集計
各フォールドで算出した指標(例:分類の正解率やF1、回帰の平均二乗誤差など)を集計し、平均や分散、信頼区間に相当する要約を得る。用途によっては中央値や分位点を用いて外れたフォールドの影響を抑えることもある。
1.3 利点と限界
1.3.1 計算コスト
交差検証は通常、単一分割よりも学習回数が増えるため計算負荷が大きい。学習が重いモデルや大規模データでは、kの縮小、反復回数の調整、もしくは代替評価法の検討が必要になる。
1.3.2 データ依存性と仮定
交差検証の妥当性は、データが各フォールドで同質に近いという仮定に依存する。たとえば独立同分布が崩れるケース(時系列依存、同一人物の複数サンプル混在、系列構造の保持が必要など)では、通常のランダム分割を適用すると性能が見かけ上改善しやすくなる。設計要件を反映しない限り、推定の信頼性は低下する。
2 代表的な交差検証手法
2.1 k分割交差検証
2.1.1 一般的手順
k分割交差検証では、まずデータをk個に分割する。次に、各反復で1つのフォールドを検証に用い、残りk−1個で学習する。最後に、全フォールドの評価指標を集計して性能を要約する。分類ではラベル分布の偏りが問題になりやすく、回帰でもデータの分布変化があると解釈が難しくなるため、分割戦略が重要となる。
2.1.1.1 分割数kの選び方
kの選択は、バイアスと分散のトレードオフに関係する。kが大きいほど訓練データに含まれる割合が増えるため性能見積もりのバイアスが小さくなる傾向がある一方、反復回数が増え計算負荷が増大する。小さいkでは計算は軽いが、訓練集合の小ささに起因する誤差が増える可能性がある。実務ではモデル学習の重さや許容できる実行時間を踏まえて調整する。
2.1.2 分割のシャッフルと乱数
標準的なk分割では、分割前にデータをシャッフルしてフォールド間の均質性を確保することが多い。乱数によってフォールド割り当てが変わるため、結果も変動しうる。そのため、重要な意思決定に用いる場合は乱数種を複数試し、頑健性を確認する運用が望ましい。
2.2 層化k分割交差検証
2.2.1 クラス不均衡への対応
分類問題でクラス比率が大きく偏っていると、ランダム分割では一部のフォールドに特定クラスがほとんど含まれない場合がある。層化k分割は、クラスごとの割合が各フォールドで概ね維持されるように分割する。これにより、検証指標が分割の偶然に大きく左右される事態を減らしやすい。
2.2.2 確率的出力と指標への影響
確率出力を伴うモデルでは、検証時に算出する指標(例:閾値依存指標や校正の評価)が、クラス比率やラベル分布のばらつきの影響を受けやすい。層化により検証集合の分布が安定するため、指標の変動が抑えられる場合がある。ただし完全に同一になるわけではないため、分散の報告や不確実性の考慮が依然として有効である。
2.3 反復交差検証
2.3.1 学習・評価の再実行
反復交差検証は、k分割交差検証を複数回(異なる分割)繰り返し、その結果を集計する方法である。同一kでも、シャッフルによりフォールド割当が変わるため、分割起因の揺らぎをさらに平均化できる。代わりに計算量は増えるため、利用可能な資源と目的の重要度に応じて回数を調整する。
2.3.2 分散推定の考え方
反復により、性能指標のばらつきが「モデルの学習変動」だけでなく「分割の変動」も含めて観測される。集計の際に平均だけでなく分散や信頼区間を示すと、実運用での期待性能と不確実性をより解像度高く伝えられる。
2.4 逐次・時系列向け交差検証
2.4.1 時系列分割の基本
時系列データでは、観測の順序が意味を持つため、ランダムに分割すると未来の情報が過去側の訓練に混入する危険がある。一般に、過去から未来へと進むように、訓練集合を検証集合より前の時刻に限定する分割が用いられる。代表的な設計としては、窓を広げる方式や固定長の窓で次区間を予測する方式などがある。
2.4.2 未来情報リークの回避
時系列で重要なのは、検証時に本来利用できない情報が特徴量や前処理により訓練側へ混入していないかを確認することである。たとえば標準化の平均・分散を全期間で計算してしまうと、未来情報が潜在的に流入する。したがって、前処理・特徴抽出も分割の境界を尊重して、訓練部分のみから推定し検証へ適用する必要がある。
3 ハイパーパラメータ選択との関係
3.1 内側交差検証と外側交差検証
3.1.1 ネスティッド交差検証の目的
ネスティッド交差検証は、ハイパーパラメータ探索(外部評価を汚さないための内部選択)と性能推定(外部評価)を分離する考え方に基づく。外側の分割で検証集合を保持し、その内部でハイパーパラメータを最適化することで、選択に伴う性能の過大評価を抑える。
3.1.2 過大評価の抑制
単純に交差検証の同一分割内で探索まで行うと、選ばれた設定が評価指標に適合しやすくなり、汎化性能が実際より高く見積もられる場合がある。ネスティッド構造では、探索で得られた最良設定を外側の未評価データで再評価するため、推定の偏りを減らしやすい。
3.2 前処理とパイプライン設計
3.2.1 前処理の学習データ限定
標準化、欠測補完、特徴量生成などの前処理は、推定に使う統計量を訓練集合から計算しなければならない。これを行わないと、検証集合の統計を暗黙に利用してしまい、評価が不正確になる。実装上は学習と推論の境界を明確にし、分割ごとのパイプライン適用を徹底することが望ましい。
3.2.2 パラメータリークの防止
前処理が学習可能なパラメータを含む場合、同様の注意が必要である。たとえば次元削減や正則化に関する手続きが訓練集合に基づいて推定されるよう設計し、検証集合は変換の適用先としてのみ扱う。リークは性能を底上げし得るため、設計意図に反する挙動がないかを検証する運用が重要となる。
3.3 目的に応じた評価戦略
3.3.1 指標選択
評価指標は目的に合致させる必要がある。分類なら閾値の有無、クラス不均衡の有無、コスト行列の考え方により適切な指標が変わる。回帰なら外れの影響を抑える指標が望ましい場合もある。交差検証は指標の妥当性が前提であり、指標が目的から外れると評価自体が誤導される。
3.3.2 最適モデルの選定基準
最適化の基準は、平均性能だけに依存しない設計も可能である。たとえば分散が大きいモデルは、平均が高くても運用上の不安定さを持つことがある。平均とばらつきの両方、あるいは下側分位などを基準に選ぶことで、意思決定のリスクを制御できる場合がある。
4 実務での設計・運用
4.1 データの特性に基づく選択
4.1.1 サンプルサイズが小さい場合
データが少ない場合、kを大きくすると訓練集合が相対的に減りやすく、推定誤差が増える可能性がある。反対に小さいkでは計算は軽いが、フォールドごとの評価対象が限定される。実務では反復交差検証や、必要に応じて学習曲線を参考にして妥当な分割設計を探索する。
4.1.2 不均衡データの場合
クラス割合が極端な場合、検証集合での出現頻度が性能指標に直結する。層化分割を使うだけでなく、指標(再現率や適合率の組合せ、閾値なし評価など)も不均衡に強いものを選ぶことが重要になる。さらに、学習時のクラス重み付けやサンプリング戦略と評価設計を整合させる必要がある。
4.1.3 欠測・外れ値がある場合
欠測は補完の方法で性能が変わりやすい。補完の統計推定を検証側で混ぜないこと、外れ値の扱いを学習データ限定で行うことが基本になる。加えて、外れ値が多い領域をフォールド分割で偏らせない設計が望ましいが、時系列やグループ構造がある場合は別の制約が優先される。
4.2 計算資源と最適化
4.2.1 並列化と計算効率
交差検証の反復は独立しているため、複数CPUや計算クラスタを利用して並列実行しやすい。ライブラリやワークフローによっては、フォールド単位でジョブ分割できる。学習時間が支配的なら、探索範囲の縮小や候補モデルの段階的絞り込みも有効である。
4.2.2 分割数と実行時間のトレードオフ
分割数kや反復回数を増やすほど精度の安定性は上がり得るが、実行時間と費用が増える。特にネスティッド交差検証は計算負荷が大きくなりやすい。したがって、開発段階と本番前の評価段階で要件を分け、前者では軽量化した設計、後者では必要に応じて厳密な推定を行う方針が取りやすい。
4.3 結果の解釈と報告
4.3.1 平均と分散の提示
平均性能だけを示すと、運用での変動リスクが伝わりにくい。分散や標準偏差に加え、可能であれば分布の形(外れフォールドの有無)も説明すると透明性が高まる。単位や評価時の前提(データ前処理、閾値の扱い)も併記することで再現性が向上する。
4.3.2 分割ごとのばらつきの扱い
ばらつきは必ずしも悪いものではなく、データの難しさが反映される場合もある。一方で、特定フォールドのみ大きく悪化するなら、データの偏りや前処理の不整合、層化の不足などの可能性がある。報告では、平均に加えて要因候補を点検できる情報(例:フォールド別の指標表)を残すと解釈が容易になる。
4.4 よくある誤り
4.4.1 データリーク
データリークは、検証時に使えない情報が学習側へ混入することで、性能が過大に見える原因となる。典型例は前処理の統計を全データで計算することや、特徴量生成で目的変数と結びつく情報を参照してしまうことなどである。対策は分割境界を前処理にも徹底的に適用することにある。
4.4.2 分割の偏り
分割が偏っていると、評価が特定条件での性能に寄りがちになる。層化の欠如、グループ(同一ユーザや同一個体)の混在、時系列の順序無視などが要因となる。設計段階でデータの構造を確認し、制約条件に沿ったフォールド生成を行うことが予防になる。
4.4.3 指標の取り違え
同じモデルでも指標により評価が変わる。開発で使った指標と本番で重視する指標が異なるまま選定を進めると、最適化の方向がずれる。さらに、指標の計算方法(マイクロ/マクロ平均、閾値設定の有無、損失関数と評価指標の混同)も誤りの温床である。指標定義を明文化し、実装と一致しているかを確認する必要がある。