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.
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.