Leia isso em outros idiomas: English
O algoritmo k-Means é um algoritmo de aprendizado de máquina não supervisionado. É um algoritmo de agrupamento, que agrupa os dados da amostra com base na semelhança entre as dimensões dos vetores.
Na classificação k-Means, a saída é um conjunto de classes atribuídas a cada vetor. Cada localização de cluster é continuamente otimizada para obter as localizações precisas de cada cluster de forma que representem cada grupo claramente.
A ideia é calcular a similaridade entre a localização do cluster e os vetores de dados e reatribuir os clusters com base nela. Distância Euclidiana é usado principalmente para esta tarefa.
Fonte: Wikipedia
O algoritmo é o seguinte:
- Verifique se há erros como dados inválidos/inconsistentes
- Inicialize os locais do cluster
k
com pontosk
iniciais/aleatórios - Calcule a distância de cada ponto de dados de cada cluster
- Atribua o rótulo do cluster de cada ponto de dados igual ao do cluster em sua distância mínima
- Calcule o centroide de cada cluster com base nos pontos de dados que ele contém
- Repita cada uma das etapas acima até que as localizações do centroide estejam variando
Aqui está uma visualização do agrupamento k-Means para melhor compreensão:
Fonte: Wikipedia
Os centroides estão se movendo continuamente para criar uma melhor distinção entre os diferentes conjuntos de pontos de dados. Como podemos ver, após algumas iterações, a diferença de centroides é bastante baixa entre as iterações. Por exemplo, entre as iterações 13
e 14
a diferença é bem pequena porque o otimizador está ajustando os casos limite.