Jak zbudować ostateczny model i dostroić próg prawdopodobieństwa po zagnieżdżonej weryfikacji krzyżowej?

17

Po pierwsze, przepraszam za opublikowanie pytania, które zostało już obszernie omówione tutaj , tutaj , tutaj , tutaj , tutaji do odtworzenia starego tematu. Wiem, że @DikranMarsupial pisał na ten temat obszernie w postach i gazetach, ale nadal jestem zdezorientowany i sądząc po liczbie podobnych postów tutaj, wciąż jest to coś, co inni mają trudności z uchwyceniem. Powinienem również stwierdzić, że spotkałem się ze sprzecznością w tym temacie, co spowodowało moje zamieszanie. Powinieneś także wiedzieć, że pierwotnie jestem fizykiem, a nie statystykiem, więc moja wiedza specjalistyczna w tej dziedzinie jest nieco ograniczona. Piszę artykuł w czasopiśmie, w którym chcę użyć zagnieżdżonego CV, aby oszacować wydajność, której mogę oczekiwać od mojego ostatecznego modelu. W mojej domenie jest to pierwszy raz. (Prawie nigdy nie używamy żadnychforma solidnego CV w mojej dziedzinie, ale wesoło wypompowuję dokumenty z wynikami badań z wykorzystaniem sieci neuronowych i wzmocnionych drzew decyzyjnych!) Dlatego bardzo ważne jest, że mam bardzo dokładne i jasne zrozumienie, aby nie popsuć i nie propagować błędna procedura dla mojej społeczności, która mogłaby się nauczyć lat! Dzięki! Dalej z pytaniem ...

Jak zbudować ostateczny model po zagnieżdżonej weryfikacji krzyżowej?

Uczę prostego modelu glmnet z regularyzacją L1 i L2. Jest szybki, prosty i możliwy do interpretacji. Przeprowadzam centrowanie cech, skalowanie i transformacje Box-Coxa, tak aby rozkłady cech były wyśrodkowane na środkach, wystandaryzowane i nieco podobne do gaussowskich. Wykonuję ten krok w ramach weryfikacji krzyżowej, aby zapobiec wyciekom informacji. Wyłącznie dlatego, że mój sprzęt jest niewiarygodnie wolny i nie mam dostępu do większej mocy procesora, dokonuję również szybkiego wyboru funkcji opartych na filtrach w CV po wstępnym przetwarzaniu funkcji. Używam losowego wyszukiwania siatki, aby wybrać hiperparametry alfa i lambda. Rozumiem, że nie powinienemPętla CV, aby uzyskać ten szacunek. Rozumiem, że wewnętrzna pętla CV jest używana do wyboru modelu (w tym przypadku optymalne hiperparametry) i że zewnętrzna pętla jest używana do oceny modelu , tj. Wewnętrzne i zewnętrzne CV służą dwóm różnym celom, które często są błędnie zlewane. (Jak sobie radzę?)

Teraz linki, które opublikowałem, sugerują, że „sposobem na myślenie o walidacji krzyżowej jest oszacowanie wydajności uzyskanej przy użyciu metody budowy modelu, a nie oszacowanie wydajności modelu”. Biorąc to pod uwagę, jak mam interpretować wyniki procedury zagnieżdżonego CV?

Porada, którą przeczytałem, wydaje się wskazywać na następujące - popraw mnie, jeśli jest to nieprawidłowe: wewnętrzne CV jest częścią mechanizmu, który pozwala mi wybrać optymalne hiperparametry alfa i lambda mojego modelu glmnet. Zewnętrzne CV podaje oszacowanie, którego mogę się spodziewać po ostatecznym modelu, jeśli zastosuję procedurę dokładnie taką, jak w wewnętrznym CV, w tym dostrajanie hiperparametrów i wykorzystanie całego zestawu danych do zbudowania ostatecznego modelu. Oznacza to, że dostrajanie hiperparametrów jest częścią „metody budowania modelu”. Czy to jest poprawne czy nie? Ponieważ to mnie dezorientuje. Gdzie indziej widziałem, że procedura budowy ostatecznego modelu, który ma zostać wdrożony, obejmuje szkolenie całego zestawu danych przy użyciu ustalonych wartościhiperparametrów wybranych za pomocą CV. W tym przypadku „metoda budowania modelu” nie obejmuje strojenia. Więc co to jest? W pewnym momencie optymalne hiperparametry są wybierane i ustalane do budowy ostatecznego modelu! Gdzie? W jaki sposób? Jeśli moja wewnętrzna pętla jest 5-krotnym CV, a moja zewnętrzna pętla jest 5-krotnym CV i wybieram, powiedzmy, 100 punktów do testowania w ramach losowego wyszukiwania siatki w wewnętrznym CV, ile razy faktycznie trenuję glmnet Model? (100 * 5 * 5) + 1 dla ostatecznej wersji, czy jest więcej kroków, których nie jestem świadomy?

Zasadniczo potrzebuję bardzo jasnego opisu, jak interpretować oszacowanie wydajności z zagnieżdżonego CV i jak zbudować ostateczny model.

Chciałbym również znać odpowiednią procedurę wyboru progu prawdopodobieństwa dla konwersji wyników prawdopodobieństwa z mojego ostatecznego modelu glmnet na (binarne) etykiety klas --- czy potrzebna jest kolejna pętla CV?

