データをトレーニングセットと検証セットに最適に分割する方法についての経験則はありますか?50/50に分割することをお勧めしますか?または、検証データと比較してより多くのトレーニングデータを持つことの明らかな利点がありますか(またはその逆)?それとも、この選択はアプリケーションにかなり依存していますか?
私は主にトレーニングデータと検証データのそれぞれ80%/ 20%を使用していますが、原則的な理由なしにこの部門を選択しました。機械学習の経験が豊富な人にアドバイスしてもらえますか?
データをトレーニングセットと検証セットに最適に分割する方法についての経験則はありますか?50/50に分割することをお勧めしますか?または、検証データと比較してより多くのトレーニングデータを持つことの明らかな利点がありますか(またはその逆)?それとも、この選択はアプリケーションにかなり依存していますか?
私は主にトレーニングデータと検証データのそれぞれ80%/ 20%を使用していますが、原則的な理由なしにこの部門を選択しました。機械学習の経験が豊富な人にアドバイスしてもらえますか?
2つの競合する懸念があります。トレーニングデータが少ないほど、パラメーター推定値の分散が大きくなります。テストデータが少ないほど、パフォーマンス統計の変動が大きくなります。大まかに言えば、分散が高すぎないようにデータを分割することに注意する必要があります。これは、パーセンテージではなく、各カテゴリのインスタンスの絶対数に関係します。
合計100個のインスタンスがある場合、単一の分割で推定値に十分な分散が得られないため、交差検定でスタックしている可能性があります。100,000個のインスタンスがある場合、80:20分割と90:10分割のどちらを選択するかは実際には重要ではありません(実際、メソッドが特に計算量の多い場合は、使用するトレーニングデータを少なくすることを選択できます)。
(相互検証ではなく)適切な保持されたテストデータを実行するのに十分なデータがあると仮定すると、分散を処理するための有益な方法は次のとおりです。
80/20が非常に一般的に発生する比率であり、パレートの法則と呼ばれることが多いことに驚かれることでしょう。その比率を使用する場合、通常は安全な賭けです。
ただし、採用するトレーニング/検証方法によっては、比率が変わる場合があります。例:10分割交差検定を使用する場合、各分割で10%の検証セットになります。
トレーニングセットと検証セットの適切な比率については、いくつかの調査が行われています。
検証セット用に予約されているパターンの割合は、自由に調整可能なパラメーターの数の平方根に反比例する必要があります。
彼らの結論では、彼らは式を指定します:
検証セット(v)とトレーニングセット(t)のサイズ比v / tは、ln(N / h-max)のようなスケールです。ここで、Nは認識機能のファミリーの数であり、h-maxはそれらのファミリーの最大の複雑さです。
複雑さの意味は次のとおりです。
レコグナイザーの各ファミリーは、その複雑さによって特徴付けられます。これは、VC次元、記述の長さ、調整可能なパラメーターの数、またはその他の複雑さの尺度に関連する場合と関連しない場合があります。
最初の経験則(検証セットは、自由に調整可能なパラメーターの数の平方根に反比例する必要があります)をとると、32の調整可能なパラメーターがある場合、32の平方根は約5.65であり、分数は次のようになります。 1 / 5.65または0.177(v / t)。約17.7%を検証用に、82.3%をトレーニング用に予約する必要があります。
昨年、私はProf:AndrewNgのオンライン機械学習コースを受講しました。彼の推薦は:
トレーニング:60%
相互検証:20%
テスト:20%
さて、もう1つ考えるべきです。
1,000,000の例のように非常に大きなデータセットがある場合、10%= 100,000の例はモデルが正常に機能すると言うには多すぎる可能性があるため、80/10/10の分割は不要な場合があります。
5,000の例でデータの分散の大部分を表すことができ、テストと開発でのこれらの5,000の例に基づいてモデルが適切に機能することが簡単にわかるため、99 / 0.5/0.5で十分かもしれません。
大丈夫だと聞いたからといって80/20を使用しないでください。テストセットの目的について考えてください。
おそらく63.2%/ 36.8%が妥当な選択です。その理由は、合計サンプルサイズがnで、最初のnからn個のケースを置換(統計的ブートストラップのように再サンプリング)でランダムにサンプリングしたい場合、個々のケースが選択される確率はここで説明されているように、 nが小さすぎない場合、再サンプリングは約0.632になります: https ://stats.stackexchange.com/a/88993/16263
n = 250のサンプルの場合、4桁への再サンプリングのために個々のケースが選択される確率は0.6329です。n = 20000のサンプルの場合、確率は0.6321です。
それはすべて手元のデータに依存します。かなりの量のデータがある場合は、上記のように80/20が適切な選択です。ただし、50/50分割で交差検定を行わないと、さらに多くのことが役立ち、トレーニングデータに過剰適合するモデルを作成できなくなる可能性があります。
Suppose you have less data, I suggest to try 70%, 80% and 90% and test which is giving better result. In case of 90% there are chances that for 10% test you get poor accuracy.