Zum Inhalt springen
L

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

HeiCAD10:54 367 Aufrufe veröffentlicht Auf YouTube

Das Wichtigste aus dem Video

Tipp auf eine Zeit – das Video springt genau dorthin.

Transkriptautomatisch erstellt · 72 Zeilen
Herunterladen
  1. [Musik] unter K nearest neighbors oder auf Deutsch K nächste Nachbarn abgekürzt knn
  2. versteht man ein klassifikationsverfahren das nach dem Prinzip arbeitet sag mir wer deine Nachbarn sind und ich sage dir wer du
  3. bist denn der K nächste nachbarnalgorithmus ordnet eine neue Beobachtung der Klasse zu zu der die meisten RK Nachbarn mit bekannter
  4. Klassenzugehörigkeit gehören dabei wird die Nachbarschaft durch den Abstand zwischen den Datenpunkten bestimmt am Anfang importieren wir alle
  5. Module die wir in unserem Programm brauchen werden als erstes siehst du ein neues pyenmodul Namens seborn seborn ist eigentlich ein visualisierungsmodul zur
  6. Erstellung statistischer Grafiken es bietet aber die Funktion load DataSet an mit deren Hilfe man einige referenzdatensätze aus einem Online
  7. Repository laden kann in diesem Video arbeiten wir mit dem Parma archipelago Antarctica Penguin Datensatz dieser Datensatz enthält Informationen über 344
  8. Pinguine die auf drei Inseln des parmaarchipels in der Antarktis beheimatet sind die Merkmale des Datensatzes enthalten verschiedene
  9. 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
  10. zielmerkmal beschreibt die entsprechende Pinguinart dabei gehören die Beobachtungen bzw die Pinguine im Datensatz zu einer der drei Arten
  11. Adli chinstrap zu deutsch zügelpinguin und gentu zu deutsch eselspinguin Wir laden den Datensatz und speichern ihn in der Variable penguins
  12. der Datensatz wird in einer Datenstruktur namens dataframe gespeichert wir gehen auf diese Datenstruktur nicht weiter ein lassen
  13. uns aber mit der Funktion head die ersten fünf Zeilen des Datensatzes mit den merkmalsbezeichnungen Anzeigen in der Ausgabe sehen wir bereits dass
  14. einige Beobachtung fehlende Werte enthalten dazu kommen wir später noch mal zuerst wandeln wir die Datenstruktur dataframe in der unser Datensatz
  15. momentan vorliegt in die Datenstruktur ndarray um dafür verwenden wir die Funktion tumpai für die weitere Analyse
  16. konzentrieren wir uns nur auf die Merkmale Schnabellänge schnabelhöhe flossenlänge und die Körpermasse also wählen wir diese aus
  17. 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
  18. 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
  19. betrifft es zwei Beobachtungen da man zwischen diesen und den vollständigen Beobachtungen keine Distanzen berechnen kann bekommt der
  20. klassifikationsalgorithmus Probleme deshalb entfernen wir die unvollständigen Beobachtungen aus dem Datensatz mach dir keine Sorgen wenn du
  21. 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
  22. ein besseres Bild über die Verteilung der Beobachtung zu machen visualisieren wir Sie in einem Diagramm da es schwierig ist die Datenpunkte durch alle
  23. vier Merkmale grafisch darzustellen beschränken wir uns auf die Darstellung der Beobachtung durch die Werte der Merkmale Schnabellänge schnabelhöhe und
  24. die flossenlänge in einem dreidimensionalen Diagramm dabei markieren wir die Zugehörigkeit zur Pinguinart durch unterschiedliche Farben
  25. der Datenpunkte die Adel Pinguine werden durch blaue die ginstrap Pinguine durch rote und die gentu Pinguine durch grüne Punkte
  26. dargestellt im Diagramm sehen wir dass die adeli Pinguine zwar durchschnittlich einen längeren Schnabel als die chinstrap Pinguine haben aber eine klare
  27. Trennung zwischen diesen beiden Pinguinarten anhand der drei gewählten Merkmale nicht zu beobachten ist dagegen lassen sich die gen 2 Pinguine durch
  28. eine längere Flosse von den anderen Arten besser trennen bevor wir ein kN näste nachbarnmodell erstellen zerlegen wir
  29. die Datenmatrix in eine Trainings und eine testmenge dafür benutzen wir die Funktion train Test Split des untermoduls model selection von cyced
  30. 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
  31. fest dass die testmenge 10% aller Beobachtung enthalten soll in den Voreinstellungen der Funktion ist festgelegt dass die Beobachtungen vor
  32. der Zerlegung gemischt werden für diesen Datensatz ist es besonders wichtig diese Voreinstellung beizubehalten weil die Beobachtung in der ursprünglichen
  33. Datenmatrix nach dem zielmerkmal sortiert sind würden wir auf das Mischen verzichten wäre die resultierende trainingsmenge für die gesamte
  34. Datenmenge nicht repräsentativ da eine Art der Pinguine entweder unterrepräsentiert oder gar nicht in der trainingsmenge vertreten wäre mit der
  35. Wertzuweisung des Parameters random state stellen wir aber sicher dass die Beobachtung im Datensatz auf eine bestimmte Weise durchmischt werden damit
  36. sichern wir auch die Reproduzierbarkeit unserer Zerlegung beim Parma archipelago Antarctica Penguin datatensatz besteht
  37. unsere Aufgabe darin ein knneste nach Modell zu entwickeln das anhand der Merkmale eines Pinguins prognostizieren kann zu welcher Pinguinart dieser gehört
  38. ein K nachbarmodell wird mit der Funktion K neighbors classifier des pycet learn untermoduls nearest neighbors erstellt mit dem Parameter n
  39. neighbors wird die Anzahl der nächsten Nachbarn festgelegt deren Klassenzugehörigkeit bei der Zuordnung einer neuen Beobachtung herangezogen
  40. 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
  41. programmchneller die verändert werden muss wenn du den K nächste nachbarnklassifikator für einen anderen Wert von K ausprobieren
  42. möchtest neben der nachbarzahl kannst du durch einige andere Parameter der Funktion die distanzfunktion vordefinieren mit deren Hilfe die
  43. Nachbarn bestimmt werden in den Voreinstellungen ist die euklidische distanzfunktion festgelegt die du sicherlich noch aus der Schule
  44. kennst das anpassende Modells an die Trainingsdaten erfolgt mit der Funktion fit bei diesem Modell findet kein richtiges Training statt stattdessen
  45. werden die Beobachtung der trainingsmenge intern in einer speziellen Datenstruktur gespeichert die das schnelle Finden der knächsten
  46. Nachbarn für eine gegebene distanzfunktion ermöglicht mit der Funktion predict kannst du die Klasse für neue
  47. Beobachtung prognostizieren wir prognostizieren die klassenzuordnung für alle Beobachtungen der testmenge um sehen zu können wie gut das
  48. 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
  49. durch das knn klassifikationsmodell geschätzte Klasse bzw Pinguinart aus in der Ausgabe sehen wir dass die durch das klassifikationsmodell prognostizierte
  50. Klasse mit der tatsächlichen Klasse für diese eine Beobachtung übereinstimmt um die Leistung eines klassifikationsmodells zu bewerten
  51. 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
  52. alle Beobachtung der testmenge miteinander verglichen und zu einem gütemaß zusammengefasst eins dieser gütemaße ist accuracy die auf Deutsch
  53. auch Genauigkeit oder korrekt klassifizierungsrate genannt wird accuracy ist die Anzahl der richtigen Vorhersagen im Verhältnis zur Gesamtzahl
  54. aller gemachten Vorhersagen im untermodul Matrix von pycet learn steht die Funktion Score für die Berechnung der accuracy zur
  55. 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
  56. Klassen der Beobachtung enthalten als Ergebnis liefert die Funktion den genauigkeitswert für die Schätzung die tatsächlichen
  57. klassenzugehörigkeiten der Beobachtung der testmenge sind im a test gespeichert die prognostizierten Klassen haben wir im a PR abgelegt wir übergeben diese
  58. 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
  59. kannst erreicht unser klassifikationsmodell ein accuracy Wert von 0,77 das heißt für 77% der Beobachtung
  60. 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
  61. 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
  62. Werte von K verändert beim kN nachbarnklassifikator findet zwar keine Anpassung des Modells auf die Trainingsdaten statt dafür kannst du
  63. durch Ausprobieren unterschiedlicher Werte für den Parameter k und die Wahl der distanzfunktion dein klassifikationsmodell für einen
  64. bestimmten Datensatz selbst optimieren zum Schluss stellen wir noch die beobacht der testmenge in einem dreidimensionalen Diagramm graphisch da
  65. dafür verwenden wir wieder nur die ersten drei Merkmale die Schnabellänge die schnabelhöhe und die flossenlänge wir markieren die
  66. Pinguinarten der Beobachtung durch unterschiedliche Farben dabei stellen wir die tatsächlichen Klassen der Beobachtung durch Rauten und die
  67. prognostizierten durch Kreuze da im Diagramm kannst du sehen welche Beobachtungen richtig und welche falsch klassifiziert wurden bei den
  68. klassifizierten Beobachtung stimmen die Farben der Rauten mit den Farben der kreuzen überein bei den falsch klassifizierten Beobachtungen sind Raute
  69. und Kreuze unterschiedlich eingefärbt die meisten Fehler passieren bei den Beobachtungen die zwischen den Beobachtungen unterschiedlicher Klassen
  70. liegen in diesem Video hast du gelernt wie man ein knächste nachbarnklassifikationsmodell erstellt und mit seiner Hilfe die
  71. Klassenzugehörigkeit für neue Beobachtung prognostiziert außerdem weißt du jetzt wie wie man das gütemaß accuracy für ein
  72. klassifikationsmodell berechnet um die Leistungsfähigkeit des Modells zu [Musik] bewerten

Zum Nachlesen