Classification par centroïde le plus proche

Machine LearningMachine LearningBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Ce laboratoire vous guidera dans la mise en œuvre de la classification par centroïde le plus proche à l'aide de Scikit-learn. La classification par centroïde le plus proche est une méthode de classification simple qui fonctionne en calculant le centroïde pour chaque classe puis en classifiant les nouveaux points de données en fonction du centroïde auquel ils sont les plus proches.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Carnet de notes pour accéder au carnet Jupyter pour pratiquer.

Parfois, vous devrez peut-être attendre quelques secondes pour que le carnet Jupyter ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limites du carnet Jupyter.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous résoudrons rapidement le problème pour vous.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn(("Sklearn")) -.-> sklearn/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/neighbors("Nearest Neighbors") sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/inspection("Inspection") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/neighbors -.-> lab-49226{{"Classification par centroïde le plus proche"}} sklearn/inspection -.-> lab-49226{{"Classification par centroïde le plus proche"}} ml/sklearn -.-> lab-49226{{"Classification par centroïde le plus proche"}} end

Importez les bibliothèques requises

Tout d'abord, nous devons importer les bibliothèques nécessaires, qui incluent Numpy, Matplotlib, les jeux de données de Scikit-learn, NearestCentroid et DecisionBoundaryDisplay.

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
from sklearn import datasets
from sklearn.neighbors import NearestCentroid
from sklearn.inspection import DecisionBoundaryDisplay

Chargez les données

Ensuite, nous chargeons le jeu de données iris à partir de Scikit-learn et sélectionnons seulement les deux premières caractéristiques pour les besoins de visualisation.

iris = datasets.load_iris()
X = iris.data[:, :2]
y = iris.target

Créez des cartes de couleurs

Nous créons deux cartes de couleurs à des fins de visualisation en utilisant la fonction ListedColormap de Matplotlib.

cmap_light = ListedColormap(["orange", "cyan", "cornflowerblue"])
cmap_bold = ListedColormap(["darkorange", "c", "darkblue"])

Créez et ajustez le classifieur

Nous créons une instance du classifieur Nearest Centroid avec une valeur de réduction de 0,2 et ajustons les données.

clf = NearestCentroid(shrink_threshold=0.2)
clf.fit(X, y)

Prédisez et mesurez la précision

Nous prédisons les étiquettes de classe pour les données d'entrée et mesurons la précision du classifieur.

y_pred = clf.predict(X)
print("Précision : ", np.mean(y == y_pred))

Visualisez les limites de décision

Nous visualisons les limites de décision du classifieur à l'aide de la fonction DecisionBoundaryDisplay de Scikit-learn.

_, ax = plt.subplots()
DecisionBoundaryDisplay.from_estimator(
    clf, X, cmap=cmap_light, ax=ax, response_method="predict"
)

Tracez les points de données

Nous traçons les points de données d'entrée à l'aide de la fonction scatter de Matplotlib.

plt.scatter(X[:, 0], X[:, 1], c=y, cmap=cmap_bold, edgecolor="k", s=20)

Ajoutez un titre et des étiquettes d'axe

Nous ajoutons un titre et des étiquettes d'axe au tracé à l'aide des fonctions title, xlabel et ylabel de Matplotlib.

plt.title("Nearest Centroid Classification")
plt.xlabel("Sepal length")
plt.ylabel("Sepal width")

Affichez le tracé

Nous affichons le tracé à l'aide de la fonction show de Matplotlib.

plt.show()

Sommaire

Dans ce laboratoire, nous avons appris à implémenter la classification par centroïde le plus proche à l'aide de Scikit-learn. Nous avons chargé l'ensemble de données iris, créé un classifieur, prédit les étiquettes de classe, mesuré la précision et visualisé les limites de décision et les points de données d'entrée.