Aprendizaje de variedades con Scikit-Learn

Beginner

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

Introducción

En este laboratorio, exploraremos el aprendizaje de variedades, que es un enfoque para la reducción de dimensionalidad no lineal. La reducción de dimensionalidad se utiliza a menudo para visualizar conjuntos de datos de alta dimensión, ya que puede ser difícil interpretar datos en más de tres dimensiones. Los algoritmos de aprendizaje de variedades buscan encontrar una representación de baja dimensión de los datos que conserve la estructura subyacente.

En este laboratorio, usaremos la biblioteca scikit-learn para realizar el aprendizaje de variedades en varios conjuntos de datos. Exploraremos diferentes algoritmos y compararemos su rendimiento y salidas.

Consejos sobre la VM

Una vez que se haya iniciado la VM, haga 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 tenga 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 tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.

Isomap

El algoritmo Isomap es uno de los primeros enfoques para el aprendizaje de variedades. Busca una incrustación de baja dimensión que mantenga las distancias geodésicas entre todos los puntos.

from sklearn.manifold import Isomap

## Crea una instancia del algoritmo Isomap
isomap = Isomap(n_components=2)

## Ajusta el algoritmo a los datos y transforma los datos al espacio de baja dimensión
X_transformed = isomap.fit_transform(X)

Embedding Localmente Lineal (LLE)

El Embedding Localmente Lineal (LLE) es otro algoritmo de aprendizaje de variedades. Busca una proyección de baja dimensión de los datos que conserve las distancias dentro de los vecindarios locales.

from sklearn.manifold import LocallyLinearEmbedding

## Crea una instancia del algoritmo LLE
lle = LocallyLinearEmbedding(n_components=2)

## Ajusta el algoritmo a los datos y transforma los datos al espacio de baja dimensión
X_transformed = lle.fit_transform(X)

Embedding Estocástico Vecino Aleatorio Distribuido t (t-SNE)

El t-SNE es un método popular de aprendizaje de variedades que convierte las afinidades de los puntos de datos en probabilidades. Es particularmente efectivo para visualizar datos de alta dimensión.

from sklearn.manifold import TSNE

## Crea una instancia del algoritmo t-SNE
tsne = TSNE(n_components=2)

## Ajusta el algoritmo a los datos y transforma los datos al espacio de baja dimensión
X_transformed = tsne.fit_transform(X)

Comparar Resultados

Compara los resultados de los diferentes algoritmos de aprendizaje de variedades. Visualiza los datos transformados para ver cómo los algoritmos han preservado la estructura subyacente de los datos.

import matplotlib.pyplot as plt

## Crea un diagrama de dispersión de los datos transformados
plt.scatter(X_transformed[:, 0], X_transformed[:, 1], c=y)
plt.title('Aprendizaje de Variedades')
plt.xlabel('Componente 1')
plt.ylabel('Componente 2')
plt.show()

Resumen

El aprendizaje de variedades es una herramienta poderosa para visualizar conjuntos de datos de alta dimensión. Nos permite reducir la dimensionalidad de los datos mientras se conserva la estructura subyacente. En esta práctica, exploramos tres algoritmos diferentes de aprendizaje de variedades: Isomap, Embedding Localmente Lineal (LLE) y t-SNE. Aplicamos estos algoritmos a varios conjuntos de datos y comparamos sus resultados. Al utilizar el aprendizaje de variedades, podemos obtener información sobre la estructura de conjuntos de datos complejos y analizar y visualizar datos de alta dimensión de manera más efectiva.