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

PHPz
Freigeben: 2023-06-05 09:02:04
Original
1565 Leute haben es durchsucht

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
Nach dem Login kopieren

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)
Nach dem Login kopieren

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")
Nach dem Login kopieren

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()
Nach dem Login kopieren

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
Nach dem Login kopieren

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

from sklearn.preprocessing import StandardScaler scaler = StandardScaler() X = scaler.fit_transform(X)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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))
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!