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.