Czy istnieje praktyczna zasada najlepszego podziału danych na zestawy szkoleniowe i walidacyjne? Czy wskazany jest nawet podział 50/50? Czy są wyraźne zalety posiadania większej ilości danych treningowych w porównaniu do danych walidacyjnych (lub odwrotnie)? Czy ten wybór zależy w dużej mierze od aplikacji?
Używam głównie odpowiednio 80% / 20% danych szkoleniowych i walidacyjnych, ale wybrałem ten podział bez żadnego zasadniczego powodu. Czy ktoś, kto ma większe doświadczenie w uczeniu maszynowym, może mi doradzić?
machine-learning
robguinness
źródło
źródło
Odpowiedzi:
Istnieją dwie konkurencyjne kwestie: przy mniejszej liczbie danych treningowych oszacowania parametrów mają większą wariancję. Przy mniejszej liczbie danych testowych statystyki wydajności będą miały większą zmienność. Mówiąc ogólnie, powinieneś przejmować się dzieleniem danych w taki sposób, aby żadna wariancja nie była zbyt wysoka, co ma więcej wspólnego z bezwzględną liczbą wystąpień w każdej kategorii, a nie z procentem.
Jeśli masz w sumie 100 wystąpień, prawdopodobnie utkniesz w krzyżowej weryfikacji, ponieważ żaden pojedynczy podział nie zapewni zadowalającej wariancji w twoich szacunkach. Jeśli masz 100 000 instancji, tak naprawdę nie ma znaczenia, czy wybierzesz podział 80:20, czy 90:10 (w rzeczywistości możesz zdecydować się na użycie mniejszej liczby 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żej przedstawiono pouczający sposób na uzyskanie rozbieżności:
źródło
Byłbyś zaskoczony, gdy dowiesz 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 zastosujesz ten współczynnik.
Jednak w zależności od stosowanej metodologii szkolenia / walidacji współczynnik może ulec zmianie. Na przykład: jeśli użyjesz 10-krotnego sprawdzania poprawności krzyżowej, otrzymujesz zestaw sprawdzania poprawności 10% przy każdym zakładaniu.
Przeprowadzono badania dotyczące właściwego stosunku między zestawem szkoleniowym a zestawem walidacyjnym :
W podsumowaniu określają wzór:
Przez złożoność rozumieją:
Biorąc pod uwagę pierwszą zasadę (zestaw walidacji powinien być odwrotnie proporcjonalny do pierwiastka kwadratowego z liczby dowolnych regulowanych parametrów), możesz stwierdzić, ż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% należy zarezerwować na walidację, a 82,3% na szkolenie.
źródło
W zeszłym roku wziąłem udział w internetowym kursie uczenia maszynowego Prof. Andrew Ng. Jego zaleceniem było:
Szkolenie : 60%
Krzyżowa walidacja : 20%
Testowanie : 20%
źródło
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.
Sugeruje, że może to być 99,5: 0,25: 0,25.Powinieneś pomyśleć o jeszcze jednej rzeczy.
Jeśli masz naprawdę duży zestaw danych, na przykład 1 000 000 przykładów, podział 80/10/10 może być niepotrzebny, ponieważ 10% = 100 000 przykładów nie jest konieczne, aby stwierdzić, że model działa poprawnie.
Może wystarczy 99 / 0,5 / 0,5, ponieważ 5000 przykładów może reprezentować większość wariancji danych i można łatwo stwierdzić, że model działa dobrze na podstawie tych 5000 przykładów w testach i programistach.
źródło
Załóżmy, że masz mniej danych, sugeruję wypróbowanie 70%, 80% i 90% i przetestowanie, które daje lepszy wynik. W przypadku 90% są szanse, że dla 10% testu otrzymujesz słabą dokładność.
źródło
Być może 63,2% / 36,8% jest rozsądnym wyborem. Powodem byłoby to, że jeśli miałeś całkowitą wielkość próby n i chciałeś losowo próbować z zamiennikiem (czyli ponownym próbkowaniem, jak w statystycznym bootstrapie) n przypadków z początkowego n , prawdopodobieństwo indywidualnego przypadku jest wybierane w ponowna próba wyniesie 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 wybrania pojedynczego przypadku do ponownej próby do 4 cyfr wynosi 0,6329. Dla próbki n = 20000 prawdopodobieństwo wynosi 0,6321.
źródło
Wszystko zależy od dostępnych danych. Jeśli masz znaczną ilość danych, 80/20 jest dobrym wyborem, jak wspomniano powyżej. Ale jeśli nie przeprowadzisz walidacji krzyżowej z podziałem 50/50, może ci to znacznie pomóc i uniemożliwić utworzenie modelu nadmiernie dopasowanego do danych treningowych.
źródło