Ich verstehe die Prämisse des kNN-Algorithmus für räumliche Daten. Und ich weiß, dass ich diesen Algorithmus erweitern kann, um ihn für jede kontinuierliche Datenvariable (oder für Nenndaten mit Hamming-Abstand) zu verwenden. Welche Strategien werden jedoch beim Umgang mit höherdimensionalen Daten angewendet?
Angenommen, ich habe eine Datentabelle (x [1], x [2], x [3], ..., x [n]) und möchte eine Reihe von Klassifizierern erstellen, um eine dieser Spalten vorherzusagen (sag x [n]). Mit dem kNN-Algorithmus würde ich zwei beliebige Spalten aus den verbleibenden Spalten (x [1] -x [n-1]) auswählen, gegen die trainiert werden soll. Angenommen, ich könnte x [1] und x [2] auswählen und daraus einen Klassifikator erstellen. Oder ich könnte x [1] und x [4] auswählen, oder ich könnte x [5] und x [8] usw. auswählen. Ich könnte sogar nur eine einzelne Spalte auswählen und daraus Klassifikatoren erstellen, oder 3 Spalten und erstellen ein Klassifikator davon. Gibt es einen Vorteil bei der Verwendung höherer Dimensionen (2D, 3D usw.) oder sollten Sie einfach x-1-Klassifikatoren für einzelne Dimensionen erstellen und deren Vorhersagen auf irgendeine Weise aggregieren?
Da das Erstellen all dieser Klassifizierer aus allen möglichen Kombinationen der Variablen rechenintensiv wäre. Wie könnte ich diese Suche optimieren, um die besten kNN-Klassifikatoren aus diesem Satz zu finden? Und wenn ich eine Reihe von Klassifikatoren gefunden habe, wie kann ich ihre Ausgabe am besten zu einer einzigen Vorhersage kombinieren? Die Abstimmung könnte die einfachste Antwort auf diese Frage sein. Oder gewichten Sie jede Stimme mit Fehlerraten aus den Trainingsdaten für jeden Klassifikator.
Wie wenden die meisten Implementierungen kNN auf ein allgemeineres Lernen an?