Dlaczego ktoś miałby używać KNN do regresji?

26

Z tego, co rozumiem, możemy zbudować funkcję regresji, która mieści się w przedziale danych treningowych.

Na przykład (potrzebny jest tylko jeden panel): wprowadź opis zdjęcia tutaj

Jak przewidzieć przyszłość za pomocą regresora KNN? Ponownie wydaje się, że przybliża tylko funkcję mieszczącą się w przedziale danych treningowych.

Moje pytanie: Jakie są zalety korzystania z regresora KNN? Rozumiem, że jest to bardzo potężne narzędzie do klasyfikacji, ale wydaje się, że działałoby gorzej w scenariuszu regresji.

gung - Przywróć Monikę
źródło
Czy możesz wyjaśnić, co rozumiesz przez „przewidywanie w przyszłość”? Czy masz szeregi czasowe i chcesz przeprowadzić prognozowanie, czy próbujesz dopasować relację między 2 zmiennymi i chcesz użyć tej w przyszłości, aby odgadnąć wartość Y na podstawie znanej wartości X?
gung - Przywróć Monikę
1
Na przykład, jeśli chciałbym przewidzieć wartość Y taką, że X = 15 z powyższego obrazu. Regresor KNN nie zrobiłby tego dobrze?
1
Zgadzam się z tobą, że jeśli trenowałeś na zbiorze z ale spodziewałeś się, że możesz zobaczyć wartości znacznie przekraczające to, co jest w twoich danych, wówczas nieparametryczne metody lokalne mogą nie być idealne. Zamiast tego możesz skorzystać z tej wiedzy w dziedzinie i zdefiniować model parametryczny, który obejmuje twoją wiedzę o tym, jak ma się zachowywać „nieobserwowany” . x xx[0,5]xx
Meadowlark Bradsher
1
Przykładem skutecznego wykorzystania KNN do regresji jest przepowiednia baseballowa PECOTA Nate'a Silvera. O zaletach i wadach można przeczytać w Wikipedii na temat PECOTA lub w artykułach prasowych takich jak ten: macleans.ca/authors/colby-cosh/…
Flounderer
6
Również w celu uogólnienia, gdy zdobędziesz wiedzę na temat statystyki (lub eksploracji danych / uczenia maszynowego itp.), Przekonasz się, że odpowiedzi na bardzo ogólne pytania, takie jak twoje, będą często sparafrazowaną wersją „to zależy”. Wiedzieć, od czego „zależy” i dlaczego jest to wiedza.
Meadowlark Bradsher

Odpowiedzi:

17

Metody lokalne, takie jak K-NN, mają sens w niektórych sytuacjach.

Jeden przykład, który zrobiłem w pracy szkolnej, dotyczył przewidywania wytrzymałości na ściskanie różnych mieszanin składników cementu. Wszystkie te składniki były względnie nielotne w odniesieniu do odpowiedzi lub siebie nawzajem, a KNN dokonał wiarygodnych prognoz na jej temat. Innymi słowy, żadna ze zmiennych niezależnych nie miała nieproporcjonalnie dużej zmienności, aby nadać modelowi indywidualnie lub ewentualnie wzajemną interakcję.

Weź to z odrobiną soli, ponieważ nie znam techniki badania danych, która ostatecznie to pokazuje, ale intuicyjnie wydaje się rozsądne, że jeśli twoje cechy mają pewien proporcjonalny stopień wariancji, nie wiem, jaki odsetek, możesz mieć Kandydat KNN. Z pewnością chciałbym wiedzieć, czy opracowano w tym celu jakieś badania i techniki.

Jeśli myślisz o tym z ogólnej perspektywy domeny, istnieje szeroka klasa aplikacji, w których podobne „przepisy” dają podobne wyniki. Z pewnością zdawało się to opisywać sytuację przewidywania wyników mieszania cementu. Powiedziałbym, że gdybyś miał dane, które zachowywały się zgodnie z tym opisem, a ponadto twoja miara odległości była również naturalna dla danej dziedziny i na koniec, że posiadałeś wystarczające dane, wyobrażam sobie, że powinieneś uzyskać przydatne wyniki z KNN lub innej metody lokalnej .

Korzystasz również z wyjątkowo niskiego odchylenia, kiedy używasz lokalnych metod. Czasami uogólnione modele addytywne (GAM) równoważą odchylenie i wariancję, dopasowując każdą zmienną za pomocą KNN, tak aby:

