1. 序章

このチュートリアルでは、データセットをトレーニングセットとテストセットに分割する方法を調査します。

まず、データセットを分割する理由を理解しようとします。 次に、データセットの適切な分割率を見つける方法について学習します。

2. なぜデータセットを分割するのですか? 

機械学習モデルの動作を検出するには、トレーニングプロセスで使用されていない観測値を使用する必要があります。 それ以外の場合、モデルの評価バイアスになります。

モデル評価にトレーニング観測値を使用することは、クラスの生徒に一連の質問をしてから、最終試験でいくつかの質問をするようなものです。 生徒が本当に主題を学んだのか、それとも特定のデータを覚えただけなのかはわかりません。

最も簡単な方法は、データセット全体を2つのセットに分割することです。 次に、1つをトレーニングに使用し、もう1つをモデル評価に使用します。 これはホールドアウト方式と呼ばれます。 

まず、データサブセットの意味を見てみましょう。

これらの観察結果を使用して、機械学習モデルをトレーニングします。 言い換えると、これらの観測値をモデルにフィードして、学習フェーズ中にパラメーターを更新します。

テストセットの観測値を使用して、トレーニングフェーズの完了後に機械学習モデルをテストします。このようにして、モデルが新しい観測値にどのように反応するかを測定します。 トレーニングセットとテストセットは同じ分布に従う必要があります。

ホールドアウト方式を使用すると、データの漏洩や過剰適合などの問題のリスクが軽減されます。 したがって、トレーニングされたモデルが新しいデータで適切に一般化されることを保証します。

3. データセットを分割する方法は? 

インターネットで最適な列車とテストの比率を検索すると、ポップに対する最初の答えは80:20になります。 これは、80 % o fの観測値をトレーニングに使用し、残りをテストに使用することを意味します。 古い情報源や一部の教科書では、70:30または50:50の分割を使用するように指示されています。 それどころか、ディープラーニングやビッグデータに関する情報源は、99:1の分割を示唆しています。

すべての機械学習の問題と同様に、この質問には1つの簡単な答えはありません。 トレーニングデータが少ないと、パラメーター推定値の分散が大きくなります。 一方、テストデータが少ないと、パフォーマンス測定値の変動が大きくなります。

データセットのサイズは分割率を意味します。 明らかに、異なるサイズのデータセットで同じ比率を使用すると、トレインとテストセットのサイズが異なります。

データセットが比較的小さい場合(n <10,000)、70:30が適切な選択です。

ただし、小さいデータセット(n <1,000)の場合、各観測値は非常に価値があり、検証のために何も惜しまないでしょう。 この場合、k分割交差検定がホールドアウト法よりも優れた選択肢です。 この方法は計算コストがかかります。 それでも、複数のモデルをトレーニングすることにより、小さなデータセットに対して効果的なモデル評価を提供します。

それどころか、非常に大きなデータセット(数百万の観測値など)は柔軟性を提供します。 99:1以上のような高いスプリット比を選択できます。

かなり高い観測値を含むデータセットでは、80:20が適切な開始点です。 全体として、テストセットがデータセットの分散の大部分を表すことを確認する必要があります。さまざまな量のテストデータを試して、これを確認してください。

たとえば、80:20の分割から始めます。 次に、データセットの80% ofを使用してモデルをトレーニングします。 テストデータの一部(100%、70%、50%など)を使用することで、より小さなテストセットで分散をカバーできるかどうかを確認できます。 テストセット全体と同様に実行する小さな部分があることは、それがカバーされていることを証明します。 それ以外の場合は、より大きなテストセットの使用を検討できます。

4. 結論

この記事では、ホールドアウト方法と、データセットをトレインセットとテストセットに分割する方法について学習しました。

残念ながら、使用する経験則は1つではありません。 したがって、データセットのサイズに応じて、異なる分割率を採用する必要があります。