Heim >Backend-Entwicklung >Python-Tutorial >Wie verwende ich den KNN-Algorithmus zur Klassifizierung in Python?

Wie verwende ich den KNN-Algorithmus zur Klassifizierung in Python?

PHPz
PHPzOriginal
2023-06-05 09:02:041651Durchsuche

K Nearest Neighbor Algorithm (KNN) ist ein einfacher und effektiver Algorithmus, der zur Klassifizierung und Regression verwendet werden kann. Seine Grundidee besteht darin, die Kategorie zu identifizieren, zu der eine Stichprobe gehört, indem der Abstand zwischen verschiedenen Merkmalen gemessen wird. In diesem Artikel werden wir untersuchen, wie man KNN in Python klassifiziert.

1. Bereiten Sie den Datensatz vor

Zuerst müssen wir den Datensatz vorbereiten. In diesem Beispiel verwenden wir den Iris-Datensatz, der drei verschiedene Irisblüten (Setosa, Versicolour und Virginica) mit jeweils 4 Merkmalen (Kelchblattlänge, Kelchblattbreite, Blütenblattlänge, Blütenblattbreite) enthält.

Wir werden die Pandas-Bibliothek verwenden, um die Daten zu lesen und vorzuverarbeiten. Zuerst müssen wir die erforderlichen Bibliotheken importieren:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

Dann laden wir den Datensatz:

url = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"
names = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'class']
dataset = pd.read_csv(url, names=names)

Da wir nun einen Datensatz haben, können wir mit der Erkundung beginnen.

2. Datenvisualisierung

Vor der Klassifizierung müssen wir die Daten visualisieren und untersuchen. Wir zeichnen ein Streudiagramm jedes Features im Vergleich zu einem anderen Feature sowie ein Histogramm jedes Features auf. Zur Visualisierung können wir die Matplotlib-Bibliothek und die Seaborn-Bibliothek verwenden.

Streudiagramm zwischen Features:

import seaborn as sns
sns.pairplot(dataset, hue="class")

642e23f85878d4ff165e7984eb86ab53

Davon kann es sein Aus der Abbildung geht hervor, dass die Eigenschaften verschiedener Irisblüten sehr unterschiedlich sind, was die Grundlage für die Klassifizierung bildet.

Histogramm jedes Features:

dataset.hist()
plt.show()

e4f4245006bd7ec74460a8fae9b5c005

Von diesem Bild Es kann Es ist ersichtlich, dass jedes Merkmal im Datensatz eine unterschiedliche Verteilung aufweist, die die Grundlage für die Normalisierung darstellt.

3. Datenvorverarbeitung

Vor der Klassifizierung müssen wir die Daten vorverarbeiten. Wir können den Datensatz in Eingabe-Features und Ausgabekategorien aufteilen und dann die Feature-Werte auf den Bereich von 0 bis 1 skalieren.

Zuerst teilen wir den Datensatz in Eingabemerkmale und Ausgabekategorien auf:

X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, 4].values

Dann skalieren wir die Merkmalswerte auf den Bereich von 0 bis 1:

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X = scaler.fit_transform(X)

Jetzt haben wir den vorverarbeiteten Datensatz.

4. Den Datensatz aufteilen

Vor der Klassifizierung müssen wir den Datensatz in einen Trainingssatz und einen Testsatz aufteilen. Wir können dies mit der Funktion train_test_split aus der Scikit-learn-Bibliothek tun.

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

Dadurch werden ein Trainingssatz und ein Testsatz im Verhältnis 80:20 erstellt.

5. Trainieren Sie das KNN-Modell

Jetzt können wir mit dem Training des KNN-Modells beginnen. Wir importieren zunächst die Klasse KNeighborsClassifier, erstellen eine Instanz und verwenden die Fit-Funktion, um das Modell anzupassen.

from sklearn.neighbors import KNeighborsClassifier
classifier = KNeighborsClassifier(n_neighbors=5)
classifier.fit(X_train, y_train)

Dadurch wird ein KNN-Klassifikator erstellt und dieser mithilfe des Trainingssatzes für die Klassifizierung trainiert.

6. Vorhersage

Jetzt können wir das KNN-Modell verwenden, um Vorhersagen für den Testsatz zu treffen. Wir verwenden die Vorhersagefunktion, um Vorhersagen zu treffen und die Ergebnisse in einer Variablen zu speichern.

y_pred = classifier.predict(X_test)

7. Modellbewertung

Abschließend müssen wir unser Modell bewerten und seine Genauigkeit bestimmen. Wir können die Funktionen „confusion_matrix“ und „classification_report“ in der Scikit-learn-Bibliothek verwenden, um die Genauigkeit des Modells zu bewerten.

from sklearn.metrics import confusion_matrix, classification_report
print(confusion_matrix(y_test, y_pred))
print(classification_report(y_test, y_pred))

Dadurch werden eine Verwirrungsmatrix und ein Klassifizierungsbericht ausgegeben, die die Genauigkeit unseres Modells zeigen.

Zusammenfassung

Die Verwendung des KNN-Algorithmus zur Klassifizierung in Python erfordert die folgenden Schritte:

1. Vorbereiten des Datensatzes
3. Datenvorverarbeitung
5. Trainieren des KNN-Modells
6. Vorhersage
7. Modellbewertung

Der KNN-Algorithmus ist ein einfacher und effektiver Algorithmus, der zur Klassifizierung und Regression verwendet werden kann. Die Verwendung des KNN-Algorithmus zur Klassifizierung in Python erfordert die Befolgung der oben genannten Schritte. Gleichzeitig müssen wir auch eine Datenvisualisierung und Vorverarbeitung durchführen, um sicherzustellen, dass unser Modell eine genaue Klassifizierung durchführen kann.

Das obige ist der detaillierte Inhalt vonWie verwende ich den KNN-Algorithmus zur Klassifizierung in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn