Aprendizado de Variedades com Scikit-Learn

Beginner

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

Introdução

Neste laboratório, exploraremos o aprendizado de variedades, que é uma abordagem para redução de dimensionalidade não linear. A redução de dimensionalidade é frequentemente usada para visualizar conjuntos de dados de alta dimensionalidade, pois pode ser difícil interpretar dados em mais de três dimensões. Os algoritmos de aprendizado de variedades visam encontrar uma representação de menor dimensionalidade dos dados que preserve a estrutura subjacente.

Neste laboratório, usaremos a biblioteca scikit-learn para realizar aprendizado de variedades em vários conjuntos de dados. Exploraremos diferentes algoritmos e compararemos seu desempenho e saídas.

Dicas da Máquina Virtual

Após o início da VM, clique no canto superior esquerdo para mudar para a aba Notebook para acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação de operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão e resolveremos prontamente o problema para você.

Isomap

O algoritmo Isomap é uma das primeiras abordagens ao aprendizado de variedades. Ele busca uma incorporação de menor dimensão que mantenha as distâncias geodésicas entre todos os pontos.

from sklearn.manifold import Isomap

## Crie uma instância do algoritmo Isomap
isomap = Isomap(n_components=2)

## Ajuste o algoritmo aos dados e transforme os dados para o espaço de menor dimensão
X_transformed = isomap.fit_transform(X)

Embedding Localmente Linear (LLE)

O Embedding Localmente Linear (LLE) é outro algoritmo de aprendizado de variedades. Ele busca uma projeção de menor dimensão dos dados que preserve as distâncias dentro dos vizinhos locais.

from sklearn.manifold import LocallyLinearEmbedding

## Crie uma instância do algoritmo LLE
lle = LocallyLinearEmbedding(n_components=2)

## Ajuste o algoritmo aos dados e transforme os dados para o espaço de menor dimensão
X_transformed = lle.fit_transform(X)

t-distributed Stochastic Neighbor Embedding (t-SNE)

t-SNE é um método popular de aprendizado de variedades que converte afinidades de pontos de dados em probabilidades. É particularmente eficaz na visualização de dados de alta dimensão.

from sklearn.manifold import TSNE

## Crie uma instância do algoritmo t-SNE
tsne = TSNE(n_components=2)

## Ajuste o algoritmo aos dados e transforme os dados para o espaço de menor dimensão
X_transformed = tsne.fit_transform(X)

Comparar Resultados

Compare os resultados dos diferentes algoritmos de aprendizado de variedades. Visualize os dados transformados para ver como os algoritmos preservaram a estrutura subjacente dos dados.

import matplotlib.pyplot as plt

## Crie um gráfico de dispersão dos dados transformados
plt.scatter(X_transformed[:, 0], X_transformed[:, 1], c=y)
plt.title('Aprendizado de Variedades')
plt.xlabel('Componente 1')
plt.ylabel('Componente 2')
plt.show()

Resumo

O aprendizado de variedades é uma ferramenta poderosa para visualizar conjuntos de dados de alta dimensão. Permite reduzir a dimensionalidade dos dados, preservando a estrutura subjacente. Neste laboratório, exploramos três diferentes algoritmos de aprendizado de variedades: Isomap, Embedding Linear Local (LLE) e t-SNE. Aplicamos esses algoritmos a vários conjuntos de dados e comparamos seus resultados. Ao utilizar o aprendizado de variedades, podemos obter insights sobre a estrutura de conjuntos de dados complexos e analisar e visualizar dados de alta dimensão de forma mais eficaz.