Introduction
Ce laboratoire vous guidera dans un processus étape par étape d'utilisation de l'algorithme d'analyse en composantes principales incrémentales (IPCA) pour effectuer une réduction de dimensionnalité sur l'ensemble de données Iris. L'IPCA est utilisé lorsque l'ensemble de données est trop grand pour tenir en mémoire et nécessite une approche incrémentale. Nous comparerons les résultats de l'IPCA avec l'algorithme de PCA traditionnel.
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 à 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 votre feedback après la session, et nous réglerons rapidement le problème pour vous.
Importation des bibliothèques
Nous allons importer les bibliothèques nécessaires, notamment numpy, matplotlib, et les modules PCA et IPCA de scikit - learn.
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.decomposition import PCA, IncrementalPCA
Chargement des données
Nous allons charger l'ensemble de données Iris à partir du module datasets de scikit - learn.
iris = load_iris()
X = iris.data
y = iris.target
Effectuer l'IPCA
Nous allons effectuer l'IPCA sur l'ensemble de données Iris en initialisant une instance de la classe IPCA et en l'ajustant aux données.
n_components = 2
ipca = IncrementalPCA(n_components=n_components, batch_size=10)
X_ipca = ipca.fit_transform(X)
Effectuer la PCA
Nous allons effectuer la PCA sur l'ensemble de données Iris en initialisant une instance de la classe PCA et en l'ajustant aux données.
pca = PCA(n_components=n_components)
X_pca = pca.fit_transform(X)
Visualiser les résultats
Nous allons visualiser les résultats de l'IPCA et de la PCA en traçant les données transformées sur un graphique à points.
colors = ["navy", "turquoise", "darkorange"]
for X_transformed, title in [(X_ipca, "Incremental PCA"), (X_pca, "PCA")]:
plt.figure(figsize=(8, 8))
for color, i, target_name in zip(colors, [0, 1, 2], iris.target_names):
plt.scatter(
X_transformed[y == i, 0],
X_transformed[y == i, 1],
color=color,
lw=2,
label=target_name,
)
if "Incremental" in title:
err = np.abs(np.abs(X_pca) - np.abs(X_ipca)).mean()
plt.title(title + " de l'ensemble de données iris\nErreur absolue moyenne non signée %.6f" % err)
else:
plt.title(title + " de l'ensemble de données iris")
plt.legend(loc="best", shadow=False, scatterpoints=1)
plt.axis([-4, 4, -1.5, 1.5])
plt.show()
Sommaire
Dans ce laboratoire, nous avons appris à utiliser l'algorithme d'Analyse en Composantes Principales Incrémentales (IPCA) pour effectuer une réduction de dimensionnalité sur l'ensemble de données Iris. Nous avons comparé les résultats de l'IPCA avec la PCA traditionnelle et visualisé les données transformées sur un graphique à points. L'IPCA est utile lorsque l'ensemble de données est trop grand pour tenir en mémoire et nécessite une approche incrémentale.