y^=fa1(x1)+fa2)(x2))++fan(xn)+ϵ

Część addytywna (symbole plus) chroni przed dużą wariancją, a użycie KNN zamiast chroni przed dużym odchyleniem.fan(xn)

Nie odpisałbym KNN tak szybko. Ma swoje miejsce.

Meadowlark Bradsher
źródło
1
Ta odpowiedź na temat skalowania danych dla KNN może pomóc wyrazić, co masz na myśli przez „proporcjonalny stopień odchyleń”. stats.stackexchange.com/questions/287425/…
eric_kernfeld
5

Nie lubię tego mówić, ale tak naprawdę krótka odpowiedź brzmi, że „przewidywanie w przyszłość” nie jest tak naprawdę możliwe, nie z knn ani z żadnym innym obecnie istniejącym klasyfikatorem lub regresorem.

Jasne, że możesz ekstrapolować linię regresji liniowej lub hiper-płaszczyznę maszyny SVM, ale ostatecznie nie wiesz, jaka będzie przyszłość, bo jak wiemy, linia może być tylko małą częścią krzywej rzeczywistości. Staje się to widoczne, gdy spojrzysz na metody bayesowskie, takie jak na przykład procesy gaussowskie, zauważysz dużą niepewność, gdy tylko opuścisz „znaną domenę wejściową”.

Oczywiście możesz spróbować uogólnić od tego, co stało się dzisiaj, do tego, co prawdopodobnie wydarzy się jutro, co można łatwo zrobić za pomocą znanego regresora (np. Liczby klientów z zeszłego roku w czasie świąt Bożego Narodzenia mogą dać ci dobrą wskazówkę na temat liczby tegorocznych). Jasne, że inne metody mogą uwzględniać trendy i tak dalej, ale na koniec możesz zobaczyć, jak dobrze to działa, jeśli chodzi o giełdę lub długoterminowe prognozy pogody.

miauczeć
źródło
+1 za ostrzeżenie przed ekstrapolacją i za omówienie (względnie konserwatywnego) zachowania KNN podczas ekstrapolacji.
eric_kernfeld
KNN jest bardziej konserwatywny niż regresja liniowa podczas ekstrapolacji dokładnie z powodu zachowania odnotowanego przez OP: może wytwarzać prognozy tylko w zakresie już zaobserwowanych wartości Y. Może to być zaletą w wielu sytuacjach.
eric_kernfeld
1

Pierwszy przykład „Jak mógłbym przewidzieć przyszłość za pomocą regresora KNN?”.

sunt+1sunt..sunt-6
sunt

wmimiktsunt..sunt-6tomorrow(wmimikt))sunt+1

wmimikt
wmimik
tomorrow0..tomorrow9
prmirejadot(wmimik)tomorrow0..tomorrow9

Tune ciężary, patrz np odwrotny odległość ważony-IDW-interpolacji-with-python ,
a odległość metryki dla „najbliższego sąsiada” w 7d.

„Jakie są zalety korzystania z regresora KNN?”
Do dobrych komentarzy innych dodam łatwe do kodowania i zrozumienia i skaluje do dużych zbiorów danych.
Wady: wrażliwy na dane i tuning, niezbyt zrozumiały .




XY
Yt=b0Xt+b1Xt-1+...
Yt+1
Yt+1=za0Yt+za1Yt-1+...

Więc twój pierwszy wiersz „możemy zbudować tylko funkcję regresji mieszczącą się w przedziale danych treningowych” wydaje się dotyczyć mylącego słowa „regresja”).

denis
źródło
1

Od wprowadzenia do uczenia statystycznego , sekcja 3.5:

W rzeczywistej sytuacji, w której prawdziwy związek nie jest znany, można wyciągnąć wniosek, że KNN powinien być faworyzowany w stosunku do regresji liniowej, ponieważ w najgorszym przypadku będzie nieco gorszy niż regresja liniowa, jeśli prawdziwa relacja jest liniowa i może dać znacznie lepsze wynika, jeśli prawdziwa zależność jest nieliniowa.

Ale są ograniczenia (nie z podręcznika, tylko to, co doszedłem):

  1. wystarczająca liczba obserwacji na predyktor.
  2. liczba predyktorów nie powinna być zbyt duża.
Hangyu Tian
źródło