KNN - Einstieg
Einstiegsaufgabe
Bevor KNN erklärt wird, machen wir ein einfaches anschauliches Beispiel dazu.
Dabei solltest Du mit Hilfe von Python einen Plot zeichnen und zwar Folgend:
Vorbereitung
In Thonny können die Python-Packages einfach installiert werden:
gehe auf Tools->manage packages…
suche nach matplotlib
installiere das Package
suche nach numpy
wenn schon installiert, musst du nichts machen, ansonsten installiere das Package.
Wenn die Installation nicht klappt, versuche es über die Shell: unter Tools->Open system shell… und installiert dort matplotlib mit pip install matplotlib.
Tutorial
1.Importiere die korrekten libraries.
import matplotlib.pyplot as plt
import numpy as np
2. Wir wollen Punkte nun in unseren Plot hineinzeichnen. Und zwar Folgende: (1,2), (0.5, 3), (1.25, 4), (2.3, 1.75), (1,2.3), (2.5, 2.3), (2, 3.1), (1.5, 3), (5.5, 6), (6, 7), (5.5, 5.5), (4.5, 7.25), (4.5, 6.75), (4.75, 6.25), (5.1, 6.5).
2.1. Erstelle dazu zwei Listen. Eine Liste für die X-Werte und eine für die Y-Werte.
Listen erstellt man mit den eckigen Klammern. Gib den einzelnen Liste gute Namen, z.B.
x_points = [1, 0.5, 1.25, 2.3, 1, 2.5, 2, 1.5, 5.5, 6, 5.5, 4.5, 4.5, 4.75, 5.1]
y_points= [2,3,4, 1.75, 2.3, 3.1, 3,6, 7, 5.5, 7.25, 6.75, 6.25, 6.5, 7.5]
2.2. Punkte nun mit matplotlib zeichnen.
Zeichne nun die Punkte in dein Koordinatensystem ein. Was kannst Du beobachten?
plt.plot(x_points, y_points, 'o')
plt.show()
Du siehst, dass die Punkte irgendwie geclusterd wirken.
3. Den Punkten Farben geben und einen neuen Punkt klassifizieren.
3.1. Farbe
Du kannst Deinen Punkten Farben geben. Gib den Punkten, welche sich unten links befinden, die Farbe rot, den Punkten oben rechts die Farbe blau. (Du musst deine erstellten Listen dazu wieder aufsplitten). Um deinen Punkten eine Farbe zu geben, musst Du ihnen das Attribut color ="" mitgeben.
plt.plot(x_points_blue, y_points_blue, 'o', color ="blue")
plt.show()
Wir haben nun den Punkten eine neue Farbe zugeteilt. Nennen wir sie Klasse rot und Klasse blau.
x_points_red = [1, 0.5, 1.25, 2.3, 1, 2.5, 2, 1.5]
y_points_red = [2, 3, 4, 1.75, 2.3, 3.1, 3, 6]
x_points_blue = [5.5, 6, 5.5, 4.5, 4.5, 4.75, 5.1]
y_points_blue = [7, 5.5, 7.25, 6.75, 6.25, 6.5, 7.5]
plt.plot(x_points_red, y_points_red, 'o',color="red")
plt.plot(x_points_blue, y_points_blue, 'o', color="blue")
plt.show()
3.2. einen neuen Punkt zeichnen.
Zeichne einen weiteren Punkt in dein Koordinatensystem: (2,3). Welche Farbe wurdest Du ihm zuweisen? Und was ist mit (3.5, 4.5)?
Den Punkt (2,3) würden wir wohl der "roten" Klasse zuweisen. (3.5, 4.5) ist vielleicht schwieriger. Da könnten evt. beide Klassen in Frage kommen.
Und bei genau solchen Klassifizierungsproblemen, kommt KNN ins Spiel. Dazu im Unterricht dann mehr.
Wie KNN funktioniert, findest Du im Theoriekapitel: KNN-Theorie