交差検証のソースを表示
←
交差検証
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
'''交差検証'''('''交差確認''')<ref>交差検定と呼ばれる場合もあるが,統計学では検定はtestの訳語として用いられ,validationの訳語には検証か確認が用いられる</ref>(こうさけんしょう、{{lang-en-short|cross-validation}})とは、[[統計学]]において[[標本 (統計学)|標本]][[データ]]を分割し、その一部をまず解析して、残る部分でその解析のテストを行い、解析自身の妥当性の検証・確認に当てる<!--[[仮説検定]]に用いる-->手法を指す<ref name="Kohavi95">{{cite journal | last = Kohavi| first = Ron | year = 1995 | title = A study of cross-validation and bootstrap for accuracy estimation and model selection | journal = Proceedings of the Fourteenth International Joint Conference on Artificial Intelligence | url= | volume = 2 | issue = 12 | pages = 1137–1143}}(Morgan Kaufmann, San Mateo)</ref><ref name="Chang92">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</ref><ref name="Devijver82">Devijver, P. A., and J. Kittler, Pattern Recognition: A Statistical Approach, Prentice-Hall, London, 1982</ref>。データの解析(および導出された[[統計学的推定|推定]]・<!--[[仮説検定]]-->統計的予測)がどれだけ本当に母集団に対処できるかを良い近似で検証・確認するための手法である。 最初に解析するデータを「訓練事例集合(training set、[[訓練データ]])」などと呼び、他のデータを「テスト事例集合(testing set、[[テストデータ]])」などと呼ぶ。 交差検証は[[:en:Seymour Geisser|Seymour Geisser]]が生み出した。特にそれ以上[[標本 (統計学)|標本]]を集めるのが困難(危険だったり、コストがかかったり)な場合は、データから導いた[[統計学的推定|推定]]は、交差検証などで慎重に裏付けを確認するべきである。 == 交差検証の主な種類 == === ホールドアウト検証 === 初期標本群から事例を無作為に選択してテスト事例を形成し、残る事例を訓練事例とする。テスト事例に使われるのは初期の標本群の3分の1以下の場合が多い<ref>{{Cite web | title=Tutorial 12 | work=Decision Trees Interactive Tutorial and Resources | url=http://decisiontrees.net/node/36 | accessdate=2006-06-21 | archiveurl=https://web.archive.org/web/20060623055814/http://decisiontrees.net/node/36 | archivedate=2006-06-23 | url-status=dead|url-status-date=2017-09 }}</ref>。ただし一般にホールドアウト検証は交差検証には分類されない。なぜなら、データを交差させることがないためである。 === ''k''-分割交差検証 === [[File:KfoldCV.gif|right|thumb|350x350px|観測値n=12、標本群k=3の場合の''k''-分割交差検証の図。データがシャッフルされた後、合計3モデルがトレーニングおよびテストされる。]] 英名では"<math>k</math>-fold cross-validation"。<math>k</math>-分割交差検証では、標本群を <math>k</math> 個に分割する。 そして、そのうちの <math>1</math> 個をテスト事例、残る <math>k - 1</math> 個を訓練事例として、推定値を得る。 同様に、<math>k</math> 個に分割された標本群のそれぞれが1回ずつテスト事例となるよう、計 <math>k</math> 回、推定値を計算する。 そうやって得られた <math>k</math> 回の結果を平均して1つの推定値を得る。 さらに、標本の分割から始まる一連の操作を複数回繰り返して平均を取る場合もある。 === leave-one-out 交差検証 === [[File:LOOCV.gif|right|thumb|300x300px|観測値n=8の場合のleave-one-out交差検証(LOOCV)の図。合計8つのモデルがトレーニングおよびテストされる。|alt=]] leave-one-out cross-validation (LOOCV,一個抜き交差検証) は、標本群から1つの事例だけを抜き出してテスト事例とし、残りを訓練事例とする。これを全事例が一回ずつテスト事例となるよう検証を繰り返す。これは''K''-分割交差検証の ''K'' を標本サイズにした場合と同じである。ただし、LOOCV には{{仮リンク|カーネル回帰|en|Kernel regression}}{{要出典|date=2014年4月|title=出典の明記}}や[[ティホノフ正則化]]などと関連がある。 == 時系列の場合 == [[時系列]]データの場合、<math>w_1</math> を訓練データの長さ、<math>w_2</math> をテストデータの長さとし、 * x番目の訓練データの範囲:<math>w_2 x</math> ~ <math>w_2 x + w_1</math> * x番目のテストデータの範囲:<math>w_2 x + w_1</math> ~ <math>w_2 x + w_1 + w_2</math> 上記になるようにテストデータが訓練データよりも未来の時刻になるようにスライディングウィンドウにて交差検証する方法がある。時系列は時間の流れで因果関係・相関関係があるため、テストデータは訓練データよりも未来の時刻にしないといけない。 また、以下のように訓練データを先頭から使い徐々に長くする方法もある。<ref>[https://scikit-learn.org/stable/modules/cross_validation.html#cross-validation-of-time-series-data 3.1.2.5. Cross validation of time series data - 3.1. Cross-validation: evaluating estimator performance — scikit-learn documentation]</ref> * x番目の訓練データの範囲:<math>0</math> ~ <math>w_2 (x + 1)</math> * x番目のテストデータの範囲:<math>w_2 (x + 1)</math> ~ <math>w_2 (x + 2)</math> == 誤差見積り == パラメータ推定誤差は計算で求めることができる。平均平方誤差(MSE)は分散、平均平方二乗誤差(RMSE)は標準偏差に用いられる。 == 注意点 == 交差検証を使い、モデル選択やハイパーパラメータの決定が行われるが、この行為自体は、訓練データ+テストデータ全体に対して[[過剰適合]]を招き、交差検証の結果自体は信用できない結果となる<ref>[https://arxiv.org/abs/1506.02629 1506.02629 Generalization in Adaptive Data Analysis and Holdout Reuse]</ref>。特定の公開データセットに対して、新しい機械学習のモデルで交差検証の結果が改善したという論文発表が多数あるが、そのような手法はその公開データセットに対する過剰適合の可能性がある。 == 脚注 == {{脚注ヘルプ}} {{Reflist}} == 外部リンク == * [http://paul.luminos.nl/documents/show_document.php?d=198 Naive Bayes implementation with cross-validation in Visual Basic] - ソースコードと実行形式がある * [http://www.cs.technion.ac.il/~ronbeg/gcv/index.html 汎用のK-分割交差検証の実装] - フリーなオープンソース。複数台のコンピュータで実行可能な分散バージョンもある。 * [https://note.com/masayamori/n/n355d78a1f4af 数分で交差検証の概観] - 初歩的な解説 {{DEFAULTSORT:こうさかくにん}} [[Category:回帰分析]] [[Category:数学に関する記事]]
このページで使用されているテンプレート:
テンプレート:Cite journal
(
ソースを閲覧
)
テンプレート:Cite web
(
ソースを閲覧
)
テンプレート:Lang-en-short
(
ソースを閲覧
)
テンプレート:Reflist
(
ソースを閲覧
)
テンプレート:仮リンク
(
ソースを閲覧
)
テンプレート:脚注ヘルプ
(
ソースを閲覧
)
テンプレート:要出典
(
ソースを閲覧
)
交差検証
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報