Czy w tym podejściu do modelowania występuje zbyt duże dopasowanie?

11

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 gbmi randomForestpakiety 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:

  1. 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).
  2. Wydajność w 5. grupie obliczono przy użyciu tego modelu.
  3. 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.
  4. 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.

B_Miner
źródło
Chciałbym zobaczyć więcej szczegółów w pierwszym punkcie wypunktowania w sekcji „Powtórz 25 razy w poniższym ...”. Które dane są pięciokrotnie i w jaki sposób wykorzystywane są dane dla każdego zestawu meta-parametrów?
Wayne
@Wayne, proszę zobaczyć moją edycję.
B_Miner

Odpowiedzi:

5

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.

rrenaud
źródło
Jeśli po wybraniu GBM jako ostatecznego modelu (i udaję, że wyciągnąłem pojedynczy zestaw testów na samym początku), biorę wszystkie dane treningowe i dopasowuję do niego GBM (ponownie używając CV, aby wybrać parametry algorytmu) następnie oceniam ten zestaw testowy. Czy naprawdę uważasz, że miara błędu w tym jednym zestawie testowym była lepsza niż w przypadku 25 powtórnych próbek? Z tą częścią mam problem. Czy nie można użyć tych samych danych do wyboru modelu (GBM przez RF lub GBM w porównaniu ze 100 innymi opcjami) ORAZ zastosować wynikającą z tego miarę błędu?
B_Miner
Mam oczywiście pomysł, aby nie wykorzystywać danych treningowych do oceny wyników, ale ta sprawa wydawała się inna i ważna ....
B_Miner
@B_Miner Myślę, że to bardzo niewielkie wykroczenie, ale nie jestem w komisji ds. Tezy: P
rrenaud
Skoro istnieje wykroczenie, czy przypisalibyście je „przy użyciu tych samych danych do wyboru modelu (GBM przez RF lub GBM w porównaniu do 100 innych opcji) ORAZ użyć miary błędu, która z tego wynikła?”
B_Miner
3

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ć.)

Wayne
źródło
Co rozumiesz przez najwyższy poziom - 25 powtórzeń powtarzającej się grupy opuszczania?
B_Miner
Przeczytałem komentarze dr Harrella. Myślę, że istnieje rozdźwięk między niektórymi poradami a eksploracją danych (duże dane). 25 iteracji, które ukończyłem, zajęło 4 dni, a próba negatywnych przypadków była znacznie mniejsza.
B_Miner