K-Nearest Neighbors kurz und knapp:
- K-Nearest Neighbors ist ein Klassifikationsmodell. Es bestimmt die Kategorie von unbekannten Daten.
- K-Nearest Neighbors suchst die nächsten K „Verwandten“. Die am häufigsten vorkommenden Verwandten wird übernommen
Ein neuer Punkt wird zum Datensatz hinzugefügt. Das Nearest Neighbors Modell sucht nach dem nächsten Punkt in den Trainingsdaten und übernehmen die Kategorie.
Distanzmatrix
| Kobra | Natter | Huhn | Frosch | Python | Alligator | Kategorie |
Kobra | – |
|
|
|
|
| Reptil |
Natter | 0,1 | – |
|
|
|
| Reptil |
Huhn | 2,5 | 2,4 | – |
|
|
| Kein Reptil |
Frosch | 1,3 | 1,2 | 2,1 | – |
|
| Kein Reptil |
Python | 0,4 | 0,4 | 2,6 | 1,5 | – | N/A | Schätzung: Reptil |
Alligator | 1,1 | 1,2 | 0,6 | 1,3 | N/A | – | Schätzung: Kein Reptil |
Die Trainingsdaten sind Kobra, Natter, Huhn und Frosch. Diesen haben wir selbst zugewiesen, ob sie ein Reptil sind oder nicht. Nun kamen zwei neue Tiere hinzu: Python und Alligator. Ob diese beiden Tiere Reptilien sind, soll unser Modell bestimmen. Die Zahlenwerte in der Tabelle stehen für den Abstand zwischen den beiden Tieren. Je kleiner der Wert ist, desto näher sind beide Punkte aneinander. Daher suchen wir für jede Zeile den kleinsten Wert. Im Fall Python sind die nächsten Nachbarn Kobra und Natter mit dem Distanz-Wert 0,4. Beide sind Reptilien, daher wird die Python auch als Reptil klassifiziert. Der nächste Nachbar des Alligators ist aber das Huhn mit dem Distanz-Wert 0,6. Da das Huhn kein Reptil ist, wird auch der Alligator nicht als Reptil klassifiziert, was falsch ist.
Um dieses Problem zu vermeiden, greift das Konzept des K-Nearest-Neighbors. Die Grundidee ist, dass wir nicht den nächsten Punkt auswählen, sondern eine gewisse Anzahl an nächsten Punkten. Wählen wir also K = 3, dann suchen wir die 3 nächsten Nachbarn des Alligators: Das Huhn, die Natter und die Kobra (sprich Reptil, Reptil, Nicht-Reptil). Da die Mehrheit dieser Tiere ein Reptil ist, wird der Alligator auch als Reptil klassifiziert.
Je größer K (die Anzahl der nächsten Nachbarn) ist, desto länger dauert die Auswertung. Wählen wir ein zu großes K kann das Ergebnis bei unbalancierten Daten verfälschen. Wenn wir z.B. 1000 Spam-Mail und 10 reguläre Mails in unserem Datensatz haben und ein K von 100 wählen, wird das Ergebnis zwangsweise eine Spam-Mail sein.
Um ein sinnvolles K auszuwählen, werden die Trainingsdaten in Trainings- und Testdaten aufgeteilt. Es werden verschiedene K Werte getestet und das K, das uns die besten Ergebnisse liefert, wählen wir aus.
Vor- und Nachteile von K-Nearest Neighbors
Vorteile:
- Das Modell lernt schnell
- Keine Mathematik notwendig
- Die Methode ist simpel zu erklären
Nachteile:
- Hoher Speicher notwendig
- Die Vorhersagen können lange dauern
- Man kann die Klassifizierung der Daten nicht durch ein mathematisches Modell erklären