交差検証
交差検証(交差確認)[1](こうさけんしょう、英: cross-validation)とは、統計学において標本データを分割し、その一部をまず解析して、残る部分でその解析のテストを行い、解析自身の妥当性の検証・確認に当てる手法を指す[2][3][4]。データの解析(および導出された推定・統計的予測)がどれだけ本当に母集団に対処できるかを良い近似で検証・確認するための手法である。
最初に解析するデータを「訓練事例集合(training set、訓練データ)」などと呼び、他のデータを「テスト事例集合(testing set、テストデータ)」などと呼ぶ。
交差検証はSeymour Geisserが生み出した。特にそれ以上標本を集めるのが困難(危険だったり、コストがかかったり)な場合は、データから導いた推定は、交差検証などで慎重に裏付けを確認するべきである。
交差検証の主な種類
編集ホールドアウト検証
編集初期標本群から事例を無作為に選択してテスト事例を形成し、残る事例を訓練事例とする。テスト事例に使われるのは初期の標本群の3分の1以下の場合が多い[5]。ただし一般にホールドアウト検証は交差検証には分類されない。なぜなら、データを交差させることがないためである。
k-分割交差検証
編集英名では" -fold cross-validation"。 -分割交差検証では、標本群を 個に分割する。 そして、そのうちの 個をテスト事例、残る 個を訓練事例として、推定値を得る。 同様に、 個に分割された標本群のそれぞれが1回ずつテスト事例となるよう、計 回、推定値を計算する。 そうやって得られた 回の結果を平均して1つの推定値を得る。
さらに、標本の分割から始まる一連の操作を複数回繰り返して平均を取る場合もある。
leave-one-out 交差検証
編集leave-one-out cross-validation (LOOCV,一個抜き交差検証) は、標本群から1つの事例だけを抜き出してテスト事例とし、残りを訓練事例とする。これを全事例が一回ずつテスト事例となるよう検証を繰り返す。これはK-分割交差検証の K を標本サイズにした場合と同じである。ただし、LOOCV にはカーネル回帰[要出典]やティホノフ正則化などと関連がある。
時系列の場合
編集時系列データの場合、 を訓練データの長さ、 をテストデータの長さとし、
- x番目の訓練データの範囲: ~
- x番目のテストデータの範囲: ~
上記になるようにテストデータが訓練データよりも未来の時刻になるようにスライディングウィンドウにて交差検証する方法がある。時系列は時間の流れで因果関係・相関関係があるため、テストデータは訓練データよりも未来の時刻にしないといけない。
また、以下のように訓練データを先頭から使い徐々に長くする方法もある。[6]
- x番目の訓練データの範囲: ~
- x番目のテストデータの範囲: ~
誤差見積り
編集パラメータ推定誤差は計算で求めることができる。平均平方誤差(MSE)は分散、平均平方二乗誤差(RMSE)は標準偏差に用いられる。
注意点
編集交差検証を使い、モデル選択やハイパーパラメータの決定が行われるが、この行為自体は、訓練データ+テストデータ全体に対して過剰適合を招き、交差検証の結果自体は信用できない結果となる[7]。特定の公開データセットに対して、新しい機械学習のモデルで交差検証の結果が改善したという論文発表が多数あるが、そのような手法はその公開データセットに対する過剰適合の可能性がある。
脚注
編集- ^ 交差検定と呼ばれる場合もあるが,統計学では検定はtestの訳語として用いられ,validationの訳語には検証か確認が用いられる
- ^ Kohavi, Ron (1995). “A study of cross-validation and bootstrap for accuracy estimation and model selection”. Proceedings of the Fourteenth International Joint Conference on Artificial Intelligence 2 (12): 1137–1143.(Morgan Kaufmann, San Mateo)
- ^ Chang, J., Luo, Y., and Su, K. 1992. GPSM: a Generalized Probabilistic Semantic Model for ambiguity resolution. In Proceedings of the 30th Annual Meeting on Association For Computational Linguistics (Newark, Delaware, June 28 - July 02, 1992). Annual Meeting of the ACL. Association for Computational Linguistics, Morristown, NJ, 177-184
- ^ Devijver, P. A., and J. Kittler, Pattern Recognition: A Statistical Approach, Prentice-Hall, London, 1982
- ^ “Tutorial 12”. Decision Trees Interactive Tutorial and Resources. 2006年6月23日時点のオリジナルよりアーカイブ。2006年6月21日閲覧。
- ^ 3.1.2.5. Cross validation of time series data - 3.1. Cross-validation: evaluating estimator performance — scikit-learn documentation
- ^ 1506.02629 Generalization in Adaptive Data Analysis and Holdout Reuse
外部リンク
編集- Naive Bayes implementation with cross-validation in Visual Basic - ソースコードと実行形式がある
- 汎用のK-分割交差検証の実装 - フリーなオープンソース。複数台のコンピュータで実行可能な分散バージョンもある。
- 数分で交差検証の概観 - 初歩的な解説