バイナリ分類問題に最適な交差検証タイプ


7

データセットは次のようになります。

  • 25000観測
  • 最大15の異なるタイプの予測子:数値、マルチクラスカテゴリカル、バイナリ
  • ターゲット変数はバイナリです

このタイプの問題に典型的な相互検証方法はどれですか。

デフォルトではK-Foldを使用しています。この場合、いくつの折り目で十分ですか?(私が使用するモデルの1つはランダムフォレストであり、時間がかかります...)


2
k = 5の場合、トレーニングセットでは20kの観測値、テストセットでは5kの観測値が得られます。k = 25の場合、トレーニング用に24k、テスト用に1kが得られます。追加の4kレコードが一般化に大きな影響を与えると思われる場合は、より大きなkを使用してください。たとえば、1万件のレコードで既に一般化がうまくいったと思われる場合は、より小さなkを使用します。よくわからない場合は、標準の10分割交差検証を使用してください。これは、ほとんどの場合、適切な妥協案です。
ffriend 2014

回答:


5

各変数(および最も重要なのはターゲット変数)が各フォールドにほぼ同じように分散されるようにフォールドを構築する場合、最良の結果が得られます。これは、ターゲット変数に適用されると、層別k倍で呼び出されます。1つのアプローチは、入力をクラスター化し、各フォールドに、サイズに比例して各クラスターからの同じ数のインスタンスが含まれるようにすることです。


4

あなたのケースでは10倍のCVは大丈夫だと思います

kの理想的な値を選択するよりも、相互検証プロセスをランダム化するほうが重要だと思います。

したがって、CVプロセスをランダムに数回繰り返し、分類結果の分散を計算して、結果が実現可能かどうかを判断します。


2

k-foldは「正しく」うまくいくはずだということに同意する必要があります。ただし、優れていると思われる「Bootstrap .632+」メソッド(基本的にはスムーズ化されたクロス検証)に関する素晴らしい記事があります(ただし、私が知る限り、非バイナリデータの比較を行いました)。

多分あなたはここでこの記事をチェックしたいでしょう:http : //www.jstor.org/stable/2965703


0

K-Foldは、バイナリ分類の問題に対してうまく機能するはずです。モデルのトレーニングと結果の予測にかかる時間に応じて、10〜20倍を使用します。

ただし、1回の折りたたみに数分かかる場合があります。この場合は3〜5回折りますが、3回以上使用します。


0

正直に言うと、バイナリクラス分類はマルチクラス分類に比べて最も簡単なタイプです。時々、誤って間違ったクラスを正しいクラスに分類できるためです。したがって、マルチクラスのデータセットがある場合、それらの間の適切な分布が必要です。より多くのサンプルがより良い洞察を与える、つまりCVは少なくなるはずですが、クラス分布が十分にバランスしている場合、25kの観測値に対してCV = 10に簡単に行くことができますが、クラス分布が歪んでいる場合は、より良い結果が期待できます少ないCVで。

つまり、バイナリ分布の場合の簡単に言えば、CV値は実際にはクラス分布に依存し、観測数にはあまり依存しません。


0

ラベル分布のバランスが取れていない限り、折り目の層別サンプリングは、ランダムサンプリングよりもパフォーマンスのより良い見積もりを提供します。

また、相関するサンプルが異なるフォールドになることを回避するようにしてください。そうしないと、モデルが過剰適合し、エラーが過小評価される可能性があります。たとえば、データに時間的な相関関係が含まれている場合は、常に時間で分割します。

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