Agrupamento K-Means
Explore o agrupamento K-Means para aprendizagem não supervisionada. Descubra como este algoritmo divide os dados, aprimora as aplicações de IA e informa modelos como Ultralytics .
O agrupamento K-Means é um algoritmo fundamental e amplamente utilizado no campo da
aprendizagem não supervisionada, concebido para revelar
estruturas ocultas em dados não rotulados. O seu principal
objetivo é dividir um conjunto de dados em subgrupos distintos, conhecidos como clusters, de forma que os pontos de dados dentro do mesmo
grupo sejam o mais semelhantes possível, enquanto aqueles em grupos diferentes sejam distintos. Como pedra angular da
mineração de dados e da análise exploratória, o K-Means permite que
os cientistas de dados organizem automaticamente informações complexas em categorias gerenciáveis, sem a necessidade de
rótulos predefinidos ou supervisão humana.
Como funciona o algoritmo
A operação do K-Means é iterativa e depende de métricas de distância para determinar o agrupamento ideal dos
dados de treino. O algoritmo opera organizando
itens em K clusters, onde cada item pertence ao cluster com a média mais próxima, ou centroide. Esse
processo minimiza a variância dentro de cada grupo. O fluxo de trabalho
geralmente segue estas etapas:
-
Inicialização: O algoritmo seleciona K pontos iniciais como centróides. Estes podem ser escolhidos
aleatoriamente ou através de métodos otimizados como k-means++ para acelerar
a convergência.
-
Atribuição: Cada ponto de dados no conjunto de dados é atribuído ao centroide mais próximo com base numa
métrica de distância específica, mais comumente a
distância euclidiana.
-
Atualização: Os centróides são recalculados tomando-se a média de todos os pontos de dados atribuídos a
esse cluster.
-
Iteração: Os passos 2 e 3 são repetidos até que os centróides não se movam mais significativamente ou até que um número máximo
de iterações seja atingido.
Determinar o número correto de agrupamentos (K) é um aspeto crítico da utilização deste algoritmo. Os profissionais
frequentemente utilizam técnicas como o método Elbow ou
analisam a
pontuação Silhouette
para avaliar o quão bem separados estão os agrupamentos resultantes.
Aplicações do mundo real em IA
O agrupamento K-Means é altamente versátil e encontra utilidade em vários setores para simplificação e
pré-processamento de dados.
-
Compressão de imagem e quantização de cor: Na
visão computacional (CV), o K-Means ajuda a reduzir o
tamanho dos ficheiros de imagens através do agrupamento de cores de pixels. Ao agrupar milhares de cores num conjunto menor de cores dominantes,
o algoritmo realiza eficazmente a
redução da dimensionalidade, ao mesmo tempo que
preserva a estrutura visual da imagem. Esta técnica é frequentemente utilizada antes do treino de modelos avançados
de deteção de objetos para normalizar os dados de entrada.
-
Segmentação de clientes: as empresas utilizam o agrupamento para classificar os clientes com base no histórico de compras,
dados demográficos ou comportamento no site. Isso permite estratégias de marketing direcionadas, um componente essencial da
IA em soluções de retalho. Ao identificar compradores de alto valor
ou riscos de rotatividade, as empresas podem personalizar as suas mensagens de forma eficaz.
-
Detecção de anomalias: Ao aprender a estrutura de clusters de dados "normais", os sistemas podem
identificar valores atípicos que se afastam muito de qualquer centroide. Isso é
valioso para a detecção de fraudes em finanças e
detecção de anomalias em segurança de rede, ajudando
a sinalizar atividades suspeitas que se desviam dos padrões padrão.
-
Geração de caixas âncora: Historicamente, detectores de objetos como YOLO mais antigas YOLO utilizavam K-Means para
calcular caixas âncora ideais a partir de conjuntos de dados de treino
. Embora modelos modernos como o YOLO26 utilizem métodos avançados
sem âncora, compreender o K-Means continua a ser relevante para a evolução das arquiteturas de detecção.
Exemplo de implementação
Enquanto estruturas de aprendizagem profunda, como a Ultralytics , lidam com
pipelines de treinamento complexos, o K-Means é frequentemente usado para analisar estatísticas de conjuntos de dados. O seguinte Python
demonstra como agrupar coordenadas 2D — simulando centróides de objetos — usando a popular
biblioteca Scikit-learn.
import numpy as np
from sklearn.cluster import KMeans
# Simulated coordinates of detected objects (e.g., from YOLO26 inference)
points = np.array([[10, 10], [12, 11], [100, 100], [102, 101], [10, 12], [101, 102]])
# Initialize K-Means to find 2 distinct groups (clusters)
kmeans = KMeans(n_clusters=2, random_state=0, n_init="auto").fit(points)
# Output the cluster labels (0 or 1) for each point
print(f"Cluster Labels: {kmeans.labels_}")
# Output: [1 1 0 0 1 0] -> Points near (10,10) are Cluster 1, near (100,100) are Cluster 0
Comparação com algoritmos relacionados
É importante distinguir o K-Means de outros algoritmos com nomes ou funções semelhantes para garantir que a ferramenta correta
seja selecionada para um projeto.
-
K-Means vs. K-Nearest Neighbors (KNN): Estes são frequentemente confundidos devido ao "K" nos seus
nomes. K-Means é um algoritmo não supervisionado usado para agrupar dados não rotulados. Em contrapartida,
K-Nearest Neighbors (KNN) é um
algoritmo de aprendizagem supervisionado usado para
classificação e regressão de imagens, que se baseia
em dados rotulados para fazer previsões com base na classe majoritária de vizinhos.
-
K-Means vs. DBSCAN: Embora ambos agrupem dados, o K-Means assume que os agrupamentos são esféricos e requer que
o número de agrupamentos seja definido previamente.
ODBSCAN
agrupa dados com base na densidade, pode encontrar agrupamentos de formas arbitrárias e lida melhor com ruído. Isso torna o DBSCAN
superior para dados espaciais complexos encontrados em conjuntos de dados com
estruturas irregulares, onde o número de agrupamentos é desconhecido.