Pytanie:
Dlaczego nie przeprowadzić walidacji na całym zestawie uczącym?
osa
2015-01-02 22:34:46 UTC
view on stackexchange narkive permalink

Mamy zbiór danych zawierający 10 000 ręcznie oznaczonych wystąpień oraz klasyfikator, który został przeszkolony na podstawie wszystkich tych danych. Klasyfikator został następnie oceniony na WSZYSTKICH tych danych, aby uzyskać 95% wskaźnik sukcesu.

Co dokładnie jest nie tak w tym podejściu? Czy po prostu statystyka 95% nie jest zbyt pouczająca w tej konfiguracji? Czy nadal może być jakaś wartość w tej 95% liczbie? Chociaż rozumiem, że teoretycznie nie jest to dobry pomysł, nie mam wystarczającego doświadczenia w tej dziedzinie, aby być pewnym. Zwróć też uwagę, że nie zbudowałem ani nie oceniłem tego klasyfikatora.

Pomijając zdrowy rozsądek, czy ktoś mógłby mi podać bardzo solidne, autorytatywne odniesienie, mówiąc, że ta konfiguracja jest w jakiś sposób błędna?

Wszystko, co znajduję w Internecie, to przykłady zabawek, które mają przekazać jakąś intuicję. Tutaj mam projekt profesjonalistów z ugruntowaną historią, więc nie mogę po prostu powiedzieć „to źle”, zwłaszcza że nie wiem na pewno.

Na przykład to strona mówi:

Ocena wydajności modelu za pomocą danych użytych do uczenia jest niedopuszczalna w eksploracji danych, ponieważ może łatwo wygenerować zbyt optymistyczne i nadmiernie dopasowane modele.

Nie jest to jednak odniesienie autorytatywne. W rzeczywistości ten cytat jest po prostu błędny, ponieważ ocena nie ma nic wspólnego z generowaniem nadmiernie dopasowanych modeli. Może generować zbyt optymistyczne dane naukowców, którzy wybraliby niewłaściwe modele, ale konkretna strategia oceny nie ma nic wspólnego z nadmiernym dopasowaniem modeli jako takich.

Wiele osób (słusznie lub niesłusznie) korzysta z ocen modelu, aby wybrać ostateczny model.Jeśli tak, to w pewnym sensie dana (nieodpowiednia) strategia oceny może generować nadmiernie dopasowane [ostateczne] modele.
Chciałbym po prostu wyrazić swoje wątpliwości bardziej bezpośrednio.Biorąc pod uwagę, że mówisz, że są profesjonalistami z ugruntowaną historią, dlaczego nie zapytasz ich konkretnie, dlaczego nie skorzystali z niezależnego zestawu testów.Podejrzewam, że to nieporozumienie - być może użyli oddzielnego zestawu testowego, a następnie przeszkolili się na wszystkich danych.
@seanv507,, o które będziemy pytać.Po prostu upewniam się, że nie ma nowatorskich badań w zakresie walidacji na zestawie szkoleniowym ...
Chociaż nie jest to pełna odpowiedź na twoje pytanie, być może można uzyskać trochę intuicji, rozważając następujący przypadek.Gdyby algorytm jawnie zapamiętał wszystkie 10000 twoich oznaczonych wystąpień, miałby 100% dokładność po wyświetleniu któregokolwiek z tych wystąpień.Ale co by to zrobiło z etykietą, której nigdy wcześniej nie widziała ...
Teraz, kiedy o tym myślę, ze względu na naturę uczenia się, cokolwiek to jest, każdy rozsądny model powinien działać lepiej, gdy zobaczy dane, na których jest testowany.Byłoby naprawdę dziwne, gdyby model radził sobie lepiej na innych zestawach danych ze świata rzeczywistego niż na tym, na którym był trenowany, i statystycznie mało prawdopodobne wydaje się uzyskanie takiego samego, powiedzmy, 81% w obu przypadkach.
Siedem odpowiedzi:
#1
+23
jpl
2015-01-02 22:51:45 UTC
view on stackexchange narkive permalink

Argument jest prosty: kiedy budujesz model, chcesz, aby ten model działał efektywnie na NOWYCH, NIEWIDZIALNYCH danych, prawda? W przeciwnym razie nie potrzebujesz modelu.

Następnie metryka oceny, powiedzmy precyzja i pamięć, musi dać wyobrażenie o tym, jak dobrze model zachowa się w przypadku niewidocznych danych.

