必要に応じてデータを収集し、必要に応じてサンプリングした後、トレーニング セット、検証セット、テストセットにデータを分割します。
ランダム分割が最適な手法でない場合
ランダム分割は多くの ML 問題に対する最適なアプローチですが、常に適切な解決策であるとは限りません。たとえば、サンプルが類似したサンプルに自然にクラスタリングされたデータセットについて考えてみましょう。
ニュース記事のテキストからトピックをモデルで分類するとします。ランダム分割に問題がある理由
図 1. ニュース記事はクラスタ化されています。
ニュース記事はクラスタに表示されます。同じトピックに関する複数の記事が同時に公開されます。したがって、データをランダムに分割した場合、テストセットとトレーニング セットに同じストーリーが含まれる可能性があります。実際には、この方法はすべてのストーリーが同時に届くため、機能しません。このように分割すると、スキューが発生します。
図 2. ランダム分割はクラスタを複数のセットに分割するため、スキューが発生します。
この問題を解決するための簡単な方法は、ストーリーが公開された日付(たとえば、ストーリーが公開された日)に基づいてデータを分割することです。これにより、同じ日のストーリーが同じスプリットに配置されます。
図 3. 時間どおりに分割すると、クラスタはほぼ同じセットになります。
数万件以上のニュース記事がある場合、割合が日によって分割されることがあります。しかし、実際には、これらの記事はニュース サイクルの 2 日間に分割されました。また、受付終了時間から一定時間以内にデータを除外して、重複が生じないようにすることもできます。たとえば、4 月のストーリーをトレーニングしてから、5 月の第 2 週をテストセットとして使用し、週のギャップで重複を防ぐことができます。