交差検証とは

こうさけんしょうcross-validation略語 CV別名 クロスバリデーション

1行定義

交差検証とは、データを複数のグループに分け、検証用のグループを入れ替えながら学習と評価を繰り返して、モデルの汎化性能を見積もる方法のことです。

くわしく

交差検証は、手元のデータを何通りかに分け直して学習と評価を繰り返し、モデルの汎化性能を見積もる方法です。

なぜ必要か

モデルの良し悪しは、学習に使っていないデータで測る必要があります。学習に使ったデータで測ると、答えを丸暗記しただけのモデルでも高い点が出てしまうからです。最も単純なのは、データを学習用と評価用に一度だけ分けるホールドアウト検証です。ただしデータが少ないと、どのデータがたまたま評価用に入ったかで、結果が大きくぶれます。評価用に回した分だけ、学習に使えるデータも減ります。

k-分割交差検証の手順

代表的な方法がk-分割交差検証です。

  1. データをk個のグループに分けます。
  2. 1つのグループを検証用、残りのk-1個を学習用にして、学習と評価をします。
  3. 検証用にするグループを入れ替えながら、これをk回繰り返します。
  4. k回の評価値の平均を、モデルの性能の見積もりとします。

すべてのデータが一度ずつ検証用になり、それ以外の回では学習に使われます。kには5や10がよく使われます。kをデータの件数と同じにした方法は、Leave-One-Out交差検証(一つ抜き交差検証)と呼ばれます。

使うときの注意

  • 学習をk回行うので、計算時間は1回の学習のおよそk倍かかります。
  • 分類問題でクラスの比率に偏りがあるときは、各グループのクラスの比率をそろえて分けます(層化k-分割交差検証)。
  • 時系列データを無作為に並べ替えて分けると、未来のデータで学習して過去を予測することになり、評価が甘くなります。過去のデータで学習し、それより後の期間で検証するように分けます。
  • 交差検証は、ハイパーパラメータやモデルの選択によく使われます。最終的な性能は、選択に一度も使っていないテストデータで確認します。

覚え方

「k回、検証役を交代して平均をとる」と覚えます。

G検定での出題

ホールドアウト検証との違い、k-分割交差検証の手順と利点、時系列データでの分け方やテストデータを別に残す必要性など、データの分け方を問う形で出題されます。

混同しやすい用語

用語意味
ホールドアウト検証手元のデータを学習用と評価用に一度だけ分け、学習に使わなかった評価用データでモデルの性能を測る方法

違いを表で比べる:ホールドアウト検証と交差検証

◯×チェック

  1. k-分割交差検証では、すべてのデータが一度ずつ検証用データとして使われる。

    答えを見る

    答え ◯ 正しい

    k個のグループが順番に1回ずつ検証役を務め、それ以外の回では学習に使われます。

  2. 時系列データで交差検証を行うときも、データを無作為に並べ替えてから分割するのが基本である。

    答えを見る

    答え × 誤り

    無作為に分けると、未来のデータで学習して過去を予測することになり、評価が甘くなります。過去で学習し、後の期間で検証します。

  3. k-分割交差検証は、ホールドアウト検証に比べて、学習と評価にかかる計算量が少ない。

    答えを見る

    答え × 誤り

    学習と評価をk回繰り返すので、計算量はおよそk倍になります。その代わり、評価の結果が安定します。

練習問題

交差検証の問題(8問)
  1. ブートストラップ標本の作り方
  2. 少量データでの検証方法
  3. 学習誤差と検証誤差の比較
  4. 大規模データでの検証方法
  5. 相関の強い変数と正則化回帰
  6. ハイパーパラメータの探索方法
  7. データリーケージの防止策
  8. 同一個体をまたぐデータ分割

AIで作成 人による確認:未 誤りを報告

出典と作成について

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)

公開日: 最終更新日: 最終確認日:

対応シラバス:シラバス第1.4版 技術10

改訂履歴

表示設定

テーマ
文字の大きさ
問題演習