K-Means Clustering
Explora o K-Means Clustering para aprendizagem não supervisionada. Descobre como este algoritmo particiona dados, melhora aplicações de IA e informa modelos como o Ultralytics YOLO26.
O agrupamento K-Means é um algoritmo fundamental e amplamente utilizado no campo da aprendizagem não supervisionada, concebido para descobrir estruturas ocultas em dados não rotulados. O seu principal objetivo é dividir um conjunto de dados em subgrupos distintos, conhecidos como clusters, de modo que os pontos de dados dentro do mesmo grupo sejam tão semelhantes quanto possível, enquanto os de grupos diferentes sejam distintos. Como pilar da mineração de dados e da análise exploratória, o K-Means permite aos cientistas de dados organizar automaticamente informações complexas em categorias geríveis, sem necessidade de rótulos predefinidos ou supervisão humana.
Como funciona o algoritmo#
A operação do K-Means é iterativa e baseia-se em métricas de distância para determinar o agrupamento ideal dos dados de treino. O algoritmo funciona organizando os itens em K clusters, em que cada item pertence ao cluster com a média, ou centróide, mais próxima. Este processo minimiza a variância dentro de cada grupo. O fluxo de trabalho geralmente segue estes passos:
-
Inicialização: O algoritmo seleciona K pontos iniciais como centróides. Estes podem ser escolhidos aleatoriamente ou através de métodos otimizados, como o k-means++, para acelerar a convergência.
-
Atribuição: Cada ponto de dados do conjunto de dados é atribuído ao centróide mais próximo com base numa métrica de distância específica, geralmente a distância euclidiana.
-
Atualização: Os centróides são recalculados obtendo 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 deixem de se mover significativamente ou seja atingido um número máximo de iterações.
Determinar o número correto de clusters (K) é um aspeto crítico da utilização deste algoritmo. Os profissionais utilizam frequentemente técnicas como o método do cotovelo ou analisam o coeficiente de silhueta para avaliar quão bem separados estão os clusters resultantes.
Aplicações dos Vetores de Direcionamento no Mundo Real em IA#
O agrupamento K-Means é altamente versátil e é utilizado em vários setores para simplificação e pré-processamento de dados.
- Compressão de imagens e quantização de cores: Na visão computacional (CV), o K-Means ajuda a reduzir o tamanho dos ficheiros de imagem agrupando as cores dos píxeis. Ao agrupar milhares de cores num conjunto menor de cores dominantes, o algoritmo realiza efetivamente uma redução da dimensionalidade, preservando simultaneamente 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 agrupar clientes com base no histórico de compras, em dados demográficos ou no comportamento no website. Isto permite criar estratégias de marketing direcionadas, um componente essencial das soluções de IA no retalho. Ao identificar compradores de elevado valor ou clientes em risco de abandono, as empresas podem adaptar eficazmente as suas mensagens.
- Deteção de anomalias: Ao aprender a estrutura dos clusters de dados "normais", os sistemas podem identificar valores atípicos que se encontram muito afastados de qualquer centróide. Isto é útil para a deteção de fraude no setor financeiro e para a deteção de anomalias na segurança de redes, ajudando a sinalizar atividades suspeitas que se desviam dos padrões habituais.
- Geração de caixas âncora: Historicamente, os detetores de objetos, como as versões mais antigas do YOLO, utilizavam K-Means para calcular caixas âncora ideais a partir de conjuntos de dados de treino. Embora os modelos modernos, como o YOLO26, utilizem métodos avançados sem âncoras, compreender o K-Means continua a ser relevante para a evolução das arquiteturas de deteção.
Exemplo de Implementação#
Embora frameworks de deep learning, como a Ultralytics Platform, tratem de pipelines de treino complexos, o K-Means é frequentemente utilizado para analisar estatísticas de conjuntos de dados. O seguinte trecho de Python demonstra como agrupar coordenadas 2D — simulando centróides de objetos — utilizando 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 0Comparação com algoritmos relacionados#
É importante distinguir o K-Means de outros algoritmos com nomes ou funções semelhantes para garantir que é selecionada a ferramenta correta para um projeto.
- K-Means vs. Vizinhos Mais Próximos (KNN): Estes algoritmos são frequentemente confundidos devido ao "K" nos seus nomes. O K-Means é um algoritmo não supervisionado utilizado para agrupar dados não rotulados. Em contrapartida, Vizinhos Mais Próximos (KNN) é um algoritmo de aprendizagem supervisionada utilizado para classificação de imagens e regressão, que depende de dados rotulados para fazer previsões com base na classe maioritária dos vizinhos.
- K-Means vs. DBSCAN: Embora ambos agrupem dados, o K-Means assume que os clusters são esféricos e requer que o número de clusters seja definido previamente. O DBSCAN agrupa os dados com base na densidade, consegue encontrar clusters de formas arbitrárias e lida melhor com o ruído. Isto torna o DBSCAN superior para dados espaciais complexos encontrados em conjuntos de dados com estruturas irregulares, quando o número de clusters é desconhecido.









