Explorando o Algoritmo K-Means Clustering com Python

Beginner

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

Introdução

Neste laboratório, exploraremos o algoritmo K-Means Clustering e sua implementação em Python utilizando a biblioteca scikit-learn. O agrupamento (clustering) é um tipo de aprendizado não supervisionado que envolve agrupar pontos de dados em clusters com base em suas similaridades. O K-Means Clustering é um algoritmo popular para agrupamento e é amplamente utilizado em diversos campos, como processamento de imagens, bioinformática e pesquisa de marketing.

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 Bibliotecas

Primeiro, precisamos importar as bibliotecas necessárias para este laboratório. Usaremos NumPy, Matplotlib e scikit-learn.

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

Carregar Dados

Em seguida, carregaremos o conjunto de dados iris, um conjunto de dados popular em aprendizado de máquina. Este conjunto de dados contém informações sobre as características de diferentes tipos de flores de íris. Usaremos este conjunto de dados para demonstrar o algoritmo K-Means Clustering.

iris = datasets.load_iris()
X = iris.data
y = iris.target

Visualizar Dados

Antes de aplicar o algoritmo K-Means Clustering, vamos primeiro visualizar os dados para melhor compreendê-los. Usaremos um gráfico de dispersão 3D para visualizar os dados.

fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, projection="3d")
ax.scatter(X[:, 0], X[:, 1], X[:, 2])
ax.set_xlabel("Comprimento da sépala")
ax.set_ylabel("Largura da sépala")
ax.set_zlabel("Comprimento da pétala")
plt.show()

Aplicar K-Means Clustering

Agora, aplicaremos o algoritmo K-Means Clustering aos nossos dados. Inicializaremos o algoritmo com 3 clusters e o ajustaremos aos nossos dados.

kmeans = KMeans(n_clusters=3)
kmeans.fit(X)

Visualizar Clusters

Após aplicar o algoritmo K-Means Clustering, vamos visualizar os clusters formados. Usaremos um gráfico de dispersão 3D para visualizar os pontos de dados e seus respectivos clusters.

fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, projection="3d")
ax.scatter(X[:, 0], X[:, 1], X[:, 2], c=kmeans.labels_)
ax.set_xlabel("Comprimento da sépala")
ax.set_ylabel("Largura da sépala")
ax.set_zlabel("Comprimento da pétala")
plt.show()

Avaliar o Clustering

Para avaliar o desempenho do algoritmo K-Means Clustering, podemos calcular a pontuação de inércia. A pontuação de inércia mede a soma das distâncias entre cada ponto de dados e o centro do cluster atribuído. Uma pontuação de inércia mais baixa indica um melhor agrupamento.

print("Pontuação de Inércia:", kmeans.inertia_)

Resumo

Neste laboratório, aprendemos sobre o algoritmo K-Means Clustering e sua implementação em Python usando a biblioteca scikit-learn. Carregamos o conjunto de dados iris, visualizamos os dados, aplicamos o algoritmo K-Means Clustering e avaliamos seu desempenho. O clustering é uma técnica poderosa para análise de dados e pode ser usada em uma variedade de aplicações.