Niedawno powiedziano mi, że proces, który podjąłem (element pracy magisterskiej) może być postrzegany jako nadmierny. Chcę lepiej to zrozumieć i sprawdzić, czy inni się z tym zgadzają.
Celem tej części artykułu jest
Porównaj wydajność drzew regresji wzmocnionej gradientem z losowymi lasami na zbiorze danych.
Spójrz na wydajność wybranego ostatecznego modelu (GBM lub RF).
Te gbm
i randomForest
pakiety w R są stosowane wraz z
caret
.
Postępowano następująco:
- Wstępne wstępne przetwarzanie danych (np. Wprowadzenie brakujących wartości predyktorów nominalnych z odrębną kategorią zwaną „brakującą”). Zmienna docelowa nie była rozpatrywana w odniesieniu do jakiegokolwiek przetwarzania wstępnego (co było bardzo minimalne).
- Utwórz siatkę wartości dla meta-parametrów każdego algorytmu (np. Liczba iteracji dla GBM).
- Utwórz 25 losowych podziałów zestawu danych (65% treningu i 35% testu).
Powtórz 25 razy dla GBM (Za każdym razem, gdy używasz jednego z losowych podziałów pociągu / testu. Za każdym razem, który zestaw treningów i testów jest „aktualny”, oczywiście zmienia się - jest to powtarzana krzyżowa walidacja z pominięciem grupy):
- Użyj 5-krotnej weryfikacji krzyżowej, aby znaleźć „optymalne” ustawienia parametrów algorytmu w wyszukiwaniu siatki. Nic z wcześniejszych przebiegów w ogóle nie zostało użyte w bieżącym przebiegu.
- Po określeniu dopasuj model do pełnego „bieżącego” zestawu treningowego i przewiduj „bieżący” zestaw testowy. Odłóż na bok miarę wydajności tego uruchomienia.
Po uzyskaniu w ten sposób 25 miar wydajności (właściwie miary specyficznej dla danej dziedziny, ale uważaj to za dokładność), wykonaj dokładnie ten sam proces, wykorzystując dokładnie te same niezależne próbki pociągu i testu dla RF (ten sam proces, tylko z innym wyszukiwanie siatki oczywiście).
Teraz mam 25 miar wydajności z ówczesnych „aktualnych” zestawów testowych dla GBM i RF. Porównuję je za pomocą testu rang Wilcoxona i testu permutacji. Odkryłem, że GBM jest lepszy. Twierdziłem również, że rozkład miary wydajności z tych 25 przebiegów dla GBM jest oczekiwaną wydajnością końcowego klasyfikatora GBM.
To, czego nie zrobiłem, to wyciągnięcie losowego zestawu testowego od samego początku i odłożenie go na bok w celu porównania z ostatecznym modelem GBM zbudowanym ze wszystkich danych treningowych. Twierdzę, że to, co zrobiłem, było o wiele lepsze, ponieważ powtórzyłem podzielony model danych / model tuningu / test wstrzymania procesu 25 razy w porównaniu z tylko raz.
Czy jest tu za dużo miejsca? Ponieważ do wybrania GBM kontra RF wykorzystano 25 przebiegów, czy to oznacza, że miar wydajności uzyskanych z procesu nie można wykorzystać jako oszacowania wydajności dla pełnego modelu?
EDYCJA W odpowiedzi na komentarz Wayne'a, oto co zostało zrobione podczas każdego z 25 przebiegów:
- Dane próbkowane dla i-tego zestawu treningowego (i = 1, .., 25) zostały podzielone na 5 grup o jednakowej wielkości. Model został dopasowany przy użyciu 4 z 5 grup, ustawiając parametry GBM (np. Liczbę iteracji) równe wartościom w siatce jth (j = 1, .., 18).
- Wydajność w 5. grupie obliczono przy użyciu tego modelu.
- Kroki 1 i 2 powtórzono jeszcze 4 razy (zwykłe stare k-krotnie CV z k = 5). Wydajność została uśredniona z 5 podbiegów, co stanowiło oczekiwaną wydajność GBM przy tym pewnym zestawie wartości parametrów.
- Kroki 1-3 powtórzono dla 17 innych „rzędów” na siatce.
Po zakończeniu określono najlepsze wartości parametrów z powyższego ćwiczenia i dopasowano GBM przy użyciu tych wartości parametrów i pełnego zestawu treningowego. Jego wydajność oszacowano na i-tym zestawie testowym.
Gdy cały ten proces został wykonany 25 razy, GBM dysponowało 25 miarami wydajności. Następnie zebrano ich dla RF w dokładnie ten sam sposób.
Po porównaniu i wybraniu GBM, spojrzałem na te 25 miar wydajności i wziąłem średnią i błąd Stnda, aby określić przedział ufności dla modelu GBM na tych danych.
Odpowiedzi:
Wyobraź sobie, że zamiast wybierać GBM vs. RF, wybierałeś spośród 100 różnych klasyfikatorów GBM (zakładając, że trening GBM używa pewnego rodzaju losowości i przypisujesz im losowe nasiona od 1 do 100). Następnie wybierz jeden z tych 100 GBM jako najlepszy GBM. Ale prawie na pewno jest tak, że jeden ze 100 modeli, który wybrałeś, miał szczęście, że pokonał 99 rodzeństwa, więc twoje prognozy wydajności będą optymistyczne.
Użyłeś tylko dwóch uczniów i nie zostali przeszkoleni przez identyczny algorytm, więc twój pojedynczy GBM prawdopodobnie nie miał na niego dużej presji selekcyjnej (szczególnie jeśli znacznie przewyższył RF), ale twój szacunek błędów nadal będzie trochę optymistycznie.
źródło
Wygląda na to, że próbowałeś mieszać dwie techniki, z których każda jest zgodna z prawem, ale sposób, w jaki to zrobiłeś, sprawia wrażenie, jakbyś miał wycieki danych między sprawami.
Na niższym poziomie wydaje się, że prawidłowo używasz CV. Co sugerowałoby, że najwyższy poziom powinien być również CV, co spowoduje zagnieżdżenie CV, ale twój najwyższy poziom nie jest CV.
Na najwyższym poziomie wygląda na to, że mógłbyś chcieć przeprowadzić walidację bootstrapu, w którym to przypadku podwójny bootstrap działałby dla górnego i dolnego poziomu, ale twój najwyższy poziom nie jest właściwym bootstrapem.
Możesz zajrzeć do tego artykułu wymiany stosów. oraz artykuły, do których prowadzi, i być może zrestrukturyzują twój najwyższy poziom, aby był CV. Zauważ też, że nikt inny niż Frank Harrell publikuje posty w tym wątku i sugeruje powtórzenie CV wiele razy. (Byłem zszokowany, myśląc, że jedno powtórzenie powinno to zrobić.)
źródło