Andrew John Lowe
źródło

Odpowiedzi:

8

Wyjaśnienie sprawdzania poprawności zagnieżdżenia bez zagnieżdżania

Oto jak widzę (zagnieżdżoną) weryfikację krzyżową i budowanie modelu. Zauważ, że jestem chemikiem i wyglądam od strony aplikacji do procesu budowania modelu (patrz poniżej). Moim głównym punktem tutaj jest, z mojego punktu widzenia, nie potrzebuję dedykowanej zagnieżdżonej odmiany weryfikacji krzyżowej. Potrzebuję metody walidacji (np. Walidacji krzyżowej) i funkcji szkolenia modelu:

model = f (training data)

„mój” Funkcja modelu szkolenia f nie wymaga żadnych hiperparametrów ponieważ wewnętrznie robi wszystko hyperparameter strojenia (np twój alpha, lambdai threshold).

Innymi słowy, moja funkcja treningowa może zawierać dowolną liczbę wewnętrznych walidacji krzyżowych (lub wyrzucanie z torby lub jakakolwiek ocena wydajności, którą mogę uznać za przydatną). Jednak należy pamiętać, że rozróżnienie między parametrami i hiperparametrów zazwyczaj jest to, że hiperparametrów muszą być dostrojone do zbioru danych / aplikacji pod ręką, podczas gdy parametry mogą być następnie zamontowany niezależnie od tego, jakie dane jest. Dlatego z punktu widzenia twórcy nowego algorytmu klasyfikacji sensowne jest zapewnienie tylko „pasującej” funkcji dopasowania ( g (training data, hyperparameters)), która pasuje do parametrów, jeśli podane dane i hiperparametry.

Chodzi o fto, że funkcja treningu zewnętrznego polega na tym, że po przeprowadzeniu krzyżowego sprawdzania poprawności daje on prosty sposób trenowania „na całym zestawie danych”: wystarczy użyć f (whole data set)zamiast wezwania f (cv split training data)dla zastępczych modeli weryfikacji krzyżowej.

Zatem w twoim przykładzie będziesz mieć 5 + 1 połączeń z f, a każde z połączeń do fbędzie miało np. 100 * 5 połączeń z g.


próg prawdopodobieństwa

Chociaż można to zrobić za pomocą kolejnej weryfikacji krzyżowej, nie jest to konieczne: jest to tylko jeden hiperparametr, który ma twój gotowy do użycia model i który można w nim oszacować f.

To, co musisz to naprawić, to heurystyka, która pozwala obliczyć taki próg. Istnieje szeroka gama heurystyk (od ROC i określających, jak ważne jest unikanie fałszywych wyników dodatnich w porównaniu do fałszywych wyników ujemnych w stosunku do minimalnej dopuszczalnej czułości lub swoistości lub PPV lub NPV do dopuszczenia dwóch progów, a tym samym poziomu „niepewnego” (NA) itd. ), które są odpowiednie w różnych sytuacjach - dobra heurystyka jest zazwyczaj bardzo specyficzna dla danego zastosowania.

Ale w przypadku pytania tutaj możesz to zrobić wewnątrz fi np. Używając prognoz uzyskanych podczas wewnętrznej weryfikacji krzyżowej, aby obliczyć ROC, a następnie odpowiednio znaleźć punkt pracy / próg.


Szczegółowe uwagi do części pytania

Rozumiem, że nie powinienem raportować wydajności z CV użytego do wybrania optymalnych hiperparametrów jako oszacowania oczekiwanej wydajności mojego ostatecznego modelu (który byłby zbyt optymistyczny), ale zamiast tego powinienem dołączyć zewnętrzną pętlę CV, aby uzyskać tę ocenę .

Tak. (Chociaż oszacowanie wewnętrzne niesie informacje w stosunku do oszacowania zewnętrznego: jeśli jest ono o wiele bardziej optymistyczne niż oszacowanie zewnętrzne, zazwyczaj przeszacowujesz).

Rozumiem, że do wyboru modelu używana jest wewnętrzna pętla CV

Wszelkie strojenie modeli oparte na danych, naprawdę -> obejmujące strojenie progu granicznego.

(w tym przypadku optymalne hiperparametry) oraz że zewnętrzna pętla jest używana do oceny modelu, tj. wewnętrzny i zewnętrzny CV służą dwóm różnym celom, które często są błędnie splecione.

Tak.

Oznacza to, że dostrajanie hiperparametrów jest częścią „metody budowania modelu”.

Ja też wolę patrzeć w ten sposób: jestem chemikiem i wyglądam od strony aplikacji: dla mnie wyszkolony / dopasowany model nie jest kompletny bez hiperparametrów, a ściślej model jest czymś, z czego mogę bezpośrednio skorzystać uzyskać prognozy. Chociaż, jak zauważysz, inni ludzie mają inne spojrzenie (bez dostrajania hiperparametrów). Z mojego doświadczenia wynika, że ​​często dzieje się tak w przypadku osób opracowujących nowe modele: strojenie hiperparametrów jest wówczas „rozwiązanym problemem” i nie jest brane pod uwagę. (uwaga dodatkowa: ich pogląd na to, co można zrobić w ramach walidacji krzyżowej, różni się nieco od tego, co może zrobić walidacja krzyżowa od strony aplikacji).

cbeleites obsługuje Monikę
źródło