Introduction
Dans ce laboratoire, nous allons effectuer une Analyse en Composantes Principales (PCA) sur l'ensemble de données Iris à l'aide de scikit-learn en Python. La PCA est une technique utilisée pour réduire la dimensionalité d'un ensemble de données tout en conservant le maximum de variance possible. En termes plus simples, elle aide à identifier les caractéristiques les plus importantes dans un ensemble de données et à éliminer les moins importantes. L'ensemble de données Iris est un ensemble de données célèbre dans le domaine de l'apprentissage automatique et contient des informations sur les attributs physiques de trois types différents de fleurs Iris.
Conseils sur la VM
Une fois le démarrage de la VM terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Notebook pour accéder à Jupyter Notebook pour la pratique.
Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.
Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez des commentaires après la session, et nous résoudrons rapidement le problème pour vous.
Importation des bibliothèques nécessaires
Nous allons commencer par importer les bibliothèques nécessaires - numpy, matplotlib.pyplot, les modules de décomposition et de jeux de données de scikit-learn.
import numpy as np
import matplotlib.pyplot as plt
from sklearn import decomposition
from sklearn import datasets
Charger l'ensemble de données
Ensuite, nous allons charger l'ensemble de données Iris à l'aide de la fonction load_iris() de scikit-learn. Nous séparerons ensuite les variables de caractéristiques (X) et de cible (y).
iris = datasets.load_iris()
X = iris.data
y = iris.target
Visualiser l'ensemble de données
Avant d'effectuer une PCA, visualisons d'abord l'ensemble de données en 3D à l'aide de matplotlib. Cela nous donnera une idée de la distribution des différents types de fleurs Iris dans l'ensemble de données.
fig = plt.figure(1, figsize=(4, 3))
plt.clf()
ax = fig.add_subplot(111, projection="3d", elev=48, azim=134)
ax.set_position([0, 0, 0.95, 1])
plt.cla()
for name, label in [("Setosa", 0), ("Versicolour", 1), ("Virginica", 2)]:
ax.text3D(
X[y == label, 0].mean(),
X[y == label, 1].mean() + 1.5,
X[y == label, 2].mean(),
name,
horizontalalignment="center",
bbox=dict(alpha=0.5, edgecolor="w", facecolor="w"),
)
y = np.choose(y, [1, 2, 0]).astype(float)
ax.scatter(X[:, 0], X[:, 1], X[:, 2], c=y, cmap=plt.cm.nipy_spectral, edgecolor="k")
ax.xaxis.set_ticklabels([])
ax.yaxis.set_ticklabels([])
ax.zaxis.set_ticklabels([])
plt.show()
Effectuer une PCA
Maintenant que nous avons visualisé l'ensemble de données, effectuons une PCA dessus. Nous utiliserons la fonction PCA() de scikit-learn à cet effet. Nous définirons le nombre de composantes sur 3, car nous souhaitons réduire l'ensemble de données de 4 dimensions (4 caractéristiques) à 3 dimensions.
pca = decomposition.PCA(n_components=3)
pca.fit(X)
X = pca.transform(X)
Visualiser l'ensemble de données réduit
Enfin, visualisons l'ensemble de données réduit en 3D à l'aide de matplotlib. Nous utiliserons le même code que dans l'Étape 3, mais cette fois-ci, nous traçons l'ensemble de données réduit (X) au lieu de l'ensemble de données original.
fig = plt.figure(1, figsize=(4, 3))
plt.clf()
ax = fig.add_subplot(111, projection="3d", elev=48, azim=134)
ax.set_position([0, 0, 0.95, 1])
plt.cla()
for name, label in [("Setosa", 0), ("Versicolour", 1), ("Virginica", 2)]:
ax.text3D(
X[y == label, 0].mean(),
X[y == label, 1].mean() + 1.5,
X[y == label, 2].mean(),
name,
horizontalalignment="center",
bbox=dict(alpha=0.5, edgecolor="w", facecolor="w"),
)
y = np.choose(y, [1, 2, 0]).astype(float)
ax.scatter(X[:, 0], X[:, 1], X[:, 2], c=y, cmap=plt.cm.nipy_spectral, edgecolor="k")
ax.xaxis.set_ticklabels([])
ax.yaxis.set_ticklabels([])
ax.zaxis.set_ticklabels([])
plt.show()
Résumé
Dans ce laboratoire, nous avons appris à effectuer une Analyse en Composantes Principales (PCA) sur l'ensemble de données Iris à l'aide de Python et de scikit-learn. Nous avons chargé l'ensemble de données, l'avons visualisé en 3D, effectué une PCA dessus pour réduire sa dimensionnalité et finalement l'avons à nouveau visualisé en 3D. La PCA est une technique puissante qui peut être utilisée dans de nombreuses applications pour réduire la dimensionnalité d'un ensemble de données et identifier les caractéristiques les plus importantes.