Warum sollte jemand KNN für die Regression verwenden?


26

Nach meinem Verständnis können wir nur eine Regressionsfunktion aufbauen, die innerhalb des Intervalls der Trainingsdaten liegt.

Zum Beispiel (nur eines der Panels ist erforderlich): Bildbeschreibung hier eingeben

Wie würde ich mit einem KNN-Regressor die Zukunft vorhersagen? Auch hier scheint es sich nur um eine Funktion zu handeln, die innerhalb des Intervalls der Trainingsdaten liegt.

Meine Frage: Was sind die Vorteile eines KNN-Regressors? Ich verstehe, dass es ein sehr leistungsfähiges Instrument für die Klassifizierung ist, aber es scheint, dass es in einem Regressionsszenario schlecht abschneiden würde.


Können Sie klarstellen, was Sie unter "Voraussagen für die Zukunft" verstehen? Haben Sie Zeitreihen und möchten Prognosen erstellen, oder möchten Sie eine Beziehung zwischen zwei Variablen herstellen und diese in Zukunft verwenden, um einen Y-Wert von einem bekannten X-Wert zu erraten?
gung - Reinstate Monica

1
Zum Beispiel, wenn ich den Wert Y so vorhersagen wollte, dass X = 15 aus dem obigen Bild. Ein KNN-Regressor würde es nicht richtig machen?

1
Ich würde Ihnen zustimmen, wenn Sie an einem Set mit x [ 0 , 5 trainieren würdennicht-parametrische lokale Methoden möglicherweise nicht ideal sind ]aber erwarten, dass Sie Werte von x weit über den in Ihren Datenenthaltenen Werten sehen. Stattdessen möchten Sie möglicherweise dieses Domänenwissen verwenden und ein parametrisches Modell definieren, das Ihr Wissen darüber enthält, wie sich x voraussichtlich"unbeobachtet"verhält. x[0,5]xx
Meadowlark Bradsher

1
Ein Beispiel für eine erfolgreiche Verwendung von KNN für die Regression ist die PECOTA-Baseball-Vorhersage von Nate Silver. Sie können über die Vor- und Nachteile aus dem Wikipedia-Artikel auf PECOTA oder Zeitungsartikeln wie diesem nachlesen
Flounderer

6
Wenn Sie sich mit Statistik (oder Data Mining / Maschinelles Lernen usw.) auskennen, werden Sie feststellen, dass Antworten auf sehr allgemeine Fragen wie Ihre häufig eine umschriebene Version von "es kommt darauf an" sind. Zu wissen, worauf es ankommt und warum das Wissen.
Meadowlark Bradsher

Antworten:


17

Lokale Methoden wie K-NN sind in manchen Situationen sinnvoll.

Ein Beispiel, das ich in der Schule gemacht habe, hatte mit der Vorhersage der Druckfestigkeit verschiedener Mischungen von Zementbestandteilen zu tun. Alle diese Inhaltsstoffe waren in Bezug auf die Reaktion oder die Reaktion relativ nicht flüchtig, und KNN machte zuverlässige Vorhersagen. Mit anderen Worten, keine der unabhängigen Variablen hatte eine unverhältnismäßig große Varianz, um dem Modell entweder einzeln oder möglicherweise durch gegenseitige Interaktion zu verleihen.

Nehmen Sie dies mit einem Körnchen Salz, weil ich keine Datenuntersuchungstechnik kenne, die dies schlüssig zeigt, aber intuitiv erscheint es vernünftig, wenn Ihre Merkmale einen angemessenen Grad an Abweichungen aufweisen, ich weiß nicht, welchen Anteil Sie haben könnten KNN-Kandidat. Ich würde gerne wissen, ob Studien und daraus resultierende Techniken zu diesem Zweck entwickelt wurden.

Wenn Sie es aus einer verallgemeinerten Domänenperspektive betrachten, gibt es eine breite Klasse von Anwendungen, bei denen ähnliche "Rezepte" ähnliche Ergebnisse liefern. Dies schien sicherlich die Situation zu beschreiben, in der die Ergebnisse des Vermischens von Zement vorhergesagt wurden. Ich würde sagen, wenn Sie Daten hätten, die sich gemäß dieser Beschreibung verhalten, und zusätzlich, dass Ihr Abstandsmaß für die vorliegende Domäne natürlich ist und Sie ausreichende Daten hätten, würde ich mir vorstellen, dass Sie nützliche Ergebnisse von KNN oder einer anderen lokalen Methode erhalten sollten .

