Po zgromadzeniu danych i próbkowaniu, w razie potrzeby musisz podzielić je na zestawy treningowe, zestawy do walidacji i zestawy testowe.
Podział losowy to najlepsze podejście
Podział losowy to najlepsze podejście do wielu problemów z systemami uczącymi się, ale nie zawsze jest właściwym rozwiązaniem. Weźmy pod uwagę zbiory danych, w których przykłady te są naturalnie pogrupowane w podobne przykłady.
Załóżmy, że model ma sklasyfikować temat z tekstu artykułu z wiadomościami. Dlaczego losowy podział może być przyczyną problemów?
Rysunek 1. Relacje wiadomości są grupowane.
Wiadomości pojawiają się w grupach: w tym samym czasie publikujemy wiele artykułów na ten sam temat. Jeśli więc dane zostaną podzielone losowo, zestaw testowy i zestaw treningowy prawdopodobnie będą zawierać te same materiały. W rzeczywistości w ten sposób nie zadziałałoby, ponieważ wszystkie historie pojawią się w tym samym czasie, więc przeprowadzenie tego podziału mogłoby spowodować zniekształcenie.
Rysunek 2. Przypadkowy podział spowoduje podział klastra na zestawy, co spowoduje zniekształcenie.
Prostym sposobem rozwiązania tego problemu będzie podzielenie danych według daty opublikowania, np. według dnia publikacji. Powoduje to, że artykuły z tego samego dnia są umieszczane w tym samym podziale.
Rysunek 3. Podział danych w określonym czasie pozwala na zakończenie klastrów w obrębie tego samego zestawu.
W przypadku dziesiątek tysięcy artykułów pewna wartość procentowa może być dzielona na kilka dni. I w porządku, ale w rzeczywistości opowieści zostały podzielone na dwa dni. Możesz też wyrzucać dane w określonym promieniu, tak aby nie nakładały się na siebie. Możesz na przykład wytrenować relacje w kwietniu, a następnie w drugim tygodniu maja przeprowadzić test z wyprzedzeniem, aby uniknąć pokrywania się tygodni.