To zabawne, że najbardziej uprzywilejowana odpowiedź tak naprawdę nie odpowiada na pytanie :) więc pomyślałem, że fajnie byłoby poprzeć to nieco większą teorią - głównie zaczerpniętą z „Data Mining: Practical Machine Learning Tools and Techniques” i Toma Mitchella „Uczenie maszynowe” .
Wprowadzenie.
Mamy więc klasyfikator i ograniczony zestaw danych, a pewna ilość danych musi przejść do zestawu szkoleniowego, a reszta jest używana do testowania (w razie potrzeby trzeci podzbiór wykorzystywany do sprawdzania poprawności).
Przed nami stoi dylemat: aby znaleźć dobrego klasyfikatora, „podzbiór szkoleniowy” powinien być tak duży, jak to możliwe, ale aby uzyskać dobry szacunek błędu, „podzbiór testowy” powinien być tak duży, jak to możliwe - ale oba podzbiory są pobierane z ten sam basen.
Oczywiste jest, że zestaw treningowy powinien być większy niż zestaw testowy - to znaczy, że podział nie powinien wynosić 1: 1 (głównym celem jest trening , a nie testowanie ) - ale nie jest jasne, gdzie powinien być podział.
Procedura wstrzymania.
Procedura dzielenia „nadzbioru” na podzbiory nazywa się metodą wstrzymania . Zauważ, że łatwo możesz mieć pecha i przykłady niektórych klas mogą brakować (lub być nadreprezentowane) w jednym z podzbiorów, które można rozwiązać za pomocą
- losowe próbkowanie, które gwarantuje, że każda klasa jest odpowiednio reprezentowana we wszystkich podzbiorach danych - procedura nazywa się wstrzymaniem stratyfikowanym
- losowe pobieranie próbek z powtarzającym się procesem testowania, testowania i sprawdzania poprawności, który jest nazywany powtarzalnym wstrzymaniem stratyfikacji
W pojedynczej (niepowtarzanej) procedurze wstrzymywania możesz rozważyć zamianę ról danych testowych i treningowych oraz uśrednienie dwóch wyników, ale jest to możliwe tylko przy podziale 1: 1 między zestawy treningowe i testowe, co jest nie do przyjęcia (patrz Wprowadzenie ). Daje to jednak pewien pomysł i zamiast tego stosuje się ulepszoną metodę (zwaną sprawdzaniem krzyżowym ) - patrz poniżej!
Walidacja krzyżowa.
W walidacji krzyżowej decydujesz o stałej liczbie fałd (partycji danych). Jeśli użyjemy trzykrotnie, dane zostaną podzielone na trzy równe partycje i
- używamy 2/3 do szkolenia i 1/3 do testowania
- i powtórz tę procedurę trzy razy, aby ostatecznie każda instancja została użyta dokładnie raz do testowania.
Nazywa się to potrójną walidacją krzyżową , a jeśli przyjęta jest również stratyfikacja (co często jest prawdą), nazywa się to potrójną walidacją krzyżową .
Ale oto oto standardowy sposób nie polega na podziale 2/3: 1/3. Cytując „Data Mining: Practical Machine Learning Tools and Techniques” ,
Standardowym sposobem [...] jest stosowanie 10-krotnej walidacji krzyżowej. Dane są losowo dzielone na 10 części, w których klasa jest reprezentowana w przybliżeniu w takich samych proporcjach jak w pełnym zbiorze danych. Każda część odbywa się kolejno, a pozostałe dziewięć dziesiątych trenuje program nauczania; następnie jego poziom błędu jest obliczany na podstawie zestawu blokad. W ten sposób procedura uczenia się jest wykonywana 10 razy na różnych zestawach treningowych (z których każdy ma wiele wspólnego). Na koniec 10 oszacowań błędów uśrednia się, aby uzyskać ogólny szacunek błędu.
Dlaczego 10 Ponieważ „..Extensive testy na wielu zbiorów danych, z różnych technik uczenia się, wykazały, że 10 jest o odpowiednią liczbę zagięć, aby uzyskać najlepsze oszacowanie błędu, i nie jest też pewne teoretyczne dowody, że poparcie tego ..” I haven nie znalazłem, które obszerne testy i dowody teoretyczne mają na myśli, ale ten wydaje się być dobrym początkiem do kopania więcej - jeśli chcesz.
Po prostu mówią
Chociaż argumenty te w żadnym wypadku nie są rozstrzygające, a debata w kręgach uczenia maszynowego i eksploracji danych na temat najlepszego schematu oceny wciąż trwa, 10-krotna walidacja krzyżowa stała się w praktyce standardową metodą. [...] Co więcej, nie ma nic magicznego w dokładnej liczbie 10: 5-krotna lub 20-krotna walidacja krzyżowa prawdopodobnie będzie prawie tak dobra.
Bootstrap i - wreszcie! - odpowiedź na pierwotne pytanie.
Ale jeszcze nie dotarliśmy do odpowiedzi, dlaczego często 2/3: 1/3 jest często zalecane. Uważam, że jest dziedziczony po metodzie bootstrap .
Opiera się na próbkowaniu z wymianą. Wcześniej umieszczaliśmy próbkę z „wielkiego zestawu” dokładnie w jednym z podzbiorów. Bootstraping jest inny i próbka może łatwo pojawić się zarówno w zestawie szkoleniowym, jak i testowym.
Spójrzmy na jeden konkretny scenariusz, w którym bierzemy zestaw danych D1 z n instancji i próbkujemy go n razy z zamianą, aby uzyskać inny zestaw danych D2 z n instancji.
Teraz patrz wąsko.
Ponieważ niektóre elementy w D2 zostaną (prawie na pewno) powtórzone, w oryginalnym zestawie danych muszą znajdować się pewne instancje, które nie zostały wybrane: użyjemy ich jako instancji testowych.
Jaka jest szansa, że konkretna instancja nie została wybrana dla D2 ? Prawdopodobieństwo odebrania przy każdym ujęciu wynosi 1 / n, więc jest odwrotnie (1 - 1 / n) .
Kiedy mnożymy te prawdopodobieństwa razem, to jest to (1 - 1 / n) ^ n, co oznacza e ^ -1, czyli około 0,3. Oznacza to, że nasz zestaw testowy będzie wynosił około 1/3, a zestaw treningowy będzie wynosił około 2/3.
Wydaje mi się, że to jest powód, dla którego zaleca się stosowanie podziału 1/3: 2/3: ten stosunek pochodzi z metody szacowania ładowania.
Podsumowując.
Chcę zakończyć cytatem z książki eksploracji danych (której nie mogę udowodnić, ale zakładam, że jest poprawny), w której zazwyczaj zalecają 10-krotną walidację krzyżową:
Procedura ładowania początkowego może być najlepszym sposobem oszacowania błędu dla bardzo małych zestawów danych. Jednak, podobnie jak bezobsługowa walidacja krzyżowa, ma ona wady, które można zilustrować, rozważając specjalną, sztuczną sytuację [...] całkowicie losowy zbiór danych z dwiema klasami. Rzeczywisty poziom błędu wynosi 50% dla dowolnej reguły przewidywania, ale schemat, który zapamiętał zestaw treningowy, dałby doskonały wynik w zakresie ponownej podstawienia wynoszący 100%, tak że instancje etrain = 0, a bootstrap 0,632 zmieszałby to z wagą 0,368 do dać ogólny poziom błędu tylko 31,6% (0,632 ¥ 50% + 0,368 ¥ 0%), co jest myląco optymistyczne.
To jest problem uogólnienia - to znaczy, jak dobrze nasza hipoteza poprawnie sklasyfikuje przyszłe przykłady, które nie są częścią zestawu treningowego. Zobacz ten fantastyczny przykład, co się stało, gdyby Twój model pasował tylko do posiadanych danych, a nie do nowego: prawo Titiusa-Bode'a
źródło
Jak dotąd @andreiser udzielił doskonałej odpowiedzi na drugą część pytania OP dotyczącą podziału danych szkoleniowych / testowych, a @niko wyjaśnił, jak uniknąć nadmiernego dopasowania, ale nikt nie doszedł do sedna pytania: dlaczego warto używać różnych danych do szkolenia i oceny pomaga nam uniknąć nadmiernego dopasowania.
Nasze dane są podzielone na:
Ważne jest, aby zrozumieć, jakie są różne role wystąpień sprawdzania poprawności i testowania.
Więcej informacji można znaleźć na stronie 222 elementów uczenia statystycznego: eksploracja danych, wnioskowanie i przewidywanie .
źródło