Sie profitieren auch von einer extrem geringen Verzerrung, wenn Sie lokale Methoden anwenden. Manchmal gleichen generalisierte additive Modelle (GAM) Bias und Varianz aus, indem jede einzelne Variable mit KNN so angepasst wird, dass:

y^=f1(x1)+f2(x2)++fn(xn)+ϵ

Der additive Anteil (die Pluszeichen) schützt vor hoher Varianz bei Verwendung von KNN anstelle von fn(xn)

Ich würde KNN nicht so schnell abschreiben. Es hat seinen Platz.


1
Diese Antwort auf die Skalierungsdaten für knn kann Ihnen dabei helfen, auszudrücken, was Sie unter "proportionalem Grad an Abweichungen" verstehen. stats.stackexchange.com/questions/287425/…
eric_kernfeld

5

Ich sage es nicht gern, aber eigentlich lautet die kurze Antwort: "Voraussagen in die Zukunft" ist weder mit einem Knn noch mit einem anderen derzeit existierenden Klassifikator oder Regressor wirklich möglich.

Sicher können Sie die Linie einer linearen Regression oder die Hyperebene einer SVM extrapolieren, aber am Ende wissen Sie nicht, wie die Zukunft aussehen wird. Soweit wir wissen, ist die Linie möglicherweise nur ein kleiner Teil einer kurvigen Realität. Dies wird deutlich, wenn Sie beispielsweise Bayes'sche Methoden wie Gauß'sche Prozesse betrachten, und Sie werden eine große Unsicherheit feststellen, sobald Sie die "bekannte Eingabedomäne" verlassen.

Natürlich können Sie versuchen, zu verallgemeinern, was heute passiert ist und was morgen wahrscheinlich passiert, was mit einem bekannten Regressor problemlos möglich ist (z. B. können die Kundenzahlen des letzten Jahres in der Weihnachtszeit einen guten Hinweis auf die diesjährigen Zahlen geben). Sicher, andere Methoden können Trends und so weiter beinhalten, aber am Ende können Sie sehen, wie gut das funktioniert, wenn es um die Börse oder langfristige Wettervorhersagen geht.


+1 zur Vorsicht vor Extrapolation und zur Diskussion des (relativ konservativen) Verhaltens von KNN bei der Extrapolation.
eric_kernfeld

KNN ist konservativer als eine lineare Regression, wenn genau aufgrund des von OP festgestellten Verhaltens extrapoliert wird: Es können nur Vorhersagen im Bereich der bereits beobachteten Y-Werte erstellt werden. Dies kann in vielen Situationen von Vorteil sein.
eric_kernfeld

1

Zuerst ein Beispiel für "Wie würde ich mit einem KNN-Regressor die Zukunft vorhersagen?".

sunt+1sunt..sunt6
sunt (in einer Stadt) in den letzten 10 Jahren, 3650 Zahlen.

weektsunt..sunt6tomorrow(weekt))sunt+1 .

weekt
week
tomorrow0..tomorrow9
predict(week)tomorrow0..tomorrow9

Stimmen Sie die Gewichte ab, siehe zB Inverse-Distance-Weighted-Idw-Interpolation-With-Python ,
und die Distanz - Metrik für "Nearest neighbour" in 7d.

"Was sind die Vorteile eines KNN-Regressors?"
Zu den guten Kommentaren anderer würde ich hinzufügen, dass sie einfach zu codieren und zu verstehen sind und dass sie auf Big Data skalieren.
Nachteile: daten- und stimmungsempfindlich, wenig verständnisvoll .




XY
Yt=b0Xt+b1Xt1+...
Yt+1
Yt+1=a0Yt+a1Yt1+...

Ihre erste Zeile "Wir können nur eine Regressionsfunktion aufbauen, die im Intervall der Trainingsdaten liegt" scheint sich also um das verwirrende Wort "Regression" zu handeln.)


1

Aus einer Einführung in das statistische Lernen , Abschnitt 3.5:

In einer realen Situation, in der die wahre Beziehung unbekannt ist, könnte man die Schlussfolgerung ziehen, dass KNN der linearen Regression vorgezogen werden sollte, da sie im schlimmsten Fall geringfügig schlechter ist als die lineare Regression, wenn die wahre Beziehung linear ist, und möglicherweise wesentlich besser ist ergibt sich, wenn die wahre Beziehung nicht linear ist.

Aber es gibt Einschränkungen (nicht aus dem Lehrbuch, wie ich festgestellt habe):

  1. eine ausreichende Anzahl von Beobachtungen pro Prädiktor.
  2. Die Anzahl der Prädiktoren sollte nicht zu groß sein.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.