Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).
KI für Alle: Programmierung: k-nächste Nachbarn (k-NN) mit Scikit-Learn
Das Wichtigste aus dem Video
Tipp auf eine Zeit – das Video springt genau dorthin.
Transkriptautomatisch erstellt · 72 Zeilen
- [Musik] unter K nearest neighbors oder auf Deutsch K nächste Nachbarn abgekürzt knn
- versteht man ein klassifikationsverfahren das nach dem Prinzip arbeitet sag mir wer deine Nachbarn sind und ich sage dir wer du
- bist denn der K nächste nachbarnalgorithmus ordnet eine neue Beobachtung der Klasse zu zu der die meisten RK Nachbarn mit bekannter
- Klassenzugehörigkeit gehören dabei wird die Nachbarschaft durch den Abstand zwischen den Datenpunkten bestimmt am Anfang importieren wir alle
- Module die wir in unserem Programm brauchen werden als erstes siehst du ein neues pyenmodul Namens seborn seborn ist eigentlich ein visualisierungsmodul zur
- Erstellung statistischer Grafiken es bietet aber die Funktion load DataSet an mit deren Hilfe man einige referenzdatensätze aus einem Online
- Repository laden kann in diesem Video arbeiten wir mit dem Parma archipelago Antarctica Penguin Datensatz dieser Datensatz enthält Informationen über 344
- Pinguine die auf drei Inseln des parmaarchipels in der Antarktis beheimatet sind die Merkmale des Datensatzes enthalten verschiedene
- Messdaten die über die Pinguine gesammelt wurden wie Länge und Höhe des Schnabels Länge der Flosse und die Körpermasse bzw das Gewicht das
- zielmerkmal beschreibt die entsprechende Pinguinart dabei gehören die Beobachtungen bzw die Pinguine im Datensatz zu einer der drei Arten
- Adli chinstrap zu deutsch zügelpinguin und gentu zu deutsch eselspinguin Wir laden den Datensatz und speichern ihn in der Variable penguins
- der Datensatz wird in einer Datenstruktur namens dataframe gespeichert wir gehen auf diese Datenstruktur nicht weiter ein lassen
- uns aber mit der Funktion head die ersten fünf Zeilen des Datensatzes mit den merkmalsbezeichnungen Anzeigen in der Ausgabe sehen wir bereits dass
- einige Beobachtung fehlende Werte enthalten dazu kommen wir später noch mal zuerst wandeln wir die Datenstruktur dataframe in der unser Datensatz
- momentan vorliegt in die Datenstruktur ndarray um dafür verwenden wir die Funktion tumpai für die weitere Analyse
- konzentrieren wir uns nur auf die Merkmale Schnabellänge schnabelhöhe flossenlänge und die Körpermasse also wählen wir diese aus
- dem away penguins a aus und Speich die Werte im ND Array xraw ab die erste Spalte des Arrays penguins A enthält die entsprechenden Pinguinarten also wählen
- wir diese aus und speichern die Pinguinarten im zalway y war ab wie wir vorhin gesehen haben fehlen bei einigen Beobachtungen die Werte genau genommen
- betrifft es zwei Beobachtungen da man zwischen diesen und den vollständigen Beobachtungen keine Distanzen berechnen kann bekommt der
- klassifikationsalgorithmus Probleme deshalb entfernen wir die unvollständigen Beobachtungen aus dem Datensatz mach dir keine Sorgen wenn du
- die Befehle dafür nicht verstehst das wird von dir an dieser Stelle nicht erwartet nach Bereinigung verbleiben im Datensatz noch 342 Beobachtungen um sich
- ein besseres Bild über die Verteilung der Beobachtung zu machen visualisieren wir Sie in einem Diagramm da es schwierig ist die Datenpunkte durch alle
- vier Merkmale grafisch darzustellen beschränken wir uns auf die Darstellung der Beobachtung durch die Werte der Merkmale Schnabellänge schnabelhöhe und
- die flossenlänge in einem dreidimensionalen Diagramm dabei markieren wir die Zugehörigkeit zur Pinguinart durch unterschiedliche Farben
- der Datenpunkte die Adel Pinguine werden durch blaue die ginstrap Pinguine durch rote und die gentu Pinguine durch grüne Punkte
- dargestellt im Diagramm sehen wir dass die adeli Pinguine zwar durchschnittlich einen längeren Schnabel als die chinstrap Pinguine haben aber eine klare
- Trennung zwischen diesen beiden Pinguinarten anhand der drei gewählten Merkmale nicht zu beobachten ist dagegen lassen sich die gen 2 Pinguine durch
- eine längere Flosse von den anderen Arten besser trennen bevor wir ein kN näste nachbarnmodell erstellen zerlegen wir
- die Datenmatrix in eine Trainings und eine testmenge dafür benutzen wir die Funktion train Test Split des untermoduls model selection von cyced
- learn diese Funktion erwartet als Eingabe die Datenmatrix mit dem entsprechenden zielmerk mal mit dem Wert 0,1 für den Parameter testsiz legen wir
- fest dass die testmenge 10% aller Beobachtung enthalten soll in den Voreinstellungen der Funktion ist festgelegt dass die Beobachtungen vor
- der Zerlegung gemischt werden für diesen Datensatz ist es besonders wichtig diese Voreinstellung beizubehalten weil die Beobachtung in der ursprünglichen
- Datenmatrix nach dem zielmerkmal sortiert sind würden wir auf das Mischen verzichten wäre die resultierende trainingsmenge für die gesamte
- Datenmenge nicht repräsentativ da eine Art der Pinguine entweder unterrepräsentiert oder gar nicht in der trainingsmenge vertreten wäre mit der
- Wertzuweisung des Parameters random state stellen wir aber sicher dass die Beobachtung im Datensatz auf eine bestimmte Weise durchmischt werden damit
- sichern wir auch die Reproduzierbarkeit unserer Zerlegung beim Parma archipelago Antarctica Penguin datatensatz besteht
- unsere Aufgabe darin ein knneste nach Modell zu entwickeln das anhand der Merkmale eines Pinguins prognostizieren kann zu welcher Pinguinart dieser gehört
- ein K nachbarmodell wird mit der Funktion K neighbors classifier des pycet learn untermoduls nearest neighbors erstellt mit dem Parameter n
- neighbors wird die Anzahl der nächsten Nachbarn festgelegt deren Klassenzugehörigkeit bei der Zuordnung einer neuen Beobachtung herangezogen
- wird wir speichern den Wert dieses Parameters in der Variable K und weisen ihren Wert den Parameter n neighbors zu auf diese Weise findest du die Stelle im
- programmchneller die verändert werden muss wenn du den K nächste nachbarnklassifikator für einen anderen Wert von K ausprobieren
- möchtest neben der nachbarzahl kannst du durch einige andere Parameter der Funktion die distanzfunktion vordefinieren mit deren Hilfe die
- Nachbarn bestimmt werden in den Voreinstellungen ist die euklidische distanzfunktion festgelegt die du sicherlich noch aus der Schule
- kennst das anpassende Modells an die Trainingsdaten erfolgt mit der Funktion fit bei diesem Modell findet kein richtiges Training statt stattdessen
- werden die Beobachtung der trainingsmenge intern in einer speziellen Datenstruktur gespeichert die das schnelle Finden der knächsten
- Nachbarn für eine gegebene distanzfunktion ermöglicht mit der Funktion predict kannst du die Klasse für neue
- Beobachtung prognostizieren wir prognostizieren die klassenzuordnung für alle Beobachtungen der testmenge um sehen zu können wie gut das
- knä nachbarmodell die Klasse für neue Beobachtung schätzen kann geben wir exemplarisch für die erste Beobachtung der testmenge die tatsächliche und die
- durch das knn klassifikationsmodell geschätzte Klasse bzw Pinguinart aus in der Ausgabe sehen wir dass die durch das klassifikationsmodell prognostizierte
- Klasse mit der tatsächlichen Klasse für diese eine Beobachtung übereinstimmt um die Leistung eines klassifikationsmodells zu bewerten
- reicht es nicht aus die tatsächliche und die prognostizierte Klasse für eine Beobachtung miteinander zu vergleichen vielmehr werden diese beiden Werte für
- alle Beobachtung der testmenge miteinander verglichen und zu einem gütemaß zusammengefasst eins dieser gütemaße ist accuracy die auf Deutsch
- auch Genauigkeit oder korrekt klassifizierungsrate genannt wird accuracy ist die Anzahl der richtigen Vorhersagen im Verhältnis zur Gesamtzahl
- aller gemachten Vorhersagen im untermodul Matrix von pycet learn steht die Funktion Score für die Berechnung der accuracy zur
- Verfügung diese Funktion erwartet zwei eindimensionale Arrays als Eingabe dabei soll das erste away die tatsächlichen und das zweite away die geschätzten
- Klassen der Beobachtung enthalten als Ergebnis liefert die Funktion den genauigkeitswert für die Schätzung die tatsächlichen
- klassenzugehörigkeiten der Beobachtung der testmenge sind im a test gespeichert die prognostizierten Klassen haben wir im a PR abgelegt wir übergeben diese
- beiden as der Funktion accuracy Score umuracy für unser K näste nachbarmodell mit K =3 zu berechnen wie du in der Ausgabe sehen
- kannst erreicht unser klassifikationsmodell ein accuracy Wert von 0,77 das heißt für 77% der Beobachtung
- wurde die Klasse richtig prognostiziert wir erhöhen jetzt den Wert für K und schauen wie sich die accuracy verändert für k= 5 fät die
- accuracy auf 0, 66 rter für k= 9 steigt die accuracy wieder auf 0,77 du kannst selbst ausprobieren wie sich die accuracy für unterschiedliche
- Werte von K verändert beim kN nachbarnklassifikator findet zwar keine Anpassung des Modells auf die Trainingsdaten statt dafür kannst du
- durch Ausprobieren unterschiedlicher Werte für den Parameter k und die Wahl der distanzfunktion dein klassifikationsmodell für einen
- bestimmten Datensatz selbst optimieren zum Schluss stellen wir noch die beobacht der testmenge in einem dreidimensionalen Diagramm graphisch da
- dafür verwenden wir wieder nur die ersten drei Merkmale die Schnabellänge die schnabelhöhe und die flossenlänge wir markieren die
- Pinguinarten der Beobachtung durch unterschiedliche Farben dabei stellen wir die tatsächlichen Klassen der Beobachtung durch Rauten und die
- prognostizierten durch Kreuze da im Diagramm kannst du sehen welche Beobachtungen richtig und welche falsch klassifiziert wurden bei den
- klassifizierten Beobachtung stimmen die Farben der Rauten mit den Farben der kreuzen überein bei den falsch klassifizierten Beobachtungen sind Raute
- und Kreuze unterschiedlich eingefärbt die meisten Fehler passieren bei den Beobachtungen die zwischen den Beobachtungen unterschiedlicher Klassen
- liegen in diesem Video hast du gelernt wie man ein knächste nachbarnklassifikationsmodell erstellt und mit seiner Hilfe die
- Klassenzugehörigkeit für neue Beobachtung prognostiziert außerdem weißt du jetzt wie wie man das gütemaß accuracy für ein
- klassifikationsmodell berechnet um die Leistungsfähigkeit des Modells zu [Musik] bewerten
Zum Nachlesen
KlassifikationsverfahrenDas Erzeugen von Strukturen aus vorhandenen Daten wird auch als Mustererkennung, Diskriminierung oder überwachtes Lernen bezeichnet. Dabei werden …
ClusteranalyseUnter Clusteranalyse (Clustering-Algorithmus, gelegentlich auch: Ballungsanalyse) versteht man ein Verfahren zur Entdeckung von Ähnlichkeitsstrukturen in …
Maschinelles LernenMaschinelles Lernen (ML) entwickelt, untersucht und verwendet statistische Algorithmen, auch Lernalgorithmen genannt. Solche Algorithmen können lernen, …