Czy nadmierne dopasowanie jest tak złe, że nie powinieneś wybierać modelu, który pasuje, nawet jeśli jego błąd testowy jest mniejszy? Nie. Ale powinieneś mieć uzasadnienie wyboru.
To zachowanie nie jest ograniczone do XGBoost. Jest to wspólny wątek wszystkich technik uczenia maszynowego; znalezienie właściwego kompromisu między niedostatecznym a nadmiernym dopasowaniem. Formalna definicja to kompromis wariancji odchylenia (Wikipedia) .
Kompromis wariancji odchylenia
Poniżej przedstawiono uproszczenie kompromisu wariancji odchylenia, aby usprawiedliwić wybór modelu.
Mówimy, że model ma duże odchylenie, jeśli nie jest w stanie w pełni wykorzystać informacji zawartych w danych. Jest zbyt zależny od ogólnych informacji, takich jak najczęstszy przypadek, sposób odpowiedzi lub kilka zaawansowanych funkcji. Odchylenie może wynikać z niewłaściwych założeń, na przykład przy założeniu, że zmienne są normalnie rozmieszczone lub że model jest liniowy.
Mówimy, że model ma dużą wariancję, jeśli wykorzystuje zbyt dużo informacji z danych. Opiera się na informacjach, które są ważne tylko w przedstawionym mu zestawie szkoleniowym, który nie uogólnia wystarczająco dobrze. Zazwyczaj model bardzo się zmieni, jeśli zmienisz zestaw treningowy, stąd nazwa „duża wariancja”.
Definicje te są bardzo podobne do definicji niedopasowania i przeszacowania. Jednak definicje te są często zbyt uproszczone, by stanowić przeciwieństwa, jak w
- Model jest niedopasowany, jeśli zarówno błąd szkolenia, jak i błąd testu są wysokie. Oznacza to, że model jest zbyt prosty.
- Model jest przeregulowany, jeśli błąd testu jest wyższy niż błąd szkolenia. Oznacza to, że model jest zbyt złożony.
Uproszczenia te są oczywiście pomocne, ponieważ pomagają wybrać odpowiednią złożoność modelu. Ale przeoczają ważny punkt, fakt, że (prawie) każdy model ma zarówno odchylenie, jak i składnik wariancji. Opis niedopasowania / przeszacowania mówi ci, że masz zbyt dużo uprzedzeń / zbyt dużej wariancji, ale (prawie) zawsze masz oba .
Jeśli chcesz uzyskać więcej informacji na temat kompromisu odchylenia uprzedzenia, są one bardzo pomocne w wizualizacji i dobrym zasobie dostępnym za pośrednictwem Google. Każdy podręcznik do nauki maszyn będzie zawierał sekcję dotyczącą kompromisu wariancji odchylenia, oto kilka
- Wprowadzenie do uczenia statystycznego i Elementy uczenia statystycznego (dostępne tutaj) .
- Rozpoznawanie wzorów i uczenie maszynowe, autor: Christopher Bishop.
- Uczenie maszynowe: perspektywa probabilistyczna, autor: Kevin Murphy.
Miłym postem na blogu, który pomógł mi zrozumieć, jest Scott Undermann's Understanding the Bias-Variance Tradeoff .
Zastosowanie do twojego problemu
Więc masz dwa modele,
MARSXGBoostPociąg MAE∼ 4.0∼ 0,3Przetestuj MAE∼ 4.0∼ 2.4Niska wariancja, większe odchylenie ,Wyższa wariancja, niższe odchylenie ,
i musisz wybrać jeden. Aby to zrobić, musisz zdefiniować lepszy model. Parametry, które należy uwzględnić przy podejmowaniu decyzji, to złożoność i wydajność modelu.
- Ile „jednostek” złożoności chcesz wymienić na „jednostkę” wydajności?
- Większa złożoność wiąże się z większą wariancją. Jeśli chcesz, aby Twój model dobrze uogólniał na zbiorze danych nieco innym niż ten, w którym trenowałeś, powinieneś dążyć do mniejszej złożoności.
- Jeśli potrzebujesz modelu, który możesz łatwo zrozumieć, możesz to zrobić kosztem wydajności, zmniejszając złożoność modelu.
- Jeśli dążysz do jak najlepszej wydajności zestawu danych, o którym wiesz , że pochodzi z tego samego procesu generatywnego, co zestaw treningowy, możesz manipulować złożonością, aby zoptymalizować błąd testowy i użyć go jako miernika. Dzieje się tak, gdy Twój zestaw treningowy jest losowo próbkowany z większego zestawu, a Twój model zostanie zastosowany na tym zestawie. Tak jest na przykład w większości zawodów Kaggle.
Celem nie jest znalezienie modelu, który „nie pasuje”. To jest znalezienie modelu, który ma najlepszy kompromis wariancji odchylenia. W tym przypadku argumentowałbym, że redukcja odchylenia osiągnięta przez model XGBoost jest wystarczająco dobra, aby uzasadnić wzrost wariancji.
Co możesz zrobić
Jednak prawdopodobnie można to zrobić lepiej, dostrajając hiperparametry.
Możliwe jest zwiększenie liczby rund i zmniejszenie wskaźnika uczenia się. Coś, co jest „dziwne” w zwiększaniu gradientu, to fakt, że przekroczenie go powyżej punktu, w którym błąd treningu osiągnął zero, wydaje się nadal poprawiać błąd testu (jak omówiono tutaj: Czy głębsze jest lepsze tylko wtedy, gdy płytka jest dobra? ). Możesz spróbować ćwiczyć swój model nieco dłużej w zestawie danych po ustawieniu innych parametrów,
1 / 214. Może to być żargon, ale jeśli twoje cechy mają stopień interakcji 3 (z grubsza: kombinacja 4 cech nie jest potężniejsza niż kombinacja 3 tych cech + czwarta), to rosnące drzewa o rozmiarze większym niż 3 to szkodliwy. Dwa drzewa o głębokości trzy będą miały większą moc uogólniającą niż jedno drzewo o głębokości cztery. Jest to dość skomplikowana koncepcja i nie będę się teraz nią zajmował, ale możesz sprawdzićten zbiór dokumentów na początek. Pamiętaj również, że głębokie drzewa prowadzą do dużej wariancji!
Używanie podpróbkowania, zwanego workowaniem , jest świetne w celu zmniejszenia wariancji. Jeśli twoje pojedyncze drzewa mają dużą wariancję, spakowanie uśredni drzewa, a średnia ma mniejszą wariancję niż pojedyncze drzewa. Jeśli po dostrajaniu głębokości drzew nadal napotykasz dużą wariancję, spróbuj zwiększyć podpróbkowanie (czyli zmniejszyć ułamek wykorzystywanych danych). Podpróbkowanie przestrzeni cech również osiąga ten cel.