テストエラーのCV推定が実際のテストエラーを過小評価するのはなぜですか?


10

通常、テストエラーのk分割交差検定推定は実際のテストエラーを過小評価していると私は理解しています。なぜそうなのか、混乱しています。トレーニングエラーが通常テストエラーよりも低い理由がわかります。エラーを推定しているのとまったく同じデータでモデルをトレーニングしているからです。ただし、交差検証の場合はそうではありません。エラーを測定するフォールドは、トレーニングプロセス中は特に除外されます。

また、テストエラーの相互検証推定は下向きにバイアスされていると言って間違いありませんか?


1
これはどこに記載されていると思いますか?いくつかの参照を与えることはできますか?
horaceT

1
(+1)同じ発言を見て、それは正しいと思いますが、論理も理解していません
KevinKim

回答:


9

たとえば、最初に複数のモデル(それぞれに特定のCVエラーとエラー分散がある)がある場合、モデルのCVエラーのみを報告することは問題があり、このエラーを使用してアプリケーションに最適なモデルを選択します。これは問題があります。モデルごとに、幸運/不運である(そしてより良い/悪い結果が得られる)可能性がまだあるためです。モデルを選択することで、より幸運だったモデルも選択した可能性があります。したがって、このエラーを最終的なエラー推定値として報告すると、楽観的になりすぎる傾向があります。

詳細をさらに詳しく知りたい場合:この回答は、この問題に関するいくつかの読みやすい論文にリンクしています:相互検証の誤用(最適なハイパーパラメーター値のパフォーマンスの報告)

@cbeleitesが指摘するように:これは、たとえば、a)トレーニングプロセスの一部であるさまざまなハイパーパラメータを使用して複数のモデルから最良のモデルを選択し、b)次に、取得したk倍CVエラーを使用する場合に問題があります別のホールドバックテストセットを使用する代わりに、テストエラーと同じエラーを報告します。代わりに、モデルを選択するためにそれを使用せずに、純粋なCVエラー自体を要求するつもりであった場合、@ cbeleitesによる答えは、探しているものである可能性が高くなります。


繰り返しますが、ここでの問題は、一般化エラーのトレーニングエラー(次のようにトレーニング:この推定は1つの最終モデルを取得するプロセスで使用されます)の推定を報告しています-このエラーが相互検証、ホールドアウト、またはその他によって計算されたかどうかその他の誤差推定方法。
cbeleitesはSXに不満2016

1
@cbeleites繰り返しますが、本当のポイント-通常、CVの結果は何らかの形でモデルの選択に使用されると想定します(これは、CVを最初に使用する理由の一部です)。したがって、これを指摘します。私はそれに応じて私の答えを更新しました。
geekoverdose

9

いいえ、適切に行われた場合、分割交差検証は一般化エラーを過大評価する傾向があります。つまり、(通常はわずかな)悲観的なバイアスがあります。つまり、問題のサロゲートモデルの一般化誤差の不偏推定値を提供します。しかし、モデルのエラーはトレーニングサンプルサイズ(学習曲線とも呼ばれます)の増加に伴って減少するため、代理モデルは、データセット全体でトレーニングされたモデル(エラーが近似されるモデル)よりも平均で(わずかに)真の汎化エラーが高くなります。相互検証によって。k

適切行われるとは、相互検証内でテストセットとトレーニングセットに分割すると、実際にはモデルから完全に独立したテストケースにつながることを意味します

ただし、この独立性を損なう多くの落とし穴があります。テストデータがどの程度深刻に危険にさらされているか、モデルがどれだけ過剰であるかに応じて、この独立性の欠如は、相互検証エラーが実際にトレーニングエラーになることを意味します。つまり、全体として、深刻な楽観的バイアス(実際の汎化エラーを過小評価)になる可能性があります。
私見では、それを理解することが重要であるこれらの落とし穴のほとんどはクロスバリデーションに固有のものではなく、より良い電車とテストセットに間違った分割として特徴づけされている、彼らは(と行う)、まさにこのようなアウトホールドや独立など、他の検証スキームと同じ起こることができます。実際には、想定されているほど独立していないテストセット。

私が見る分割で最も一般的な間違いの例を次に示します。

  • @geekoverdoseの答えは、内部トレーニング(!)エラー推定値をテストエラーとして露骨に使用する例を示してい ます。
    より一般的には、データ駆動型モデルの最適化に使用されるあらゆる種類の誤差推定は、この誤差推定を使用したトレーニングがまだ行われているため、学習誤差です。
  • 分割で考慮されない交絡変数。
    データ行列の1つの行は、必ずしも独立したケースを構成するとは限りません。たとえば、
    • 同じ症例/被験者/患者の繰り返し測定を「独立した」ものとして扱う
    • 一般に、データの強力なクラスタリングを見落とす/無視する
    • データ生成プロセスの進行中のドリフトを認識していない(将来の未知のケースvs未知のケースのみ)...


0

最初に、私が理解しているように、質問で使用されている用語を明確にします。通常、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エラーがテストエラーよりもはるかに低い場合は疑わしいかもしれませんが、どちらが実際のテストエラーに近いかはわかりません。ベストプラクティスは、両方のメトリックを提示することです。

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