Agrupamento K-Means++ com Scikit-Learn

Beginner

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

Introdução

Neste laboratório, aprenderemos sobre a inicialização K-Means++ utilizando a biblioteca scikit-learn em Python. K-Means++ é um algoritmo popular para agrupar dados em clusters com base em semelhanças. É usado como inicialização padrão para o k-means. Neste laboratório, geraremos dados de amostra, calcularemos sementes a partir do k-means++ e plotaremos as sementes iniciais juntamente com os dados de amostra.

Dicas da Máquina Virtual

Após o arranque da máquina virtual, 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 que o Jupyter Notebook termine 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 o problema rapidamente para si.

Gerar dados de amostra

Usaremos a função make_blobs da biblioteca scikit-learn para gerar dados de amostra. Esta função gera blobs gaussianos isotrópicos para agrupamento. Geraremos 4000 amostras com 4 centros.

## Gerar dados de amostra
n_samples = 4000
n_components = 4

X, y_true = make_blobs(
    n_samples=n_samples, centers=n_components, cluster_std=0.60, random_state=0
)
X = X[:, ::-1]

Calcular sementes a partir do k-means++

Usaremos a função kmeans_plusplus da biblioteca scikit-learn para calcular as sementes a partir do k-means++. Esta função retorna os centros iniciais dos clusters que são usados para o agrupamento k-means. Calcularemos 4 clusters usando o k-means++.

## Calcular sementes a partir do k-means++
centers_init, indices = kmeans_plusplus(X, n_clusters=4, random_state=0)

Plotar sementes iniciais ao lado dos dados de amostra

Usaremos a biblioteca matplotlib para plotar as sementes iniciais ao lado dos dados de amostra. As sementes iniciais serão mostradas como pontos azuis, e os dados de amostra serão mostrados como pontos coloridos.

## Plotar sementes iniciais ao lado dos dados de amostra
plt.figure(1)
colors = ["#4EACC5", "#FF9C34", "#4E9A06", "m"]

for k, col in enumerate(colors):
    cluster_data = y_true == k
    plt.scatter(X[cluster_data, 0], X[cluster_data, 1], c=col, marker=".", s=10)

plt.scatter(centers_init[:, 0], centers_init[:, 1], c="b", s=50)
plt.title("Inicialização K-Means++")
plt.xticks([])
plt.yticks([])
plt.show()

Resumo

Neste laboratório, aprendemos sobre a inicialização K-Means++ utilizando a biblioteca scikit-learn em Python. Geramos dados de amostra, calculamos sementes a partir do k-means++ e plotamos as sementes iniciais ao lado dos dados de amostra. O K-Means++ é um algoritmo popular para agrupar dados em grupos com base em semelhanças e é usado como inicialização padrão para o k-means.