Análisis de Componentes Principales Incremental en el Conjunto de Datos Iris

Beginner

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

Introducción

Esta práctica te guiará a través de un proceso paso a paso para utilizar el algoritmo de Análisis de Componentes Principales Incremental (IPCA, por sus siglas en inglés) para realizar la reducción de dimensionalidad en el conjunto de datos Iris. El IPCA se utiliza cuando el conjunto de datos es demasiado grande para caber en la memoria y requiere un enfoque incremental. Compararemos los resultados del IPCA con el algoritmo de PCA tradicional.

Consejos sobre la VM

Una vez que se haya iniciado la VM, haz clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tengas que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tienes problemas durante el aprendizaje, no dudes en preguntar a Labby. Proporciona retroalimentación después de la sesión y resolveremos rápidamente el problema para ti.

Importar bibliotecas

Importaremos las bibliotecas necesarias, incluyendo numpy, matplotlib y los módulos de PCA e 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

Cargar datos

Cargaremos el conjunto de datos Iris desde el módulo de conjuntos de datos de scikit-learn.

iris = load_iris()
X = iris.data
y = iris.target

Realizar IPCA

Realizaremos el IPCA en el conjunto de datos Iris inicializando una instancia de la clase IPCA y ajustándola a los datos.

n_components = 2
ipca = IncrementalPCA(n_components=n_components, batch_size=10)
X_ipca = ipca.fit_transform(X)

Realizar PCA

Realizaremos el PCA en el conjunto de datos Iris inicializando una instancia de la clase PCA y ajustándola a los datos.

pca = PCA(n_components=n_components)
X_pca = pca.fit_transform(X)

Visualizar los resultados

Visualizaremos los resultados del IPCA y del PCA trazando los datos transformados en un diagrama de dispersión.

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 + " del conjunto de datos iris\nError absoluto medio sin signo %.6f" % err)
    else:
        plt.title(title + " del conjunto de datos iris")
    plt.legend(loc="best", shadow=False, scatterpoints=1)
    plt.axis([-4, 4, -1.5, 1.5])

plt.show()

Resumen

En este laboratorio, aprendimos cómo usar el algoritmo de Análisis de Componentes Principales Incremental (IPCA) para realizar la reducción de dimensionalidad en el conjunto de datos Iris. Comparamos los resultados del IPCA con el PCA tradicional y visualizamos los datos transformados en un diagrama de dispersión. El IPCA es útil cuando el conjunto de datos es demasiado grande para caber en la memoria y requiere un enfoque incremental.