Trudno jest bezpośrednio porównać kNN i regresję liniową, ponieważ są to bardzo różne rzeczy, jednak myślę, że kluczową kwestią jest tutaj różnica między „modelowaniem ” a „posiadaniem założeń dotyczących ”.f(x)f(x)
Podczas regresji liniowej konkretnie modeluje się , często coś między liniami gdzie jest terminem szumu Gaussa. Można ustalić, że model maksymalnego prawdopodobieństwa jest równoważny modelowi błędu minimalnej sumy kwadratów.f(x)f(x)=wx+ϵϵ
KNN, z drugiej strony, jak sugeruje twój drugi punkt, zakłada, że możesz aproksymować tę funkcję lokalnie stałą funkcją - pewną miarą odległości między -sesami, bez konkretnego modelowania całego rozkładu.x
Innymi słowy, regresja liniowa często ma dobry pomysł na wartość dla niektórych niewidzialnych z samej wartości , podczas gdy kNN potrzebuje innych informacji (tj. Sąsiadów k), aby przewidzieć , ponieważ wartość i sama wartość nie podadzą żadnych informacji, ponieważ nie ma modelu dla .f(x)xxf(x)xf(x)
EDYCJA: powtórzenie tego poniżej, aby ponownie wyrazić to jaśniej (patrz komentarze)
Oczywiste jest, że zarówno regresja liniowa, jak i metody najbliższego sąsiedztwa mają na celu przewidzenie wartości dla nowego . Teraz są dwa podejścia. Regresja liniowa przebiega dalej, zakładając, że dane spadają na linię prostą (plus minus pewien szum), a zatem wartość y jest równa wartości razy nachylenie linii. Innymi słowy, wyrażenie liniowe modeluje dane jako linię prostą.y=f(x)xf(x)
Teraz metody najbliższego sąsiada nie dbają o to, jak wyglądają dane (nie modelują danych), tzn. Nie dbają o to, czy jest to linia, parabola, koło itp. Wszystko, co zakłada, to to, że i będą podobne, jeśli i są podobne. Zauważ, że to założenie jest w przybliżeniu prawdziwe dla niemal każdego modelu, włączając wszystkie te, o których wspomniałem powyżej. Jednak metoda NN nie może stwierdzić, w jaki sposób wartość jest powiązana z (czy jest to linia, parabola itp.), Ponieważ nie ma modelu tej zależności, po prostu zakłada, że można ją aproksymować przez patrząc na bliskie punkty.f(x1)f(x2)x1x2f(x)x
Regresja liniowa jest oparta na modelu, ponieważ zakłada się strukturę danych w celu wygenerowania modelu. Podczas ładowania zestawu danych do programu statystycznego i użyć go do uruchomienia regresji liniowej wyjście jest w rzeczywistości model: . Możesz wprowadzić nowe dane do tego modelu i uzyskać prognozowane dane wyjściowe, ponieważ przyjęto założenia dotyczące sposobu generowania zmiennej wyjściowej.f^(X)=β^X
W KNN tak naprawdę nie ma modelu - istnieje tylko założenie, że obserwacje, które znajdują się blisko siebie w przestrzeni prawdopodobnie będą zachowywać się podobnie pod względem zmiennej wyjściowej. Nie wprowadzasz nowej obserwacji do „modelu KNN”, po prostu określasz, które istniejące obserwacje są najbardziej podobne do nowej obserwacji i przewidujesz zmienną wyjściową dla nowej obserwacji na podstawie danych treningowych.X
źródło
Termin „oparty na modelu” jest synonimem „oparty na dystrybucji” przy omawianiu metod grupowania. Regresja liniowa przyjmuje założenia dystrybucyjne (że błędy są gaussowskie). KNN nie przyjmuje żadnych założeń dystrybucyjnych. To jest rozróżnienie.
źródło
kNN jest oparty na instancji
Aby dokonać prognozy dla nowej obserwacji, musisz zachować cały zbiór danych szkoleniowych, ponieważ nie ma modelu o tym zestawie danych.
Tak działa kNN: biorąc pod uwagę nową obserwację, obliczymy odległość między tą nową obserwacją a wszystkimi innymi obserwacjami w zbiorze danych szkoleniowych. Następnie dostajesz sąsiadów (najbliższych nowej obserwacji).
Jeśli , to patrzymy na 5 najbliższych obserwacji. „lokalnie stała funkcja” oznacza, że po wybraniu tych 5 obserwacji nie dbamy o odległości. Są takie same, mają takie samo znaczenie dla prognozy.k=5
Jak znaleźć model?
Teraz, jeśli spróbujemy znaleźć funkcję, która nie jest „lokalnie stała”, byłby to rozkład normalny. W takim przypadku otrzymasz algorytm o nazwie Linear Discriminant Analysis lub Naive Bayes (w zależności od innych założeń).
źródło