K分割交差検定でのKの選択


136

いくつかの学習アルゴリズムのパフォーマンスを評価するために、倍交差検証を数回使用していますが、の値をどのように選択すべきかについては常に困惑していました。KKK

私はよく見ての値が使用されてきた、これは私には全く任意のようだ、と私は今ちょうど使用代わりにそれを超える思考の習慣で。私には、の値を改善するにつれて、より良い粒度が得られるように思えます。理想的には、非常に大きくする必要がありますが、偏るリスクもあります。10 K KK=1010KK

私は、の値が何に依存すべきか、そしてアルゴリズムを評価するときにこれについてどう考えるべきかを知りたいと思います。クロスバリデーションの階層化バージョンを使用するかどうかによって、何かが変わりますか?K


回答:


69

の選択はいくぶん任意です。kの決定方法は次のとおりです。k=10k

  • まず最初に、CV結果の分散を下げるために、新しいランダム分割でCVを繰り返す/繰り返す必要があります。
    これは、とにかく多くのモデルを計算したいので、高い =>より多くの計算時間の議論はほとんど無関係です。私は主に、計算されたモデルの総数を考える傾向があります(ブートストラップと同様)。したがって、100 x 10倍CVまたは200 x 5倍CVを決定できます。k

  • @ogriselは、通常、大きいと(悲観的な)バイアスが小さくなることをすでに説明しています。(一部の例外は、特にk = n、つまりleave-one-outで知られています)。kk=n

  • 可能であれば、サンプルサイズの除数であるを使用するか、サンプル内の層化するグループのサイズを使用します。k

  • 大きすぎると、サンプルの組み合わせの数が少なくなり、異なる反復回数が制限されることを意味します。k

    • leave-one-outの場合:異なるモデル/テストサンプルの組み合わせが可能です。反復はまったく意味がありません。n1=n=k
    • 例:およびk = 10 n = 20n=20k=10異なるモデル/試験サンプルの組み合わせが存在します。ここでk倍CVの19回の反復または合計190個のモデルはそれほど多くないため、ここで可能なすべての組み合わせを検討することもできます。n=202=190=19kk
  • これらの考えは、小さなサンプルサイズでより大きな重みを持ちます。より多くのサンプルが利用可能であれば、はそれほど重要ではありません。可能な組み合わせの数はすぐに十分に大きくなるため、10回のCVの(たとえば)100回の反復では、重複する大きなリスクはありません。また、通常、トレーニングサンプルが多いということは、学習曲線の平坦な部分にいることを意味するため、サロゲートモデルとn個すべてのサンプルでトレーニングされた「実際の」モデルの違いは無視できます。kn


6
(+1)詳細については、(-1)CVの繰り返し回数について。正確な複製(観測のIDを見る)を作成するリスクは小さい(十分なデータなどが与えられる)ことは事実ですが、パターン/データ構造の複製を作成するリスクは非常に高くなります。kが何であっても、分散の過小評価を避けるためだけに、CVを10回以上繰り返しません。
ステフェン

3
@steffen、それはogriselがすでに指摘したことではありません:(代理)モデルは本当に独立していないということですか?私はこれが事実であることに完全に同意します。実際、(代理)モデルの安定性に関して結果を解釈することにより、これを考慮に入れようとしています。「いくつかの」サンプルを交換します(ここでは詳しく説明しませんでしたが、たとえばstats.stackexchange.com/a/26548/4598を参照してください)。そして、私はないない標準誤差を計算するのではなく報告などの中央値と95 のt 時間の反復にわたる観測エラーのパーセンタイル。それについては別の質問を投稿します。5th95th
-cbeleites

2
そうですか。このアプローチが代理の安定性を推定するのに有効であることに同意します。私が念頭に置いていたのは、あるモデルが別のモデルよりも優れているかどうかを判断するための追跡統計テストでした。cvの方法を繰り返すと、アルファエラーが発生する可能性が非常に高くなります。したがって、内側の検証と外側の検証を混同していました(dikranがここに置いたよう)。
ステフェン

