Analyse en composantes principales incrémentales sur l'ensemble de données Iris

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/AdvancedDataAnalysisandDimensionalityReductionGroup(["Advanced Data Analysis and Dimensionality Reduction"]) sklearn(("Sklearn")) -.-> sklearn/UtilitiesandDatasetsGroup(["Utilities and Datasets"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/AdvancedDataAnalysisandDimensionalityReductionGroup -.-> sklearn/decomposition("Matrix Decomposition") sklearn/UtilitiesandDatasetsGroup -.-> sklearn/datasets("Datasets") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/decomposition -.-> lab-49164{{"Analyse en composantes principales incrémentales sur l'ensemble de données Iris"}} sklearn/datasets -.-> lab-49164{{"Analyse en composantes principales incrémentales sur l'ensemble de données Iris"}} ml/sklearn -.-> lab-49164{{"Analyse en composantes principales incrémentales sur l'ensemble de données Iris"}} end

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.