Wprowadzenie do wielowymiarowych splajnów regresji adaptacyjnej
Gdy związek między zbiorem zmiennych predykcyjnych a zmienną odpowiedzi ma charakter liniowy, często możemy zastosować regresję liniową , która zakłada, że związek między daną zmienną predykcyjną a zmienną odpowiedzią ma postać:
Y = β 0 + β 1 X + ε
Jednak w praktyce związek między zmiennymi może w rzeczywistości być nieliniowy, a próba zastosowania regresji liniowej może skutkować słabo dopasowanym modelem.
Jednym ze sposobów wyjaśnienia nieliniowej zależności między predyktorem a zmienną odpowiedzi jest użycie regresji wielomianowej , która przyjmuje postać:
Y = β 0 + β 1 X + β 2 X 2 + … + β godz
W tym równaniu h nazywany jest „stopniem” wielomianu. W miarę zwiększania wartości h model staje się bardziej elastyczny i jest w stanie dostosować się do danych nieliniowych.
Regresja wielomianowa ma jednak pewne wady:
1. Regresja wielomianowa może łatwo dopasować zbiór danych, jeśli stopień h zostanie wybrany zbyt duży. W praktyce h rzadko jest większe niż 3 lub 4, ponieważ poza tym punktem odpowiada po prostu szumowi zbioru treningowego i nie uogólnia dobrze niewidocznych danych.
2. Regresja wielomianowa narzuca na cały zbiór danych funkcję globalną, która nie zawsze jest dokładna.
Alternatywą dla regresji wielomianowej są wielowymiarowe krzywe regresji adaptacyjnej .
Podstawowa idea
Wielowymiarowe krzywe regresji adaptacyjnej działają w następujący sposób:
1. Podziel zbiór danych na k części.
Najpierw dzielimy zbiór danych na k różnych elementów. Punkty, w których dzielimy zbiór danych, nazywane są węzłami .
Identyfikujemy węzły, oceniając każdy punkt dla każdego predyktora jako potencjalny węzeł i tworząc model regresji liniowej przy użyciu cech kandydujących. Punktem, który może zredukować najwięcej błędów w modelu, jest węzeł.
Po zidentyfikowaniu pierwszego węzła powtarzamy proces w celu znalezienia kolejnych węzłów. Na początek możesz znaleźć tyle węzłów, ile uznasz za rozsądne.
2. Dopasuj funkcję regresji do każdej części, tworząc funkcję zawiasu.
Kiedy już wybierzemy węzły i dopasujemy model regresji do każdego elementu zbioru danych, otrzymamy tak zwaną funkcję przegubową , oznaczoną jako h(xa) , gdzie a jest wartością progową.
Na przykład funkcja zawiasu dla modelu jednowęzłowego może wyglądać następująco:
- y = β 0 + β 1 (4,3 – x) jeśli x < 4,3
- y = β 0 + β 1 (x – 4,3) jeśli x > 4,3
W tym przypadku ustalono, że wybór 4,3 jako wartości progowej pozwolił na maksymalną redukcję błędu spośród wszystkich możliwych wartości progowych. Następnie dopasowujemy inny model regresji do wartości poniżej 4,3 w porównaniu do wartości powyżej 4,3.
Funkcja przegubu z dwoma węzłami może wyglądać następująco:
- y = β 0 + β 1 (4,3 – x) jeśli x < 4,3
- y = β 0 + β 1 (x – 4,3) jeśli x > 4,3 i x < 6,7
- y = β 0 + β 1 (6,7 – x) jeśli x > 6,7
W tym przypadku ustalono, że wybór wartości progowych 4,3 i 6,7 pozwolił na maksymalną redukcję błędu spośród wszystkich możliwych wartości progowych. Następnie dopasowujemy jeden model regresji do wartości poniżej 4,3, inny model regresji do wartości pomiędzy 4,3 a 6,7, a kolejny model regresji do wartości powyżej 4,3.
3. Wybierz k w oparciu o k-krotną walidację krzyżową.
Wreszcie, gdy już dopasujemy kilka różnych modeli przy użyciu różnej liczby węzłów dla każdego modelu, możemy przeprowadzić k-krotną weryfikację krzyżową , aby zidentyfikować model, który generuje najniższy testowy błąd średniokwadratowy (MSE).
Jako model najlepiej generalizujący na nowe dane wybierany jest model z najniższym testem MSE.
Zalety i wady
Wielowymiarowe krzywe regresji adaptacyjnej mają następujące zalety i wady:
Zalety :
- Można go stosować zarówno do problemów regresyjnych, jak i klasyfikacyjnych .
- Działa to dobrze w przypadku dużych zbiorów danych.
- Oferuje szybkie obliczenia.
- Nie wymaga to standaryzacji zmiennych predykcyjnych.
Wady:
- Zwykle nie działa tak dobrze, jak metody nieliniowe, takie jak losowe lasy i maszyny zwiększające gradient.
Jak dopasować modele MARS w R i Pythonie
Poniższe samouczki zawierają szczegółowe przykłady dopasowywania wielowymiarowych splajnów regresji adaptacyjnej (MARS) w językach R i Python:
Wielowymiarowe krzywe regresji adaptacyjnej w R
Wielowymiarowe krzywe regresji adaptacyjnej w Pythonie