Visualizar datos de alta dimensión con t-SNE

Machine LearningMachine LearningBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

t-SNE (t-Distribuida Inmersión Vecina Estocástica) es una técnica de reducción de dimensionalidad utilizada para visualizar conjuntos de datos de alta dimensión. Este tutorial lo guiará a través del proceso de uso de t-SNE para visualizar conjuntos de datos utilizando la biblioteca scikit-learn de Python.

Consejos sobre la VM

Una vez finalizada la inicialización de 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 su retroalimentación después de la sesión y lo resolveremos rápidamente para usted.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills ml/sklearn -.-> lab-49314{{"Visualizar datos de alta dimensión con t-SNE"}} end

Importar bibliotecas

Comenzamos importando las bibliotecas necesarias para este tutorial.

import numpy as np
import matplotlib.pyplot as plt

from matplotlib.ticker import NullFormatter
from sklearn import manifold, datasets
from time import time

Crear datos

Vamos a crear tres conjuntos de datos diferentes para ilustrar el uso de t-SNE. El primer conjunto de datos será dos círculos concéntricos.

n_samples = 150
n_components = 2

X, y = datasets.make_circles(
    n_samples=n_samples, factor=0.5, noise=0.05, random_state=0
)

red = y == 0
green = y == 1

Visualizar datos

Podemos visualizar el conjunto de datos de círculos concéntricos utilizando un diagrama de dispersión.

ax = plt.subplot(1, 1, 1)
ax.scatter(X[red, 0], X[red, 1], c="r")
ax.scatter(X[green, 0], X[green, 1], c="g")
ax.xaxis.set_major_formatter(NullFormatter())
ax.yaxis.set_major_formatter(NullFormatter())
plt.axis("tight")

Aplicar t-SNE a los datos

A continuación, aplicaremos t-SNE al conjunto de datos de círculos concéntricos.

t0 = time()
tsne = manifold.TSNE(
    n_components=n_components,
    init="random",
    random_state=0,
    perplexity=perplexity,
    n_iter=300,
)
Y = tsne.fit_transform(X)
t1 = time()

Visualizar los resultados de t-SNE

Finalmente, podemos visualizar los resultados de t-SNE utilizando un diagrama de dispersión.

ax = plt.subplot(1, 1, 1)
ax.scatter(Y[red, 0], Y[red, 1], c="r")
ax.scatter(Y[green, 0], Y[green, 1], c="g")
ax.xaxis.set_major_formatter(NullFormatter())
ax.yaxis.set_major_formatter(NullFormatter())
plt.axis("tight")

Repetir para otros conjuntos de datos

Podemos repetir los pasos 2-5 para otros conjuntos de datos, como una curva S y una cuadrícula uniforme 2D.

Resumen

Este tutorial proporcionó una guía paso a paso para utilizar t-SNE para visualizar conjuntos de datos de alta dimensión utilizando la biblioteca scikit-learn de Python. Aprendimos cómo crear datos, visualizar datos, aplicar t-SNE a datos y visualizar los resultados de t-SNE.