Teraz, jeśli oceniasz te same dane, których użyłeś do treningu, Twoja precyzja i pamięć będą obciążone (prawie na pewno wyższe niż powinny), ponieważ Twój model już widział dane.

Załóżmy, że jesteś nauczycielem przygotowującym egzamin dla niektórych uczniów. Jeśli chcesz ocenić ich umiejętności, czy dasz im ćwiczenia, które już widzieli i które wciąż mają na swoich biurkach, czy też nowe ćwiczenia, inspirowane tym, czego się nauczyli, ale różniące się od nich?

Dlatego zawsze musisz zachować całkowicie niewidoczny zestaw testów do oceny. (Możesz także użyć weryfikacji krzyżowej, ale to inna historia).

Tak, dziękuję, wiem to wszystko.Czy są jakieś dowody na poparcie tego, coś, na co mogę wskazać i powiedzieć „spójrz, tutaj te 10 artykułów w JEEE i ten film wideo mówią, że ta liczba 95% jest całkowicie bez znaczenia”?
Cóż, możesz im po prostu wyjaśnić, co dyktuje zdrowy rozsądek.Myślę, że byłoby dość trudno znaleźć artykuł naukowy powracający do tych podstaw, ale możesz sprawdzić dowolny nadzorowany kurs edukacyjny, na przykład ten, wybrany losowo w Google: http://www.isys.ucl.ac.be/etudes/cours/linf2275/04classification.pdf (ze slajdu 68)
Jeśli chcesz kogoś przekonać, możesz wytrenować jeden model, który osiąga 0 błędów w twoich danych, używając dużej sieci neuronowej, k-najbliższego sąsiada, SVM lub losowego lasu.(Lub tabela, która zapamiętuje te dane.) Powinno być jasne, że nie jest to właściwość, która będzie się również odnosić do przyszłych danych.
Ocena zestawu uczącego jest oparta na diagnostyce w próbce, takiej jak AIC, $ R ^ 2 $ itd.
Jednym z rezultatów tego jest z pewnością nadmierne dopasowanie: nadmierne dopasowanie odnosi się do konstruowania modelu, który idealnie pasuje do dostępnych danych, ale jest zbyt szczegółowy, aby można go było wykorzystać do ogólnego przewidywania nowych danych.To jest dokładnie to, co to jest.Jest to w pewnym sensie inny rodzaj overfittingu niż ten, który jest spowodowany modelami z wielomianami zbyt dużego stopnia lub podobnymi, ale dotyczy tego samego problemu.
Tak, @osa się myli, mówiąc, że nie ma to nic wspólnego z nadmiernym dopasowaniem.Ta odpowiedź powinna zostać poprawiona.
Tak, zredagowałem swoją odpowiedź i usunąłem ostatni komentarz na temat overfittingu.
#2
+12
gung - Reinstate Monica
2015-01-02 23:54:00 UTC
view on stackexchange narkive permalink

@jpl dobrze objaśnił te pomysły. Jeśli chcesz, to tylko odniesienie, użyłbym solidnego, podstawowego podręcznika. Niektóre dobrze znane książki, które omawiają ideę walidacji krzyżowej i dlaczego są ważne, mogą być następujące:

#3
+5
Neil G
2015-01-03 00:59:19 UTC
view on stackexchange narkive permalink

Jeśli przeprowadzasz walidację na całym zbiorze uczącym, idealnym modelem jest ten, który po prostu zapamiętuje dane. Nic nie może tego przebić.

Mówisz, że „realistycznie nie jest to model, który po prostu zapamiętuje dane”. Ale dlaczego wolisz inne modele? To jest sedno mojej redukcji do absurdu walidacji na wszystkich danych: głównym powodem, dla którego nie podoba ci się model, który zapamiętuje wszystko, co widział, jest to, że w ogóle nie uogólnia. Co powinien zrobić, biorąc pod uwagę dane wejściowe, których nie widziało? Więc chcesz modelu, który działa ogólnie, a nie takiego, który działa tylko na tym, co widział. Sposób, w jaki kodujesz pragnienie dobrej pracy z niewidocznymi danymi, polega na ustawieniu danych walidacyjnych tak, aby były dokładnie tymi niewidocznymi danymi.

Jeśli jednak wiesz, że Twoje przykłady treningowe całkowicie reprezentują prawdziwy rozkład, przejdź do naprzód i potwierdź ich użycie!

