データをトレーニングセットと検証セットに最適に分割するための経験則はありますか?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%をトレーニング用に予約する必要があります。
昨年、私は教授:Andrew Ngのオンライン機械学習コースを受講しました。彼の推薦は:
トレーニング:60%
相互検証:20%
テスト:20%
in the modern big data era, where, for example, you might have a million examples in total, then the trend is that your dev (cross validation) and test sets have been becoming a much smaller percentage of the total.
になる可能性があると彼は示唆しています。
さて、あなたはもう一つ考えるべきです。
1,000,000の例のような非常に大きなデータセットがある場合、モデルが正常に機能することを伝えるために10%= 100,000の例は必要ないため、80/10/10の分割は不要な場合があります。
多分99 / 0.5 / 0.5で十分です。5,000の例はデータの分散のほとんどを表すことができ、テストと開発におけるこの5,000の例に基づいてモデルが適切に機能することは簡単にわかるでしょう。
おそらく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です。