k-fold Walidacja krzyżowa uczenia się w zespole

20

Jestem zdezorientowany, jak podzielić dane na k-krotnie krzyżową weryfikację uczenia się w zespole.

Zakładając, że mam kompletny system uczenia się do klasyfikacji. Moja pierwsza warstwa zawiera modele klasyfikacji, np. Svm, drzewa decyzyjne.

Moja druga warstwa zawiera model głosowania, który łączy prognozy z pierwszej warstwy i daje ostateczną prognozę.

Jeśli użyjemy walidacji 5-krotnie, myślę o użyciu 5-krotności w następujący sposób:

  • 3 fałdy do treningu pierwszej warstwy
  • 1 krotnie na trening drugiej warstwy
  • 1 krotnie do testowania

Czy to właściwy sposób? Czy dane treningowe dla pierwszej i drugiej warstwy powinny być niezależne? Myślę, że powinny one być niezależne, aby ramy uczenia się zespołu były solidne.

Mój przyjaciel sugeruje, że dane treningowe dla pierwszej i drugiej warstwy powinny być takie same, tj

  • 4 zakładki na trening pierwszej i drugiej warstwy
  • 1 krotnie do testowania

W ten sposób będziemy mieli dokładniejszy błąd ramowego zestawu uczenia się, a iteracyjne dostrajanie ramowego będzie bardziej dokładne, ponieważ opiera się ono na pojedynczych danych szkoleniowych. Co więcej, druga warstwa może być nastawiona na niezależne dane treningowe

Wszelkie porady są mile widziane

Michael
źródło

Odpowiedzi:

26

Uczenie się zespołowe odnosi się do kilku różnych metod. Zwiększenie i zapakowanie są prawdopodobnie dwoma najczęstszymi. Wygląda na to, że próbujesz zaimplementować metodę uczenia się złożonego o nazwie układanie w stosy . Stacking ma na celu poprawę dokładności poprzez połączenie prognoz z kilku algorytmów uczenia się. Istnieje wiele sposobów układania w stosy i niewiele rygorystycznych teorii. Jest to jednak intuicyjne i popularne.

Rozważ podejście swojego przyjaciela. Dopasowujesz modele pierwszej warstwy do czterech z pięciu fałd, a następnie dopasowujesz model drugiej warstwy (głosowanie) przy użyciu tych samych czterech fałd. Problem polega na tym, że druga warstwa faworyzuje model z najniższym błędem treningowym. Używasz tych samych danych, aby dopasować modele i opracować procedurę agregacji tych modeli. Druga warstwa powinna łączyć modele przy użyciu prognoz na podstawie próby . Twoja metoda jest lepsza, ale jest sposób na jeszcze lepsze.

Nadal będziemy pomijać jedną zakładkę do celów testowych. Weź cztery fałdy i użyj 4-krotnego CV, aby uzyskać prognozy poza próbą dla każdego z modeli pierwszej warstwy dla wszystkich czterech fałd. To znaczy, pomiń jedną z czterech fałd i dopasuj modele do pozostałych trzech, a następnie przewiduj na podstawie wstrzymanych danych. Powtórz dla wszystkich czterech fałd, aby uzyskać prognozy poza próbą dla wszystkich czterech fałd. Następnie dopasuj model drugiej warstwy do tych prognoz poza próbą. Następnie ponownie dopasuj modele pierwszej warstwy do wszystkich czterech zagięć. Teraz możesz przejść do piątej zakładki, której jeszcze nie dotykałeś. Użyj modeli pierwszej warstwy pasujących do wszystkich czterech zagięć wraz z modelem drugiej warstwy, aby oszacować błąd w przetrzymywanych danych. Możesz powtórzyć ten proces ponownie z innymi fałdami wystającymi z dopasowania modelu pierwszej i drugiej warstwy.

Jeśli wydajność jest zadowalająca, wygeneruj prognozy poza próbą dla modeli pierwszej warstwy na wszystkich pięciu fałdach, a następnie dopasuj do nich model drugiej warstwy. Następnie dopasuj modele pierwszej warstwy po raz ostatni do wszystkich danych i użyj ich z modelem drugiej warstwy na dowolnych nowych danych!

Na koniec kilka ogólnych porad. Zyskasz więcej korzyści, jeśli twoje modele pierwszej warstwy będą się od siebie różniły. Jesteś na dobrej drodze, używając SVM i drzew decyzyjnych, które są bardzo różne od siebie. Ponieważ w modelu drugiej warstwy występuje efekt uśredniania, możesz spróbować stopniowo dopasowywać modele pierwszej warstwy, szczególnie jeśli masz ich dużo. Druga warstwa jest na ogół czymś prostym, a ograniczenia takie jak brak negatywności wag i monotoniczność są powszechne. Na koniec pamiętaj, że układanie w stosy opiera się na weryfikacji krzyżowej, która stanowi jedynie oszacowanie rzeczywistego ryzyka. Jeśli otrzymujesz bardzo różne poziomy błędów i bardzo różne wagi modeli pomiędzy fałdami, oznacza to, że twoje oszacowanie ryzyka oparte na CV jest bardzo zróżnicowane. W takim przypadku możesz rozważyć proste połączenietwoich modeli pierwszej warstwy. Lub możesz pójść na kompromis, układając z ograniczeniami maksymalnej / minimalnej masy umieszczonej na każdym modelu pierwszej warstwy.

MichaelJ
źródło
Dziękujemy za bardzo pomocne sugestie. Nie rozumiem twojego czwartego akapitu. Wydaje mi się, że ponownie się szkoli? Myślałem, że twój trzeci akapit podsumował proponowaną metodę?
Michael
1
Jak zwykle w przypadku walidacji krzyżowej, gdy jesteśmy zadowoleni z modelu, ponownie trenujemy z wykorzystaniem wszystkich danych. Modele opisane w akapicie trzecim nie pasują do przetrzymywanych danych. Wyciąganie danych to narzędzie do oceny i wyboru modelu. Zawsze powinieneś dopasować ostateczny model do wszystkich danych.
MichaelJ
Wydaje mi się, że takie podejście jest podobne do sprzężonej sieci neuronowej
Michael
Świetne wyjaśnienie. Brakuje tylko diagramu;)
Jos