k分割交差検証

k-Fold Cross-Validation

k分割交差検証(k-Fold Cross-Validation)とは、データセットをk個の等しい部分集合(フォールド)に分割し、各フォールドを順番に検証用として使い、残りを訓練用として使用する評価手法です。

手順

まずデータをk個のフォールドに分割します。1回目はフォールド1を検証、残りのk-1個を訓練に使い、2回目はフォールド2を検証に使う、というように合計k回の学習と評価を行います。最終的なスコアはk回分の平均値を使用します。

表:k分割交差検証の要点まとめ
ひとことで言うとデータをk個に分け、順番に評価用を入れ替えながらk回評価する方法。
kの決め方5または10が一般的。kを大きくすると精度は安定するが計算量が増える。
注意点クラスの比率が偏っている場合は、比率を保つ層化k分割を使う。

層化k分割交差検証

分類タスクでは、各フォールドにクラスの分布が均等になるよう分割する層化k分割交差検証(Stratified k-Fold)が推奨されます。これにより、不均衡なクラス分布のデータでもより信頼性の高い評価が得られます。

図:5分割交差検証の例
15つに分割A B C D E
▶
21回目:Aで評価BCDEで学習
▶
32回目:Bで評価ACDEで学習
▶
45回目まで実施全部が1回評価用に
▶
55回の平均最終的な性能指標

kの値の選択

一般的にk=5またはk=10が使用されます。kが大きいほど各訓練セットのサイズは大きくなりバイアスは減りますが、計算コストが増加し、各フォールドの相関が高くなるためバリアンスが増える傾向があります。