2
@cbeleites:同意します。通常、サンプルのサイズが限られているため、モデルの不確実性よりも分散が支配的です。
jpcgandre 14

2
@jpcgandre:少なくとも感度、特異性などの分類エラーについては、テストされたケースの総数による不確実性を計算できます。少なくとも私の仕事で遭遇する状況では、これは総分散の一部にすぎないことは事実ですが、この不確実性はしばしば非常に大きいため、大まかな推測でさえ結論が厳しく制限されていることを明確にするのに十分です。そして、この制限はそのままで、40x 10倍のクロス検証の代わりに50x 8倍または80x 5倍を使用しても解消されません。
cbeleites

37

Kが大きいほど、真の期待誤差を過大評価する偏りは少なくなります(トレーニングの折り畳みがデータセット全体に近くなるため)が、分散が大きくなり、実行時間が長くなります(制限ケースに近づくにつれて:Leave-One-Out CV)。

training_size =データセット全体の90%で学習曲線の勾配が十分に平坦である場合、バイアスは無視でき、K = 10が妥当です。

また、Kが高いほど、より正確な信頼区間を推定するためのサンプルが多くなります(CVテストエラーの分布の正規性を想定したパラメトリック標準誤差、または実際にはあまり当てはまらないiid仮定を行うノンパラメトリックブートストラップCIを使用) CVフォールドは互いに独立していないため)。

編集:過小評価=>予想される真のエラーを過大評価

編集:大きなKまたはLOOCVのより大きな分散に関するこの応答の一部は、おそらく間違っています(常に真ではありません)。この回答のシミュレーションの詳細:leave-one-out対K-foldクロス検証のバイアスと分散(この作業についてはXavier Bourret Sicotteに感謝します)。


1
knknk

6
分散とは、CVフォールド全体ではなく、「真の分布」に対するCVフォールドエラーの中央値または平均を取ることによって得られた推定予想テストエラーの分散を意味します。kが大きい場合、LOO-CVに近づきますが、これは手元にある特定のトレーニングセットに大きく依存します。サンプル数が少ない場合、真の分布を表すことができないため、分散になります。kが大きい場合、k-fold CVはトレーニングセットのそのような任意のハードサンプルをシミュレートできます。
-ogrisel

8
さらに、Kohaviは博士論文の第3章で検証におけるバイアス分散トレードオフを研究しています。強くお勧めします。
ステフェン

3
KKKK

はい、これは正しい直観だと思います。
ogrisel

0

K精度と一般化にどのように影響するかはわかりませんが、これは学習アルゴリズムに依存する可能性がありますが、トレーニングインスタンスの数が線形のアルゴリズムの複雑さを備えたトレーニングアルゴリズムの計算の複雑さにほぼ線形(漸近的、線形)に確実に影響します。K-1トレーニングインスタンスの数でトレーニング時間が線形である場合、トレーニングの計算時間は増加します。そのため、小規模なトレーニングセットでは、特に限られた数のトレーニングインスタンスを最大限に活用する必要があるため、精度と一般化の側面を検討します。

ただし、トレーニングインスタンスの数が漸近的な複雑度の増加(少なくとも線形)を伴う大規模なトレーニングセットおよび学習アルゴリズムの場合、数がK=2線形で漸近的な複雑さを持つトレーニングアルゴリズムの計算時間の増加がないように選択するだけですトレーニングインスタンスの。


-6

解決:

K = N/N*0.30
  • N =データセットのサイズ
  • K =折り

コメント:テストセットとして選択するサイズに応じて、30%ではなく20%を選択することもできます。

例:

データセットサイズの場合:N = 1500; K = 1500/1500 * 0.30 = 3.33; K値を3または4から選択できます

注意:

Kの値を大きくすると、1つの交差検証が除外され、過適合になります。クロスバリデーションを除外するK値が小さいと、フィッティングが不足します。

アプローチは単純かもしれませんが、異なるサイズのデータ​​セットにk = 10を選択するよりも優れています。


4
NN0.3=10.33.33=const

K = N / N * 0.3 = 10/3これは定数です。したがって、すべての条件にその値を使用することは論理的ではありません。
カマルターパ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.