Ponadto, wbrew twierdzeniom zawartym w Twoim ostatnim akapicie, cytat, który przytoczyłeś, jest nie „po prostu błędny” i że „konkretna strategia oceny” czy ma do czynienia z „nadmiernym dopasowaniem modeli”. Nadmierne dopasowanie oznacza dopasowanie (szum) dostarczonych przykładów treningowych, a nie zależności statystyczne między danymi ogólnymi. Sprawdzając na podstawie danych widocznych, będziesz preferować modele, które pasują do szumu, zamiast tych, które działają dobrze przy użyciu niewidocznych danych.

Tak, ale realistycznie nie jest to model, który po prostu zapamiętuje dane.Zakładam, że to jakiś standardowy klasyfikator.To może być naprawdę bardzo dobry model, po prostu nie wiem tego na pewno.
Nawet niektóre „standardowe” klasyfikatory zapamiętują dane - lub ich części.$ k $ - Najbliżsi sąsiedzi oczywiście to robią (i nic więcej);rzeczywiście, gdy $ k = 1 $, coś musi być strasznie nie tak z twoją implementacją, jeśli nie uda ci się uzyskać 100% zbioru uczącego.Naiwny Bayes nie zapamiętuje * wszystkich * danych, ale wyodrębnia ogromny zestaw prawdopodobieństw warunkowych.Te naprawdę powinny być traktowane jako wyrywkowe szacunki z pewną niepewnością, ale walidacja na całym zestawie uczącym „promuje” je do dokładnej wartości populacji.
@MattKrause, DZIĘKUJEMY!Widzę.Więc prawie każdy klasyfikator binarny / numeryczny z jednym parametrem dostrajalnym może być postrzegany jako swego rodzaju interpolacja, z wyższymi ustawieniami parametru prowadzącymi do lepszego dopasowania do zbioru, na którym jest trenowany.Podobnie klasyfikator z wieloma dostrajalnymi parametrami może być postrzegany jako problem optymalizacji zbioru uczącego, ponieważ jedyne, co możemy zrobić, to zoptymalizować.(Chyba że, powiedzmy, poprawimy parametry, aby uzyskać o 50% gorsze dopasowanie na zestawie treningowym niż maksymalne dopasowanie na zestawie treningowym).Zatem większość klasyfikatorów to interpolatory / optymalizatory w pewnym miejscu.
@Neil G, jak widzę, więc argumentem, dlaczego walidacja krzyżowa nie jest doskonała, jest to, że dane pochodzą „z tego samego rozkładu”, a więc mierzenie procentu poprawnych domysłów, przy jednoczesnym wykazaniu, że model coś przewiduje, może nie reprezentować praktycznej użytecznościmodelu w kontekście, w jakim chcemy go wykorzystać.
Walidacja krzyżowa @osa: oddziela (wiele razy) dane do zestawu uczącego i zestawu walidacyjnego.Nie wykorzystuje ponownie danych szkoleniowych do walidacji.Zredagowałem moją odpowiedź w odpowiedzi na Twój pierwszy komentarz.
#4
+1
Aksakal
2015-01-03 00:48:22 UTC
view on stackexchange narkive permalink

Oto moje proste wyjaśnienie.

Kiedy modelujemy rzeczywistość, chcemy, aby nasze modele były w stanie nie tylko wyjaśniać istniejące fakty, ale także przewidywać nowe. Tak więc testowanie poza próbką ma naśladować ten cel. Szacujemy (trenujemy) model na podstawie pewnych danych (zbioru uczącego), a następnie próbujemy przewidywać poza zestawem uczącym i porównujemy prognozy z próbą wstrzymania.

Oczywiście jest to tylko ćwiczenie z prognozowania, a nie prawdziwa prognoza, ponieważ próba wstrzymania była już faktycznie obserwowana. Prawdziwy test w przewidywaniu ma miejsce tylko wtedy, gdy używasz modelu na danych, których jeszcze nie zaobserwowano. Na przykład opracowałeś program do uczenia maszynowego do celów reklamowych. Dopiero gdy zaczniesz go używać w praktyce i obserwujesz jego działanie, będziesz wiedział na pewno, czy działa, czy nie.

Jednak pomimo ograniczeń związanych z treningiem / wstrzymaniem, nadal jest to pouczające. Jeśli Twój model działa tylko w próbce, prawdopodobnie nie jest to dobry model. Tak więc tego rodzaju testowanie pomaga wyeliminować złe modele.

Kolejna rzecz do zapamiętania: powiedzmy, że przeprowadziłeś walidację modelu podczas szkolenia / wstrzymania. Jeśli jednak chcesz użyć modelu, prawdopodobnie oszacujesz model na całym zbiorze danych. W takim przypadku, jak odpowiednie są wyniki walidacji poza próbą modelu, który został oszacowany na próbie uczącej?

