Frage:
Ist kNN am besten für die Klassifizierung geeignet?
gnjago
2014-10-08 12:56:22 UTC
view on stackexchange narkive permalink

Ich wollte wissen, ob kNN das beste Ergebnis für die Klassifizierung liefert. Da es nicht modellbasiert ist, verliert es keine Details und vergleicht jedes Trainingsmuster, um die Vorhersage zu erhalten. Daher sollte die Testleistung gut sein.

Ich verstehe, dass das Testen sehr langsam und anfällig für Rauschen ist. Abgesehen davon gibt es jedoch Gründe, warum kNN nicht die beste Leistung für die Klassifizierung liefern sollte?

Fünf antworten:
inzl
2014-10-08 17:21:56 UTC
view on stackexchange narkive permalink

Es gibt keinen besten Klassifikator, es hängt immer vom Kontext ab, welche Art von Daten / Problem vorliegt. Wie Sie bereits erwähnt haben, ist kNN bei vielen Beobachtungen langsam, da es nicht im Voraus über Daten verallgemeinert wird und die historische Datenbank jedes Mal durchsucht, wenn eine Vorhersage erforderlich ist.

Bei kNN müssen Sie sorgfältig über das Abstandsmaß nachdenken. Wenn beispielsweise ein Merkmal in 1000 Kilometern gemessen wird, ein anderes Merkmal in 0,001 Gramm, dominiert das erste Merkmal das Entfernungsmaß. Sie können die Funktionen normalisieren oder bestimmte Wichtigkeitsgewichte basierend auf dem Domänenwissen angeben.

Außerdem wird in einem sehr hochdimensionalen Raum der Abstand zu allen Nachbarn mehr oder weniger gleich und die Vorstellung von nächsten und fernen Nachbarn verschwimmt.

ivanmp
2015-01-31 19:09:14 UTC
view on stackexchange narkive permalink

Sie beziehen sich auf Bias.

Da kNN nicht modellbasiert ist, weist es eine niedrige Bias auf, dies bedeutet jedoch auch, dass es eine hohe Varianz aufweisen kann. Dies wird als Bias-Varianz-Kompromiss bezeichnet.

Grundsätzlich gibt es keine Garantie dafür, dass nur aufgrund der geringen Bias eine gute "Testleistung" erzielt wird. Im Gegenteil, es könnte leicht zu einer Überanpassung der Daten und einer sehr geringen Testleistung führen.

Es gibt ein wirklich großartiges Buch von Hastie, Tibrishiani und Friedman mit dem Titel Die Elemente des statistischen Lernens, das kurz ist diskutiert das Thema. Es ist (legal) kostenlos online verfügbar hier. Auf Seite 37 wird der Bias-Varianz-Kompromiss im Zusammenhang mit kNN erläutert. Daher sollte er für Sie besonders nützlich sein.

Jonathan Lisic
2014-10-08 19:08:53 UTC
view on stackexchange narkive permalink

Kennen Sie $ k $? Wenn $ k $ unbekannt ist, sind alle Wetten ungültig.

Wie definieren Sie "am besten"? Im statistischen Sinne bedeutet dies am besten, das Risiko mit einer quadratischen Fehlerverlustfunktion zu minimieren. Wenn dies nicht der Fall ist und selbst wenn dies der Fall ist, wie werden Sie Methoden vergleichen?

Wie von inzl angesprochen, gibt es keinen besten Klassifikator. Wenn Sie wissen, dass Ihre Daten eine sphärische Form haben, möchten Sie möglicherweise einen k-Mittel-basierten Ansatz ausprobieren, und allein unter dieser Bedingung wäre der k-Mittel-basierte Ansatz statistisch effizienter (ganz zu schweigen davon, dass k-Mittel rechnerisch effizienter sind ).

Es sollte auch beachtet werden, dass kNN für große Datenmengen auch für moderate Dimensionen auseinander fällt, weshalb wir ungefähre nächste Nachbarn verwenden (ein aktives Forschungsgebiet).

Memming
2014-10-08 18:02:55 UTC
view on stackexchange narkive permalink

Bei unendlichen Daten nähert sich k-NN unter idealen Bedingungen garantiert der Bayes-Fehlerrate. Sie haben wahrscheinlich keine unendlichen Daten und Ihr k ist wahrscheinlich nicht groß genug (es muss sich der Unendlichkeit nähern).

In der Praxis gibt es keinen Grund, warum k-NN der beste Klassifikator bei endlichen Daten sein sollte!

Praveen
2017-04-15 08:25:04 UTC
view on stackexchange narkive permalink

Ich würde zumindest NaiveBayes zusammen mit knn in Betracht ziehen.

Sie können Ihre Trainingsdaten mit knn und Naive Bayes kreuzvalidieren und die beste auswählen.

Das OP fragte, ob kNN am besten ist.Nur Naive Bayes zu erwähnen, beantwortet die Frage nicht.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...