Aprendizagem Não Supervisionada: Buscando Representações dos Dados

Beginner

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

Introdução

Neste laboratório, exploraremos o conceito de aprendizagem não supervisionada, especificamente agrupamento e decomposição. A aprendizagem não supervisionada é um tipo de aprendizagem de máquina em que não temos dados rotulados para treinar. Em vez disso, tentamos encontrar padrões ou estruturas nos dados sem qualquer conhecimento prévio. O agrupamento é uma técnica comum de aprendizagem não supervisionada usada para agrupar observações semelhantes. A decomposição, por outro lado, é usada para encontrar uma representação de menor dimensão dos dados, extraindo as características ou componentes mais importantes.

Dicas da Máquina Virtual

Após o arranque da VM, clique no canto superior esquerdo para mudar para a aba Notebook para aceder ao Jupyter Notebook para a prática.

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

Se tiver 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 si.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 91%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Agrupamento usando K-means

A primeira técnica que exploraremos é o agrupamento usando o algoritmo K-means. K-means é um algoritmo de agrupamento popular que visa dividir as observações em grupos bem separados, chamados clusters. Vamos usar o conjunto de dados Iris como exemplo para demonstrar o agrupamento com K-means.

from sklearn import cluster, datasets

## Carregar o conjunto de dados Iris
X_iris, y_iris = datasets.load_iris(return_X_y=True)

## Executar o agrupamento K-means
k_means = cluster.KMeans(n_clusters=3)
k_means.fit(X_iris)

## Imprimir as etiquetas dos clusters
print(k_means.labels_)

Avaliação de Agrupamento

Após realizar o agrupamento, é importante avaliar os resultados. No entanto, na aprendizagem não supervisionada, não temos acesso a rótulos de verdade fundamental. Portanto, precisamos ter cuidado ao interpretar os resultados do agrupamento. É comum avaliar os resultados do agrupamento com base em métricas como o coeficiente de silhueta e a soma dos quadrados intra-clusters. Essas métricas podem fornecer insights sobre a qualidade do agrupamento.

Quantização Vetorial

Uma aplicação do agrupamento é a quantização vetorial, onde usamos o agrupamento para escolher um pequeno número de exemplares para comprimir informações. Por exemplo, podemos usar o agrupamento para posterizar uma imagem:

import numpy as np
from sklearn import cluster, datasets
from sklearn.datasets import load_sample_image
import matplotlib.pyplot as plt

## Carregar uma imagem de amostra
image = load_sample_image("china.jpg")
## Converter para escala de cinza
gray_image = image.mean(axis=2)

X = gray_image.reshape((-1, 1))

## Executar o agrupamento K-means
k_means = cluster.KMeans(n_clusters=5, n_init=1)
k_means.fit(X)

## Comprimir a imagem usando os centros dos clusters
values = k_means.cluster_centers_.squeeze()
labels = k_means.labels_
face_compressed = np.choose(labels, values)
face_compressed.shape = gray_image.shape

## Exibir as imagens original e comprimida
plt.figure(figsize=(12, 6))
plt.subplot(1, 2, 1)
plt.imshow(gray_image, cmap='gray')
plt.title('Imagem Original')

plt.subplot(1, 2, 2)
plt.imshow(face_compressed, cmap='gray')
plt.title('Imagem Comprimida')

plt.show()

Resumo

Neste laboratório, exploramos os conceitos de aprendizagem não supervisionada, especificamente agrupamento e decomposição. Aprendemos sobre o agrupamento K-means, o agrupamento hierárquico aglomerativo, a agregação de características, a análise de componentes principais (PCA) e a análise de componentes independentes (ICA). Essas técnicas são valiosas para descobrir padrões e estruturas em dados não rotulados e encontrar representações de menor dimensão que capturem as informações mais importantes.