Der Lernprozess
Beim überwachten Lernen durchläuft das System einen Trainings- und einen Testzyklus. Hier lernst du, wie man die Trefferquote misst und was „lernen" beim k-NN bedeutet.
Was bedeutet „lernen" beim k-NN?
k-NN ist faul (lazy learning) — es speichert nur die Trainingsdaten. Trotzdem können wir sagen, dass es „gelernt" hat, wenn es die Testdaten korrekt klassifiziert. Das „Lernen" besteht hier aus zwei Dingen:
- Welche Trainingsdaten haben wir ihm gegeben?
- Welches k haben wir gewählt?
Beides kann man variieren und dann die Trefferquote auf den Testdaten messen.
Trefferquote berechnen
Die Trefferquote ist der Anteil der korrekt klassifizierten Testdaten:
Bevor du das Programm ausführst: In den Trainingsdaten steht ein ungewöhnlich kleiner Apfel bei (115, 4) — direkt zwischen den Birnen. Der fünfte Testpunkt (116, 4) liegt dicht daneben und ist in Wirklichkeit eine Birne. Wird er richtig klassifiziert? Schreibe deine Vermutung auf.
Die Ausgabe der Trefferquote sieht anders aus, als du sie auf Papier schreibst. Die Online-IDE gibt Kommazahlen ohne .0 aus: Aus 100.0 wird auf dem Bildschirm 100, aus 80.0 wird 80. Wenn du also 80 % liest, obwohl du 80.0 % erwartet hast, ist alles in Ordnung.
k darf nicht größer sein als die Anzahl der Trainingsdaten. In diesem Programm gibt es 9 Trainingspunkte, also sind Werte von 1 bis 9 erlaubt. Bei einem größeren k greift klassifiziere über das Ende des Feldes hinaus und das Programm bricht ab.
a) Führe das Programm aus. Wie hoch ist die Trefferquote bei k = 3?
b) Ändere k auf 1. Welcher Testpunkt wird jetzt falsch klassifiziert — und warum gerade dieser?
c) Ändere k auf 9, also auf alle Trainingsdaten. Was passiert mit der Trefferquote, und woran liegt es?
d) Entferne den Ausreißer (115, 4) aus den Trainingsdaten und teste noch einmal mit k = 1. Was ändert sich?
Tipp 1: Wo soll ich hinschauen?
Das Programm schreibt für jeden Testpunkt eine Zeile mit richtig oder FALSCH. Notiere dir für jedes k, welche Zeile umspringt — nicht nur, wie viele.
Tipp 2: zu c)
Bei k = 9 stimmen alle Trainingspunkte ab, egal wie weit sie entfernt sind. Zähle nach: Wie viele Äpfel und wie viele Birnen gibt es insgesamt? Dann steht das Ergebnis für jeden Testpunkt schon vorher fest.
Die Trefferquote hängt ab von:
- Qualität und Menge der Trainingsdaten — schlecht verteilte Daten führen zu schlechten Vorhersagen
- Wahl von k — zu klein: anfällig für Ausreißer; zu groß: Mehrheit dominiert immer
- Verteilung der Testdaten — Testdaten, die weit von allen Trainingspunkten entfernt liegen, sind schwer zu klassifizieren
Trainings- und Testdaten im Bild
Hier stehen dieselben neun Trainingspunkte und dieselben fünf Testpunkte wie im Programm. Gefüllte Formen sind Trainingsdaten, hohle Formen sind Testdaten. Die Testdaten stimmen nie mit ab — sie werden nur klassifiziert und gezählt.
a) Stelle k nacheinander auf 1, 3 und 9 und lies die Trefferquote auf den Testdaten ab. Es müssen dieselben Werte herauskommen wie in der Tabelle der Lösung.
b) Darüber steht die Trefferquote auf den Trainingsdaten. Bei k = 1 ist sie 100 %, ganz gleich, wie die Daten aussehen. Woran liegt das — und was folgt daraus für ihre Aussagekraft?
c) Der kleine Apfel bei (115 | 4) liegt mitten in den Birnen. Suche bei k = 1 die Stelle, an der die Grenze eine kleine Insel um ihn herum bildet. Welcher Testpunkt liegt in dieser Insel?
d) Stelle k auf 9. Die Fläche hat nur noch eine Farbe. Erkläre mit Aufgabe c) von oben, warum.