Agrupamento Não Supervisionado com K-Means

Beginner

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

Introdução

Neste laboratório, exploraremos a clusterização, uma técnica popular de aprendizado de máquina não supervisionado. A clusterização é usada para agrupar pontos de dados semelhantes com base em suas características ou atributos, sem a necessidade de dados de treinamento rotulados. Existem vários algoritmos de clusterização disponíveis, cada um com seus próprios pontos fortes e fracos. Neste laboratório, focaremos no algoritmo de clusterização k-means.

Dicas da Máquina Virtual

Após o término da inicialização da máquina virtual, 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 o problema para você prontamente.

Importar as Bibliotecas Necessárias

Antes de começarmos, vamos importar as bibliotecas necessárias para este laboratório.

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans

Gerar Dados de Amostra

Em seguida, vamos gerar alguns dados de amostra para trabalhar. Usaremos a função make_blobs do módulo sklearn.datasets para criar um conjunto de dados sintético com clusters.

## Gerar dados de amostra
X, y = make_blobs(n_samples=100, centers=4, random_state=0, cluster_std=1.0)

Visualizar os Dados

Vamos visualizar os dados gerados usando um gráfico de dispersão.

## Plotar os pontos de dados
plt.scatter(X[:, 0], X[:, 1])
plt.xlabel('Característica 1')
plt.ylabel('Característica 2')
plt.show()

Executar Agrupamento K-Means

Agora, vamos aplicar o algoritmo de agrupamento k-means aos dados.

## Executar agrupamento K-Means
kmeans = KMeans(n_clusters=4)
kmeans.fit(X)

Visualizar os Clusters

Vamos visualizar os clusters formados pelo algoritmo k-means.

## Obter as etiquetas dos clusters para cada ponto de dados
labels = kmeans.labels_

## Plotar os pontos de dados com clusters codificados por cores
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.xlabel('Característica 1')
plt.ylabel('Característica 2')
plt.show()

Avaliar o Agrupamento

Para avaliar os resultados do agrupamento, podemos calcular a inércia dos clusters, que representa a soma dos quadrados das distâncias das amostras aos seus centros de cluster mais próximos.

## Calcular a inércia dos clusters
inertia = kmeans.inertia_
print("Inércia:", inertia)

Resumo

Neste laboratório, explorámos o algoritmo de agrupamento k-means. Gerámos um conjunto de dados sintético, realizámos o agrupamento k-means nos dados e visualizámos os clusters resultantes. Também calculamos a inércia dos clusters como uma medida do desempenho do agrupamento. O agrupamento é uma técnica poderosa para encontrar estrutura em dados não rotulados e pode ser aplicada a vários domínios e tipos de dados.