Maison > Article > développement back-end > Comment utiliser l'algorithme KNN pour la classification en Python ?
K L'algorithme du voisin le plus proche (KNN) est un algorithme simple et efficace qui peut être utilisé pour la classification et la régression. Son idée de base est d'identifier la catégorie à laquelle appartient un échantillon en mesurant la distance entre différentes caractéristiques. Dans cet article, nous explorerons comment classer KNN en Python.
1. Préparer l'ensemble de données
Tout d'abord, nous devons préparer l'ensemble de données. Dans cet exemple, nous utiliserons l'ensemble de données Iris, qui contient 3 fleurs d'iris différentes (Setosa, Versicolour et Virginica), chacune avec 4 caractéristiques (longueur des sépales, largeur des sépales, longueur des pétales, largeur des pétales).
Nous utiliserons la bibliothèque Pandas pour lire et prétraiter les données. Tout d'abord, nous devons importer les bibliothèques requises :
import pandas as pd import numpy as np import matplotlib.pyplot as plt
Ensuite, nous allons charger l'ensemble de données :
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)
Maintenant que nous avons un ensemble de données, nous pouvons commencer à l'explorer.
2. Visualisation des données
Avant de classer, nous devons visualiser et explorer les données. Nous tracerons un nuage de points de chaque entité par rapport à une autre entité, ainsi qu'un histogramme de chaque entité. Nous pouvons utiliser la bibliothèque Matplotlib et la bibliothèque Seaborn pour la visualisation.
Nuage de points entre les entités :
import seaborn as sns sns.pairplot(dataset, hue="class")
642e23f85878d4ff165e7984eb86ab53
De là, cela peut être On voit sur la figure que les caractéristiques des différentes fleurs d'iris sont très différentes, ce qui constitue la base de la classification.
Histogramme de chaque caractéristique :
dataset.hist() plt.show()
e4f4245006bd7ec74460a8fae9b5c005
De cette image, cela peut On voit que chaque caractéristique de l'ensemble de données a une distribution différente, qui constitue la base de la normalisation.
3. Prétraitement des données
Avant la classification, nous devons prétraiter les données. Nous pouvons diviser l'ensemble de données en fonctionnalités d'entrée et catégories de sortie, puis mettre à l'échelle les valeurs des fonctionnalités dans la plage de 0 à 1.
Tout d'abord, nous divisons l'ensemble de données en caractéristiques d'entrée et catégories de sortie :
X = dataset.iloc[:, :-1].values y = dataset.iloc[:, 4].values
Ensuite, nous mettons à l'échelle les valeurs des caractéristiques dans la plage de 0 à 1 :
from sklearn.preprocessing import StandardScaler scaler = StandardScaler() X = scaler.fit_transform(X)
Maintenant, nous avons l'ensemble de données prétraité.
4. Diviser l'ensemble de données
Avant la classification, nous devons diviser l'ensemble de données en un ensemble d'entraînement et un ensemble de test. Nous pouvons le faire en utilisant la fonction train_test_split de la bibliothèque Scikit-learn.
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)
Cela créera un ensemble d'entraînement et un ensemble de tests avec un ratio de 80:20.
5. Entraîner le modèle KNN
Maintenant, nous pouvons commencer à entraîner le modèle KNN. Nous importons d’abord la classe KNeighborsClassifier, créons une instance et utilisons la fonction fit pour ajuster le modèle.
from sklearn.neighbors import KNeighborsClassifier classifier = KNeighborsClassifier(n_neighbors=5) classifier.fit(X_train, y_train)
Cela créera un classificateur KNN et l'entraînera à classer à l'aide de l'ensemble de formation.
6. Prédiction
Maintenant, nous pouvons utiliser le modèle KNN pour faire des prédictions sur l'ensemble de test. Nous utilisons la fonction prédire pour faire des prédictions et enregistrer les résultats dans une variable.
y_pred = classifier.predict(X_test)
7. Évaluation du modèle
Enfin, nous devons évaluer notre modèle et déterminer son exactitude. Nous pouvons utiliser les fonctions confusion_matrix et classification_report dans la bibliothèque Scikit-learn pour évaluer la précision du modèle.
from sklearn.metrics import confusion_matrix, classification_report print(confusion_matrix(y_test, y_pred)) print(classification_report(y_test, y_pred))
Cela produira une matrice de confusion et un rapport de classification montrant l'exactitude de notre modèle.
Résumé
L'utilisation de l'algorithme KNN pour la classification en Python nécessite les étapes suivantes :
1 Préparer l'ensemble de données
2 Visualisation des données
3. Diviser l'ensemble de données
5.
6. Prédiction
7. Évaluation du modèle
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!