平易な英語での相互検証?


回答:


54

次の状況を考慮してください。

地下鉄に乗ってオフィスに行きたいです。私の計画は、私の車に乗り、地下鉄に駐車してから、電車に乗ってオフィスに行くことです。私の目標は、毎日午前8時15分に電車に乗って、時間通りにオフィスに到着できるようにすることです。私は次のことを決定する必要があります:(a)家を出る必要がある時間と(b)駅まで車で行くために取るルート。

上記の例では、2つのパラメーター(つまり、自宅からの出発時間と駅までのルート)があり、午前8時15分までに駅に到着するようにこれらのパラメーターを選択する必要があります。

上記の問題を解決するために、月曜日、水曜日、金曜日に「パラメータ」の異なるセット(つまり、出発時刻とルートの異なる組み合わせ)を試して、どの組み合わせが「最良」であるかを確認します。目的は、最適な組み合わせを特定したら、毎日使用して目標を達成できるようにすることです。

オーバーフィットの問題

上記のアプローチの問題は、私が過剰フィットする可能性があることです。これは、本質的に、特定の最良の組み合わせが何らかの意味で月、水、金曜日に固有であり、その組み合わせが火と木では機能しない可能性があることを意味します 時間とルートの最適な組み合わせを検索する際に、火曜日と木曜日には発生しない月/水/金の交通状況の一部を利用すると、過剰適合が発生する可能性があります。

オーバーフィッティングの1つのソリューション:交差検証

交差検証は、過剰適合の1つの解決策です。アイデアは、パラメーターの最適な組み合わせ(この場合は時間とルート)を特定したら、別のコンテキストでそのパラメーターセットのパフォーマンスをテストすることです。したがって、火曜日と木曜日にもテストを行い、その日でも選択が機能することを確認します。

アナロジーを統計に拡張する

統計では、同様の問題があります。多くの場合、限られたデータセットを使用して、未知のパラメーターを推定します。オーバーフィットした場合、パラメーター推定値は既存のデータに対して非常にうまく機能しますが、別のコンテキストでそれらを使用する場合にはうまく機能しません。したがって、交差検証は、パラメーター推定値が推定に使用したデータに一意ではないことをある程度保証することにより、上記の過適合の問題を回避するのに役立ちます。

もちろん、相互検証は完全ではありません。地下鉄の例に戻ると、交差検証の後でも、さまざまな問題(たとえば、建設、交通量の経時変化など)により、最適なパラメーターの選択が1か月後に機能しないことがあります。


2
技術的には、これはホールドアウト検証ですが、地下鉄の例をクロス検証コンテキストに拡張することを想像できます。役立つ場合は、クロスバリデーションに固有の例と残りのテキストを書き直します。

@srikant ..単語としての過剰適合という言葉は、何かが「過度に」行われているという意味を示唆しています。必要以上に意味があります。変数はありませんか?私は何度も過剰適合という言葉を聞いてきてすみませんが、この機会を利用してこれをクリアします。
アユシュビヤニ10年

1
この答えは、折り畳みの概念を追加することで改善されると思います。これは、CVとホールドアウトテストの違いの鍵です。例(月曜日に略語M、火曜日にT、...木曜日にRを使用):したがって、TWRFで最適な組み合わせを確認し、Mでどのように機能するか、MWRFでどのように機能するかを確認します。 Tなどで動作します。したがって、毎日は問題の一部として4回、問題のチェックとして1回使用されますが、同じラウンドでの問題とチェックとしては使用されません。
ウェイン

43

これは次の図で最もよく説明されていると思います(この場合はk分割交差検証を示しています)。

代替テキスト

交差検定は、特にデータの量が制限される可能性がある場合に、予測モデルでの過剰適合から保護するために使用される手法です。交差検証では、データの固定数(または分割)を作成し、各分割で分析を実行してから、全体的なエラー推定値を平均します。


2
このサイトの他の場所で議論されているように、k-foldクロス検証はクロス検証の一種であり、それを記述することはクロス検証とは何かを記述する一般的な仕事をしません。
ラッセルピアス

3
@drknexus:それは公正ですが、私はそれがk倍であることを言及し、それを説明するのを助けるためにプロセスの視覚化を提供したかったです。
シェーン

簡単な説明:nfold = 4はテストセットの25%を意味します。nfold = 5は、テストセットの20%を意味します。nfold = 10はテストセットの10%を意味し、以下同様です。nfold= nは100 / nパーセントがテストセットに入ることを意味しますか?
johnjps111

9

「トレーニングされたモデルが独立したデータで適切に機能することを確認することにより、トレーニングデータを暗記することを避けます。


3
これはcv自体の説明ではなく、cvの動機です。
jbaums

6

何らかのプロセスを調査するとしましょう。それを説明するデータを収集し、モデルを構築しました(統計またはMLのどちらでもかまいません)。しかし、今、大丈夫かどうかを判断する方法は?おそらく、それが構築されたデータに疑わしいほど適合するので、誰もあなたのモデルがあなたが考えるほど素晴らしいとは信じないでしょう。
最初のアイデアは、データのサブセットを分離し、それを使用して、メソッドによってモデルのビルドを残りのデータでテストすることです。これで結果は間違いなくオーバーフィッティングなしになりますが、それでも(特に小さなセットの場合)運が良かったり、テストするケースが(より少ない)より単純だったり、予測が(難しく)簡単になったりする可能性があります...あなたはおそらくその分布について何も知らないので、エラー/良さの推定はモデルの比較/最適化には役に立ちません。
疑わしい場合は、ブルートフォースを使用して、上記のプロセスを複製し、精度/エラー/良さのいくつかの推定値を収集し、それらを平均するだけで、クロス検証を取得できます。より良い推定の中で、ヒストグラムも得られるため、分布を近似したり、ノンパラメトリックテストを実行したりできます。
そしてこれがそれです。テストトレインの分割の詳細が異なるCVタイプの理由ですが、まれなケースとわずかな強度の違いは除きますが、それらはかなり同等です。確かに、それはそれを防弾公平な方法にするので、大きな利点です。それをだますことは非常に難しいです。


3

トレーニング時にテストデータにアクセスできず、モデルが見えないテストデータでうまく機能するようにしたいので、一部のテストデータに繰り返しサブサンプリングすることで、一部のテストデータにアクセスできるようになります。トレーニングデータ、モデルのトレーニング中にこのセットを保持し、テストデータのプロキシとして保持されたセットを処理します(そして、保持されたデータで最高のパフォーマンスを提供するモデルパラメーターを選択します)。トレーニングデータからさまざまなサブセットをランダムにサンプリングすることで、それらをテストデータのように(平均的な動作の意味で)見せることができます。したがって、学習したモデルパラメーターもテストデータ(つまり、モデル)目に見えないデータに対して一般化する)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.