Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen K-Neighbors-Klassifikator | Modellierung
Einführung in das Maschinelle Lernen mit Python

bookK-Neighbors-Klassifikator

Beim Erstellen des finalen Schätzers in einer Pipeline wurde das Modell KNeighborsClassifier ausgewählt. Dieses Kapitel bietet eine kurze Erklärung, wie der Algorithmus funktioniert.

Note
Hinweis

Wie Modelle funktionieren, ist kein Hauptthema dieses Kurses. Es ist daher in Ordnung, wenn Ihnen etwas unklar erscheint. Ausführlichere Erklärungen finden Sie in anderen Kursen wie Linear Regression with Python oder Classification with Python.

k-Nearest Neighbors

k-NN sagt die Klasse einer neuen Instanz voraus, indem die k ähnlichsten Trainingsbeispiele betrachtet werden. KNeighborsClassifier implementiert dies in Scikit-learn.

  1. Für einen neuen Punkt werden die k nächsten Nachbarn anhand der Merkmalsähnlichkeit ermittelt.
  2. Die häufigste Klasse unter diesen wird als Vorhersage verwendet.

k ist ein Hyperparameter (Standardwert = 5). Unterschiedliche Werte verändern das Modellverhalten, daher ist das Abstimmen von k wichtig.

KNeighborsClassifier während .fit()

Im Gegensatz zu vielen anderen Algorithmen speichert der KNeighborsClassifier lediglich die Trainingsdaten. Dennoch ist der Aufruf von .fit(X, y) erforderlich, damit das Modell weiß, auf welchen Datensatz es sich bei der Vorhersage beziehen soll.

KNeighborsClassifier während .predict()

Während der Vorhersage sucht der Klassifikator für jede Instanz nach den k nächsten Nachbarn. Im visuellen Beispiel werden nur zwei Merkmale dargestellt; das Hinzufügen weiterer Merkmale verbessert in der Regel die Klassentrennung und die Vorhersagegenauigkeit.

Note
Hinweis

In den obigen GIFs werden nur zwei Merkmale, 'body_mass_g' und 'culmen_depth_mm', verwendet, da die Visualisierung höherdimensionaler Plots schwierig ist. Das Hinzufügen weiterer Merkmale wird dem Modell wahrscheinlich helfen, die grünen und roten Datenpunkte besser zu trennen, sodass der KNeighborsClassifier genauere Vorhersagen treffen kann.

KNeighborsClassifier Programmierbeispiel

Es ist möglich, einen Klassifikator zu erstellen, ihn zu trainieren und seine Genauigkeit mit .score() zu überprüfen. Das Argument n_neighbors steuert k—probiere sowohl 5 als auch 1 aus.

12345678910111213
import pandas as pd from sklearn.neighbors import KNeighborsClassifier df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Initialize and train a model knn5 = KNeighborsClassifier().fit(X, y) # Trained 5 neighbors model knn1 = KNeighborsClassifier(n_neighbors=1).fit(X, y) # Trained 1 neighbor model # Print the scores of both models print('5 Neighbors score:',knn5.score(X, y)) print('1 Neighbor score:',knn1.score(X, y))
copy

Die Verwendung von k=1 kann eine perfekte Genauigkeit liefern, dies ist jedoch irreführend, da die Auswertung auf dem Trainingsdatensatz erfolgte. Um die tatsächliche Leistung zu messen, sollte das Modell immer auf unbekannten Daten getestet werden.

question mark

Wie trifft der KNeighborsClassifier Vorhersagen für eine neue Instanz?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 2

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

Can you explain why using k=1 might give perfect accuracy on the training set?

How should I properly evaluate the performance of a k-NN model?

What does the `.score()` method actually measure in this context?

Awesome!

Completion rate improved to 3.13

bookK-Neighbors-Klassifikator

Swipe um das Menü anzuzeigen

Beim Erstellen des finalen Schätzers in einer Pipeline wurde das Modell KNeighborsClassifier ausgewählt. Dieses Kapitel bietet eine kurze Erklärung, wie der Algorithmus funktioniert.

Note
Hinweis

Wie Modelle funktionieren, ist kein Hauptthema dieses Kurses. Es ist daher in Ordnung, wenn Ihnen etwas unklar erscheint. Ausführlichere Erklärungen finden Sie in anderen Kursen wie Linear Regression with Python oder Classification with Python.

k-Nearest Neighbors

k-NN sagt die Klasse einer neuen Instanz voraus, indem die k ähnlichsten Trainingsbeispiele betrachtet werden. KNeighborsClassifier implementiert dies in Scikit-learn.

  1. Für einen neuen Punkt werden die k nächsten Nachbarn anhand der Merkmalsähnlichkeit ermittelt.
  2. Die häufigste Klasse unter diesen wird als Vorhersage verwendet.

k ist ein Hyperparameter (Standardwert = 5). Unterschiedliche Werte verändern das Modellverhalten, daher ist das Abstimmen von k wichtig.

KNeighborsClassifier während .fit()

Im Gegensatz zu vielen anderen Algorithmen speichert der KNeighborsClassifier lediglich die Trainingsdaten. Dennoch ist der Aufruf von .fit(X, y) erforderlich, damit das Modell weiß, auf welchen Datensatz es sich bei der Vorhersage beziehen soll.

KNeighborsClassifier während .predict()

Während der Vorhersage sucht der Klassifikator für jede Instanz nach den k nächsten Nachbarn. Im visuellen Beispiel werden nur zwei Merkmale dargestellt; das Hinzufügen weiterer Merkmale verbessert in der Regel die Klassentrennung und die Vorhersagegenauigkeit.

Note
Hinweis

In den obigen GIFs werden nur zwei Merkmale, 'body_mass_g' und 'culmen_depth_mm', verwendet, da die Visualisierung höherdimensionaler Plots schwierig ist. Das Hinzufügen weiterer Merkmale wird dem Modell wahrscheinlich helfen, die grünen und roten Datenpunkte besser zu trennen, sodass der KNeighborsClassifier genauere Vorhersagen treffen kann.

KNeighborsClassifier Programmierbeispiel

Es ist möglich, einen Klassifikator zu erstellen, ihn zu trainieren und seine Genauigkeit mit .score() zu überprüfen. Das Argument n_neighbors steuert k—probiere sowohl 5 als auch 1 aus.

12345678910111213
import pandas as pd from sklearn.neighbors import KNeighborsClassifier df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Initialize and train a model knn5 = KNeighborsClassifier().fit(X, y) # Trained 5 neighbors model knn1 = KNeighborsClassifier(n_neighbors=1).fit(X, y) # Trained 1 neighbor model # Print the scores of both models print('5 Neighbors score:',knn5.score(X, y)) print('1 Neighbor score:',knn1.score(X, y))
copy

Die Verwendung von k=1 kann eine perfekte Genauigkeit liefern, dies ist jedoch irreführend, da die Auswertung auf dem Trainingsdatensatz erfolgte. Um die tatsächliche Leistung zu messen, sollte das Modell immer auf unbekannten Daten getestet werden.

question mark

Wie trifft der KNeighborsClassifier Vorhersagen für eine neue Instanz?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 2
some-alt