Niedawno stworzyłem małą aplikację przeglądarki, której można używać do zabawy z tymi pomysłami: Scatterplot Smoothers (*).
Oto niektóre dane, które utworzyłem, z dopasowaniem wielomianowym niskiego stopnia
Oczywiste jest, że kwadratowy wielomian nie jest po prostu wystarczająco elastyczny, aby dobrze dopasować dane. Mamy regiony o bardzo dużym odchyleniu, od do wszystkie dane są poniżej dopasowania, a po wszystkie dane są powyżej krzywej.0.60.850.85
Aby pozbyć się stronniczości, możemy zwiększyć stopień krzywej do trzech, ale problem pozostaje, krzywa sześcienna jest nadal zbyt sztywna
Tak więc nadal zwiększamy stopień, ale teraz napotykamy odwrotny problem
Ta krzywa śledzi dane zbyt blisko i ma tendencję do latania w kierunkach niezbyt dobrze odzwierciedlonych przez ogólne wzorce danych. Tu pojawia się regularyzacja. Z tą samą krzywą stopni (dziesięć) i pewną dobrze dobraną regularyzacją
Mamy naprawdę fajne dopasowanie!
Warto trochę skupić się na jednym aspekcie dobrze wybranej powyżej. Kiedy dopasowujesz wielomiany do danych, masz dyskretny zestaw opcji dla stopnia. Jeśli krzywa stopnia trzeciego jest niedopasowana, a krzywa stopnia czwartego jest przeładowana, nie ma dokąd pójść na środku. Regulararyzacja rozwiązuje ten problem, ponieważ zapewnia ciągły zakres parametrów złożoności do zabawy.
jak twierdzisz „Naprawdę ładnie się dopasowujemy!”. Dla mnie wszystkie wyglądają tak samo, a mianowicie niejednoznaczne. Jakiego rozumowania używasz, aby zdecydować, co jest dobre i złe?
Uczciwy punkt.
Zakładam tutaj, że dobrze dopasowany model nie powinien mieć dostrzegalnego wzoru w resztkach. Teraz nie planuję resztek, więc musisz trochę popracować, patrząc na zdjęcia, ale powinieneś być w stanie użyć swojej wyobraźni.
Na pierwszym zdjęciu, z krzywą kwadratową dopasowaną do danych, widzę następujący wzór w resztkach
- Od 0,0 do 0,3 są one równomiernie umieszczone powyżej i poniżej krzywej.
- Od 0,3 do około 0,55 wszystkie punkty danych znajdują się powyżej krzywej.
- Od 0,55 do około 0,85 wszystkie punkty danych znajdują się poniżej krzywej.
- Począwszy od 0,85, wszystkie znów znajdują się powyżej krzywej.
Nazwałbym te zachowania lokalnymi uprzedzeniami , istnieją regiony, w których krzywa nie jest dobrze zbliżona do średniej warunkowej danych.
Porównaj to do ostatniego dopasowania z sześciennym splajnem. Nie mogę wybrać żadnego regionu na oko, w którym dopasowanie nie wygląda tak, jakby przebiegało dokładnie przez środek masy punktów danych. Jest to ogólnie (choć nieprecyzyjnie) to, co rozumiem przez dobre dopasowanie.
Uwaga końcowa : weź to wszystko jako ilustrację. W praktyce nie zalecam stosowania wielomianowych rozszerzeń podstawy dla jakiegokolwiek stopnia wyższego niż . Ich problemy są dobrze omówione gdzie indziej, ale na przykład:2
- Ich zachowanie na granicach danych może być bardzo chaotyczne, nawet przy regularyzacji.
- W żadnym sensie nie są lokalni . Zmiana danych w jednym miejscu może znacząco wpłynąć na dopasowanie w zupełnie innym miejscu.
Zamiast tego, w sytuacji, którą opisujesz, polecam użycie naturalnych splajnów sześciennych wraz z regularyzacją, co daje najlepszy kompromis między elastycznością a stabilnością. Możesz to zobaczyć, dopasowując niektóre splajny w aplikacji.
(*) Uważam, że działa to tylko w chrome i firefox ze względu na moje użycie niektórych nowoczesnych funkcji javascript (i ogólne lenistwo, aby to naprawić w safari i np.). Kod źródłowy jest tutaj , jeśli jesteś zainteresowany.