Czy istnieje zasada, jak podzielić zbiór danych na zestawy treningowe i walidacyjne?

Czy istnieje zasada jak najlepiej podzielić dane na zestawy treningowe i walidacyjne? Czy warto podzielić nawet 50/50? Czy istnieje wyraźna korzyść z posiadania większej ilości danych treningowych w stosunku do danych walidacyjnych (lub odwrotnie)? Czy ten wybór jest w dużej mierze zależny od aplikacji?

Używałem głównie 80% / 20% danych treningowych i walidacyjnych, ale wybrałem ten dział bez żadnego zasadniczego powodu. Czy ktoś, kto jest bardziej doświadczony w uczeniu maszynowym doradzisz mi?

Author: robguinness, 2012-11-28

6 answers

Istnieją dwa konkurencyjne obawy: przy mniejszej ilości danych treningowych, szacunki parametrów mają większą wariancję. Przy mniejszej ilości danych testowych statystyka wydajności będzie miała większą wariancję. Ogólnie rzecz biorąc, powinieneś zająć się dzieleniem danych w taki sposób, aby żadna wariancja nie była zbyt wysoka, co jest bardziej związane z bezwzględną liczbą instancji w każdej kategorii, a nie procentem.

Jeśli masz łącznie 100 instancji, prawdopodobnie utkniesz z walidacją krzyżową jako nie pojedynczy split da ci satysfakcjonującą wariancję w szacunkach. Jeśli masz instancje 100,000, tak naprawdę nie ma znaczenia, czy wybierzesz split 80:20 czy split 90:10 (w rzeczywistości możesz użyć mniej danych treningowych, jeśli twoja metoda jest szczególnie intensywna obliczeniowo).

Zakładając, że masz wystarczającą ilość danych, aby wykonać prawidłowe dane testowe (zamiast weryfikacji krzyżowej), poniższy sposób jest pouczający, aby uzyskać poradę na wariancjach:

  1. Podziel swoje dane na szkolenia i testy (80/20 jest rzeczywiście dobrym punktem wyjścia)
  2. podziel dane szkolenia na szkolenia i walidację(ponownie, 80/20 to sprawiedliwy podział).
  3. Podsampluj losowe wybory danych treningowych, trenuj klasyfikatora za pomocą tego i zapisuj wyniki na zestawie walidacji
  4. Wypróbuj serię biegów z różnymi ilościami danych treningowych: losowo próbkuj 20% z nich, powiedzmy 10 razy i obserwuj wyniki na danych walidacyjnych, a następnie zrób to samo z 40%, 60%, 80%. Powinieneś zobaczyć zarówno większą wydajność z większą ilością danych, ale także niższą wariancję w różnych losowych próbkach
  5. aby uzyskać kontrolę nad wariancją ze względu na rozmiar danych testowych, wykonaj tę samą procedurę w odwrotnej kolejności. Trenuj na wszystkich danych treningowych, następnie losowo próbkuj procent swoich danych walidacji kilka razy i obserwuj wydajność. Powinieneś teraz zauważyć, że średnia wydajność na małych próbkach danych walidacji jest mniej więcej taka sama jak wydajność na wszystkich danych walidacji, ale wariancja jest znacznie wyższa przy mniejszej liczbie próbek testowych
 138
Author: Ben Allison,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-29 10:30:18

Zdziwiłbyś się, gdy dowiedziałbyś się, że 80/20 jest dość często występującym współczynnikiem, często określanym jako zasada Pareto. Zazwyczaj jest to Bezpieczny zakład, Jeśli używasz tego stosunku.

Jednak w zależności od metodyki szkolenia/walidacji, którą stosujesz, stosunek może ulec zmianie. Na przykład: jeśli używasz 10-krotnej walidacji krzyżowej, w każdym przypadku otrzymasz zestaw walidacji 10%.

Były pewne badania jaki jest odpowiedni stosunek pomiędzy zestaw treningowy i zestaw walidacyjny :

Ułamek wzorców zarezerwowany dla zestawu walidacji powinien być odwrotnie proporcjonalna do pierwiastka kwadratowego liczby wolnej regulowane parametry.

W swoim podsumowaniu określają wzór:

Validation set (v) to training set (t) size ratio, v / T, scales like ln (N / H-max), gdzie N to liczba rodzin rozpoznawanych i h-max to największa złożoność tych rodziny.

Przez złożoność rozumie się:

Każda rodzina rozpoznawania charakteryzuje się swoją złożonością, która mogą lub nie mogą być związane z VC-dimension , Opis długość, liczba regulowanych parametrów lub inne miary złożoność.

Przyjmując pierwszą regułę (tzn. zbiór walidacji powinien być odwrotnie proporcjonalny do pierwiastka kwadratowego liczby dowolnych parametrów), można wnioskować, że jeśli masz 32 regulowane parametry, pierwiastek kwadratowy z 32 wynosi ~5,65, ułamek powinien wynosić 1/5, 65 lub 0,177 (v / t). Około 17,7% powinno być zarezerwowane na walidację, a 82,3% na szkolenie.

 43
Author: Kiril,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-28 20:04:19

W zeszłym roku śledziłem kurs uczenia maszynowego Online prof. Andrew Ng. Jego rekomendacja brzmiała

Trening: 60%

Weryfikacja Krzyżowa: 20%

Testy: 20%

 39
Author: Upul Bandara,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-28 19:53:40

Cóż, powinieneś pomyśleć o jeszcze jednej rzeczy.

Jeśli masz naprawdę duży zbiór danych, jak 10 000 000 przykładów, podział 80/10/10 może być niepotrzebny, ponieważ 10% = 100000 przykładów nie jest konieczne, aby powiedzieć, że model działa dobrze.

Może 99/0. 5/0. 5 wystarczy, ponieważ 5000 przykładów może reprezentować większość wariancji w danych i można łatwo stwierdzić, że model działa dobrze na podstawie tych 5000 przykładów w testach i dev.

 2
Author: DavidS1992,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-06 07:31:26

Być może 63.2% / 36.8% to rozsądny wybór. Powodem byłoby to, że gdybyś miał całkowitą wielkość próby n i chciał losowo pobrać próbkę z zamiennikiem (aka ponownej próbki, jak w statystycznym bootstrap) n przypadki z początkowego n , prawdopodobieństwo indywidualnego przypadku zostanie wybrany w ponownej próbie wynosiłoby około 0,632, pod warunkiem, że N nie jest zbyt małe, jak wyjaśniono tutaj: https://stats.stackexchange.com/a/88993/16263

Dla próbki N=250, prawdopodobieństwo indywidualnego przypadku jest wybrany dla ponownej próbki do 4 cyfr wynosi 0.6329. Dla próbki N=20000, prawdopodobieństwo wynosi 0,6321.

 0
Author: user16263,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-13 12:44:14

Wszystko zależy od danych pod ręką. Jeśli masz znaczną ilość danych, 80/20 jest dobrym wyborem, jak wspomniano powyżej. Ale jeśli nie Krzyżowa Walidacja z podziałem 50/50 może pomóc ci o wiele bardziej i uniemożliwić stworzenie modelu nadmiernie dopasowującego dane treningowe.

 0
Author: Mayank,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-10 20:59:50