G検定(ジェネラリスト検定)
けーぶんかつこうさけんしょう
k- 分割交差検証
K-fold Cross-validation
k-分割交差検証は、データをk個のグループ(フォールド)にランダムに分け、検証に使うグループを入れ替えながら学習と評価をk回繰り返します。得られたk個の誤差を平均して、モデルのテスト誤差を推定する評価方法です。
詳しい説明
データをk個のフォールドに分けて評価する
k-分割交差検証(k-Fold Cross-Validation)は、機械学習モデルがまだ見ていないデータに対してどの程度の誤差を出すか(テスト誤差)を見積もる方法です。まず、手元のデータ(観測値の集まり)をランダムにk個のグループに分けます。各グループの大きさはおおよそ同じにそろえます。このグループをフォールドと呼びます。
検証用のフォールドを入れ替えながらk回繰り返す
手順は次のとおりです。
1. 1つ目のフォールドを検証用として取り分け、残りのk-1個のフォールドでモデルを当てはめ(学習させ)ます。
2. 取り分けておいた検証用フォールドのデータで平均二乗誤差(MSE)を計算します。これをMSE1とします。
3. 検証に使うフォールドを毎回別のものに替えながら、同じ手順を合計k回繰り返します。
4. 得られたMSE1、MSE2からMSEkまでのk個の値を平均し、その平均値をk-分割交差検証による推定値CV(k)とします。
どのフォールドも一度ずつ検証用になり、それ以外の回では学習用に使われます。交差検証は非常に汎用的な考え方で、ほとんどどのような学習手法にも適用できます。
LOOCVとの関係
LOOCV(Leave-One-Out Cross-Validation、1件だけを抜き出して検証に使う交差検証)は、k-分割交差検証でkをデータの件数nと同じにした場合にあたります。つまり、LOOCVはk-分割交差検証の特殊な場合です。
kの値の選び方
実務では、k=5またはk=10がよく使われます。最も分かりやすい利点は計算量です。LOOCVではモデルの当てはめをn回行う必要があります。当てはめ自体に計算の手間がかかる手法や、nが非常に大きい場合には、計算コストが問題になりえます。これに対して10分割の交差検証なら当てはめは10回で済むため、はるかに実行しやすくなります。
推定値のばらつき
どのデータがどのフォールドに入るかによって、交差検証の推定値にはある程度のばらつきが生じます。それでも、検証データを1つだけ用意する単純な方法(ホールドアウト検証)で得られる推定値のばらつきと比べると、通常はずっと小さくなります。
G検定シラバス2024では、中項目10 モデルの選択・評価のキーワードにk-分割交差検証が含まれています。
試験で問われること
G検定
- データをk個のフォールドにランダムに分け、1つを検証用、残りのk-1個を学習用にして誤差を計算する。検証用のフォールドを入れ替えながらこれをk回繰り返す。
- 最終的な推定値は、k回分の誤差(MSE1からMSEk)の平均である。
- LOOCVは、kをデータの件数nと同じにしたときのk-分割交差検証の特殊な場合である。
- 実務ではk=5やk=10がよく使われる。n回の当てはめが必要なLOOCVより計算コストを抑えられるためである。
- 検証データを1つだけ用意するホールドアウト検証に比べて、推定値のばらつきは通常小さい。
最終更新日: 2026/09/23