通常、テストエラーのk分割交差検定推定は実際のテストエラーを過小評価していると私は理解しています。なぜそうなのか、混乱しています。トレーニングエラーが通常テストエラーよりも低い理由がわかります。エラーを推定しているのとまったく同じデータでモデルをトレーニングしているからです。ただし、交差検証の場合はそうではありません。エラーを測定するフォールドは、トレーニングプロセス中は特に除外されます。
また、テストエラーの相互検証推定は下向きにバイアスされていると言って間違いありませんか?
通常、テストエラーのk分割交差検定推定は実際のテストエラーを過小評価していると私は理解しています。なぜそうなのか、混乱しています。トレーニングエラーが通常テストエラーよりも低い理由がわかります。エラーを推定しているのとまったく同じデータでモデルをトレーニングしているからです。ただし、交差検証の場合はそうではありません。エラーを測定するフォールドは、トレーニングプロセス中は特に除外されます。
また、テストエラーの相互検証推定は下向きにバイアスされていると言って間違いありませんか?
回答:
たとえば、最初に複数のモデル(それぞれに特定のCVエラーとエラー分散がある)がある場合、モデルのCVエラーのみを報告することは問題があり、このエラーを使用してアプリケーションに最適なモデルを選択します。これは問題があります。モデルごとに、幸運/不運である(そしてより良い/悪い結果が得られる)可能性がまだあるためです。モデルを選択することで、より幸運だったモデルも選択した可能性があります。したがって、このエラーを最終的なエラー推定値として報告すると、楽観的になりすぎる傾向があります。
詳細をさらに詳しく知りたい場合:この回答は、この問題に関するいくつかの読みやすい論文にリンクしています:相互検証の誤用(最適なハイパーパラメーター値のパフォーマンスの報告)
@cbeleitesが指摘するように:これは、たとえば、a)トレーニングプロセスの一部であるさまざまなハイパーパラメータを使用して複数のモデルから最良のモデルを選択し、b)次に、取得したk倍CVエラーを使用する場合に問題があります別のホールドバックテストセットを使用する代わりに、テストエラーと同じエラーを報告します。代わりに、モデルを選択するためにそれを使用せずに、純粋なCVエラー自体を要求するつもりであった場合、@ cbeleitesによる答えは、探しているものである可能性が高くなります。
いいえ、適切に行われた場合、分割交差検証は一般化エラーを過大評価する傾向があります。つまり、(通常はわずかな)悲観的なバイアスがあります。つまり、問題のサロゲートモデルの一般化誤差の不偏推定値を提供します。しかし、モデルのエラーはトレーニングサンプルサイズ(学習曲線とも呼ばれます)の増加に伴って減少するため、代理モデルは、データセット全体でトレーニングされたモデル(エラーが近似されるモデル)よりも平均で(わずかに)真の汎化エラーが高くなります。相互検証によって。
適切に行われるとは、相互検証内でテストセットとトレーニングセットに分割すると、実際にはモデルから完全に独立したテストケースにつながることを意味します。
ただし、この独立性を損なう多くの落とし穴があります。テストデータがどの程度深刻に危険にさらされているか、モデルがどれだけ過剰であるかに応じて、この独立性の欠如は、相互検証エラーが実際にトレーニングエラーになることを意味します。つまり、全体として、深刻な楽観的バイアス(実際の汎化エラーを過小評価)になる可能性があります。
私見では、それを理解することが重要であるこれらの落とし穴のほとんどはクロスバリデーションに固有のものではなく、より良い電車とテストセットに間違った分割として特徴づけされている、彼らは(と行う)、まさにこのようなアウトホールドや独立など、他の検証スキームと同じ起こることができます。実際には、想定されているほど独立していないテストセット。
私が見る分割で最も一般的な間違いの例を次に示します。
最初に、私が理解しているように、質問で使用されている用語を明確にします。通常、1つのトレーニングデータセットから開始し、k分割交差検証を使用してさまざまなモデル(またはハイパーパラメーターのセット)をテストし、CVエラーが最小の最適なモデルを選択します。したがって、「テストエラーの相互検証推定」とは、ランダムモデルのCVエラー(cbeleitesで説明されているケースですが、通常行うことではありません)ではなく、最小のCVエラーをテストエラーとして使用することを意味します。問題の「実際のテストエラー」は、無限のテストデータセットに最適なCVモデルを適用したときに発生するエラーです。CVエラーは、特定のデータセットに依存し、実際のテストエラーは、選択された最良のCVモデルに依存します。これは、トレーニングデータセットにも依存します。したがって、CVエラーとテストエラーの違いは、異なるトレーニングデータセットに依存します。次に、異なるトレーニングデータセットを使用して上記のプロセスを何度も繰り返し、2つのエラーをそれぞれ平均すると、なぜ平均CVエラーが平均テストエラーよりも低い、つまりCVエラーが下向きにバイアスされるのかという疑問になります。しかし、その前に、これは常に起こりますか?
通常、無限の行を含む多くのトレーニングデータセットとテストデータセットを取得することは不可能です。しかし、シミュレーションによって生成されたデータを使用して、そうすることは可能です。Trevor Hastie著の "The Elements of Statistical Learning"の "Chapter 7 Model Assessment and Selection"の中で。、そのようなシミュレーション実験が含まれています。
結論は、CVまたはブートストラップを使用して、「特定のトレーニングセットのテストエラーの推定は、同じトレーニングセットからのデータだけを考えると、一般に容易ではない」ということです。「容易ではない」とは、CVエラーが、さまざまなトレーニングデータセットに応じて、実際のテストエラーを過小評価または過大評価する可能性があることを意味します。バイアスはどうですか?テストしたkNNと線形モデルにはほとんど偏りがありません。CVエラーは真のテストエラーを0〜4%過大評価しますが、一部のモデルは「ツリー、クロス検証、ブートストラップなどのように、真のエラーを10%過小評価する可能性があります。最適なツリーの検索は、検証セットの影響を強く受けます。」
要約すると、特定のトレーニングデータセットの場合、CVエラーは実際のテストエラーよりも高いまたは低い可能性があります。バイアスについては、モデリング方法に応じて、平均CVエラーは、平均の真のテストエラーよりも少し高い値から非常に低い値の範囲になる可能性があります。
上記のように過小評価の理由は、最適なモデルのハイパーパラメーターの選択は、最終的には取得する特定のトレーニングデータセットに依存するためです。少し詳しく説明します。この特定のトレーニングデータセットでは、最適なハイパーパラメータをM1とします。ただし、M1は他のトレーニングデータセットの最適なハイパーパラメーターではない可能性があります。これは、最小CVエラーがM1のCVエラーよりも小さいことを意味します。したがって、トレーニングプロセスから得られる予想されるCVエラーは、M1の予想されるCVエラーよりも非常に少ない可能性があります。特定のトレーニングデータセットからの最小CVエラーが偏っていないのは、最良のモデルが常にトレーニングデータセットから独立している場合です。一方、cbeleitesで説明されているように、CVエラーは真のテストエラーを少し過大評価する可能性もあります。これは、k倍のCVエラーは少し少ないトレーニングデータを使用してモデルをトレーニングすることで得られるため(10倍のcvの場合は90%データを使用)、真のエラーに対して上方にバイアスされますが、それほど多くはありません。したがって、異なる方向に向かう2つのバイアスがあります。モデリング方法ではオーバーフィットする傾向があります。たとえば、5倍対10倍などの少ないCVを使用すると、バイアスが少なくなる可能性があります。
とはいえ、実際にはあまり役に立ちません。通常、「特定の」データセットを1つだけ取得します。15%から30%をテストデータとして保持し、残りをトレーニングデータとしてCVで最適なモデルを選択した場合、CVエラーはテストエラーとは異なり、両方とも予想されるテストエラーとは異なる可能性があります。CVエラーがテストエラーよりもはるかに低い場合は疑わしいかもしれませんが、どちらが実際のテストエラーに近いかはわかりません。ベストプラクティスは、両方のメトリックを提示することです。