„Oczywiście jest to tylko ćwiczenie z przewidywania, a nie rzeczywiste przewidywanie, ponieważ próba wstrzymania została już faktycznie zaobserwowana”.--- nie jest to zresztą takie oczywiste, ponieważ model nie obserwował tych danych.
@osa, ma rację, ale modelarz miał dane.Osoba zajmująca się modelowaniem mogła świadomie lub nieświadomie wybrać próbkę wstrzymaną, aby wesprzeć wskaźniki wydajności poza próbką itp. Dlatego ten rodzaj testowania nie jest prawdziwym „testowaniem wstecznym”, gdzie nowe dane są naprawdę nowe.t dostępne dla modelarza w czasie modelowania.
@Alsakal, dobra uwaga na temat podświadomych uprzedzeń.Widzę, jest to podobny rodzaj błędu do zgłaszania dobrych statystyk i ignorowania złych.
#5
+1
Wayne
2015-01-03 02:30:02 UTC
view on stackexchange narkive permalink

Inni odpowiedzieli na twoje wcześniejsze akapity, więc pozwól mi zająć się twoim ostatnim. Trafność twojego punktu zależy od interpretacji „oceny”. Jeśli jest używany w sensie ostatecznego uruchomienia na niewidocznych danych, aby dać wyobrażenie o tym, jak dobrze wybrany model może działać w przyszłości, twój punkt widzenia jest słuszny.

Jeśli używasz „oceny” bardziej w sensie tego, co nazwałbym zestawem „testowym” - to znaczy w celu oceny wyników uczenia wielu modeli w celu wybrania jednego - wtedy ocena danych uczących doprowadzi do nadmiernego dopasowania.

#6
+1
mcstar
2015-01-06 04:18:16 UTC
view on stackexchange narkive permalink

Wszystkie inne odpowiedzi (szczególnie związane z nadmiernym dopasowaniem) są bardzo dobre, ale dodałbym tylko jedną rzecz. Sama natura algorytmów uczenia się polega na tym, że szkolenie ich gwarantuje, że nauczą się „czegoś” wspólnego z danymi, na które są narażeni. Jednak nie możemy być bezpośrednio pewni, jakie dokładnie funkcje danych szkoleniowych faktycznie się uczą. Na przykład, w przypadku rozpoznawania obrazu bardzo trudno jest być pewnym, czy wyszkolona sieć neuronowa nauczyła się, jak wygląda twarz, lub czegoś innego, co jest nieodłączne w obrazach. Sieć SSN mogłaby po prostu zapamiętać, na przykład, jak wyglądają koszule, ramiona lub włosy.

To powiedziawszy, użycie oddzielnego zestawu danych testowych (niewidocznych podczas treningu) jest jednym ze sposobów zwiększenia pewności, że mieć model, na którym można liczyć, że będzie działał zgodnie z oczekiwaniami na rzeczywistych / niewidocznych danych. Pomocne jest również zwiększenie liczby próbek i zmienność cech. Przez zmienność cech rozumie się to, że chcesz trenować z danymi, które mają jak najwięcej odmian, które nadal liczą się w każdej próbce.

Na przykład, ponownie z danymi twarzy, chcesz pokazać każdą twarz na tak wielu różnych tłach, jak to tylko możliwe, z jak największą liczbą odmian odzieży, oświetlenia, koloru włosów, ujęć kamery itp. Pomoże to upewnić się, że kiedy SSN powie „twarz”, będzie to naprawdę twarz, a nie pusta ściana w tle, która wyzwoli odpowiedź.

#7
  0
testuser
2015-01-03 11:15:09 UTC
view on stackexchange narkive permalink

Hastie i in. mają dobry przykład w kontekście walidacji krzyżowej, który moim zdaniem ma również zastosowanie tutaj. Rozważ przewidywanie z niezwykle dużą liczbą predyktorów na danych, w przypadku których wszystkie predyktory i wyniki są rozmieszczone niezależnie. Dla celów argumentacji załóżmy, że wszystko jest Bernoullim z p = 0,5.

Jeśli masz wystarczająco dużo zmiennych, będziesz mieć kilka predyktorów, które pozwolą Ci doskonale przewidzieć wyniki. Ale w przypadku nowych danych nie ma sposobu, aby uzyskać idealną dokładność.

To nie jest dokładnie to samo, co w przypadku, ale pokazuje przykład, w którym metoda może naprawdę wprowadzić Cię na manowce .



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...