Heim >Backend-Entwicklung >Python-Tutorial >Wie verwende ich den KNN-Algorithmus zur Klassifizierung in Python?
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!