Yolo Vision Shenzhen
Shenzhen
Junte-se agora
Glossário

Agrupamento K-Means

Aprenda sobre Agrupamento K-Means, um algoritmo chave de aprendizado não supervisionado para agrupar dados em clusters. Explore seu processo, aplicações e comparações!

O K-Means Clustering é um algoritmo amplamente utilizado no domínio da aprendizagem não supervisionada, concebido para dividir um conjunto de dados em subgrupos distintos e não sobrepostos. No contexto mais alargado da aprendizagem automática (ML), este método é essencial para descobrir padrões e estruturas ocultas em dados não rotulados. O algoritmo funciona organizando os pontos de dados em um número $K$ de clusters, onde cada ponto pertence ao cluster com a média mais próxima, servindo como protótipo do grupo. grupo. Esta abordagem ajuda a minimizar a variância dentro de cada cluster, garantindo que os pontos de dados no mesmo grupo são tão semelhantes quanto possível, mantendo os diferentes grupos distintos.

Como funciona o algoritmo

O processo do K-Means é iterativo e começa com a seleção de $K$ centróides iniciais, que funcionam como pontos centrais para os clusters. Esses centróides podem ser escolhidos aleatoriamente ou por meio de técnicas de inicialização mais inteligentes, como inicialização k-means++ para melhorar a velocidade de convergência. O algoritmo passa então por duas etapas primárias até que os resultados se estabilizem:

  1. Atribuição: Cada ponto de dados nos dados de treino é atribuído ao centróide mais próximo mais próximo com base numa métrica de distância, normalmente a distância euclidiana. Este passo agrupa efetivamente os dados em $K$ clusters.
  2. Atualização: O novo centróide para cada cluster é calculado calculando a média de todos os pontos de dados atribuídos a esse cluster específico.

Este ciclo repete-se até que os centróides deixem de se mover significativamente, indicando que o algoritmo convergiu. A determinação do número ideal de clusters é uma parte crítica do processo, frequentemente conseguida através de técnicas como o método do cotovelo ou através da análise da Pontuação de silhueta para medir a distância de separação entre os clusters resultantes.

Aplicações do mundo real em IA

O K-Means Clustering é versátil e encontra utilidade em vários sectores para tarefas de extração e análise de dados.

  • Segmentação de clientes: As empresas utilizam a segmentação para agrupar clientes com base no comportamento de compra, dados demográficos ou histórico de navegação. Ao identificar grupos distintos, as empresas podem adaptar as estratégias de marketing estratégias de marketing, à semelhança da forma como a IA no retalho melhora a segmentação de clientes e a gestão de stocks.
  • Compressão de imagens: No domínio da visão computacional (CV), o K-Means é utilizado para quantização de cores. Esta técnica reduz o número de cores únicas numa imagem, agrupando os valores dos pixels, realizando efetivamente redução da dimensionalidade enquanto redução da dimensionalidade, mantendo a integridade visual da imagem.
  • Deteção de anomalias: Ao aprender a estrutura dos grupos de dados normais, os sistemas podem identificar anomalias que estão longe de qualquer centróide. Isto é valioso para aplicações de segurança e deteção de anomalias no tráfego da rede.

K-Means na história da deteção de objectos

Enquanto os detectores de objectos modernos, como o Ultralytics YOLO11 frequentemente utilizam técnicas de regressão avançadas ou cabeças sem âncoras, o K-Means desempenhou um papel fundamental na evolução dos modelos de deteção. As iterações anteriores, como o YOLOv2 até ao YOLOv5, utilizaram o agrupamento K-Means nas dimensões da caixa delimitadora dimensões do conjunto de dadosCOCO para determinar as caixas de ancoragem óptimas. Estas âncoras pré-calculadas forneceram ao modelo Estas âncoras pré-calculadas forneceram ao modelo melhores antecedentes para prever as formas dos objectos, melhorando significativamente a estabilidade e a recuperação do treino.

K-Means vs. K-Nearest Neighbors (KNN)

É comum confundir K-Means com K-Nearest Neighbors (KNN), mas eles servem objectivos fundamentalmente diferentes.

  • O K-Means é um algoritmo não supervisionado utilizado para agrupamento. Não Não requer dados rotulados e concentra-se em encontrar a estrutura inerente no conjunto de dados.
  • O KNN é um algoritmo de aprendizagem supervisionado utilizado para classificação e regressão de imagens. Este algoritmo baseia-se em dados rotulados para classify novos pontos de dados com base na classe maioritária dos seus vizinhos mais próximos.

Outro conceito relacionado é o DBSCAN, que agrupa com base na densidade e não na distância de um ponto central. Ao contrário do K-Means, o DBSCAN não requer que o número de o número de clusters a ser especificado de antemão e é melhor para lidar com outliers.

Exemplo de código: Quantização de cores

O exemplo Python a seguir demonstra como usar o K-Means para agrupar cores de pixel, uma etapa comum de passo comum de pré-processamento de dados em tarefas de visão.

import numpy as np
from sklearn.cluster import KMeans

# Simulate a small image (10x10 pixels) with 3 RGB channels
# In a real scenario, you would load an image using cv2.imread()
image_data = np.random.randint(0, 255, (10, 10, 3), dtype=np.uint8)
pixels = image_data.reshape(-1, 3)

# Apply K-Means to reduce the image to 3 dominant colors (clusters)
kmeans = KMeans(n_clusters=3, n_init="auto", random_state=42).fit(pixels)

# The cluster centers represent the dominant colors
print(f"Dominant RGB Colors:\n{kmeans.cluster_centers_}")

Junte-se à comunidade Ultralytics

Junte-se ao futuro da IA. Conecte-se, colabore e cresça com inovadores globais

Junte-se agora