Maison > développement back-end > Tutoriel Python > Comment utiliser l'algorithme KNN pour la classification en Python ?

Comment utiliser l'algorithme KNN pour la classification en Python ?

PHPz
Libérer: 2023-06-05 09:02:04
original
1655 Les gens l'ont consulté

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
Copier après la connexion

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)
Copier après la connexion

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")
Copier après la connexion

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()
Copier après la connexion

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
Copier après la connexion

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)
Copier après la connexion

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)
Copier après la connexion

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)
Copier après la connexion

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)
Copier après la connexion

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))
Copier après la connexion

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

L'algorithme KNN est un algorithme simple et efficace, qui peut être utilisé pour la classification et la régression. L'utilisation de l'algorithme KNN pour la classification en Python nécessite de suivre les étapes ci-dessus. Dans le même temps, nous devons également effectuer une visualisation et un prétraitement des données pour garantir que notre modèle peut classer avec précision.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal