KフォールドCVを何回繰り返す必要がありますか?


18

ブートストラップとクロス検証の違いを見て、このスレッドに出会いました-素晴らしい答えと参考までに。私は今疑問に思ってすることは、私が分類器の精度を計算するために繰り返さ10倍CVの発言権を実行するためだった場合、何回のn私はそれを繰り返す必要がありますか?

nは折り目の数に依存?サンプルサイズは?これにルールはありますか?

(私の場合、5000ものサンプルがあり、n = 20より大きい値を選択すると、計算に時間がかかりすぎて計算に時間がかかります。)

回答:


10

影響要因は、モデルの安定性です。より正確には、代理変数の予測が安定していることです。

モデルが完全に安定している場合、すべての代理モデルは同じテストケースに対して同じ予測を生成します。その場合、反復/反復は不要であり、改善されません。

予測の安定性を測定できるので、次のことを行います。

  • 各クロス検証の反復/反復の結果をハードディスクなどに保存する方法で手順全体を設定します
  • 多数の反復から始める
  • 数回の反復が完了したら、予備的な結果を取得して、各実行の結果の安定性/変動を調べます。
  • 次に、さらに多くの反復を実行して結果を調整します。

  • もちろん、たとえば5回の反復を実行してから、最終的な反復回数を決定することもできます。

(補足:私は通常、約1000を超えるサロゲートモデルを使用しているため、通常の反復/反復は約100-125になります)。


13

統計学者に質問をすれば、彼らの答えは「依存する」という形になります。

それは依存します。モデルの種類(良い点cbeleites!)、トレーニングセットポイントの数、および予測子の数は別ですか?モデルが分類用である場合、クラスの不均衡が大きいと、繰り返しの回数が増えます。また、機能選択手順をリサンプリングする場合、リサンプルを増やすようにバイアスをかけます。

このコンテキストで使用されるリサンプリング方法については、(従来のブートストラップとは異なり)、分布の平均の「十分に正確な」推定値を取得するのに十分な反復しか必要ないことに注意してください。それは主観的ですが、どんな答えもそうです。

2つのクラスを1秒間使用した分類に固執し、モデルの精度が約0.80であると予想/期待するとします。リサンプリングプロセスは、精度の推定値(例えばサンプリングされているのでp)、標準誤差は次のようになりsqrt[p*(1-p)]/sqrt(B)ここで、Bリサンプリングの数です。の場合B = 10、精度の標準誤差は約0.13で、B = 100約0.04です。この式は、この特定のケースの大まかなガイドとして使用できます。

また、この例では、0.50に近づくにつれて精度の分散が最大化されるため、標準誤差は弱学習器であるモデルよりも低くなければならないため、正確なモデルで必要な複製は少なくなります。

HTH、

マックス


2
ここでは、2つの分散ソース(モデルの不安定性+テストケースの有限セット)があるため、このコンテキストであらゆる種類の標準誤差計算を適用することには非常に注意し、リサンプリング検証は有限テストを回避できないと思います分散の設定:相互検証を検討します。各実行で、すべてのテストケースが1回だけテストされます。したがって、反復CVの実行間の分散は、不安定性によるものでなければなりません。このように有限のテストセットに起因する分散を観察することも(減少することもありません)、もちろん結果は依然として影響を受けます。
cbeleitesはモニカをサポートします14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.