Imagine que você está organizando uma festa e distribui grupos de convidados para mesas, mas sem lugares marcados. Aos poucos, as pessoas se movem até se sentirem confortáveis entre amigos.

Depois de algumas rodadas de “mudanças de mesa” e “recontagem de amigos à volta”, o sistema fica estável. Em outras palavras, cada convidado está em uma mesa onde seu grupo faz sentido.
O algoritmo k‑means clustering faz algo semelhante com dados: ele organiza as observações clusters (i.e., as mesas) de modo que, dentro de cada grupo, as observações (i.e., os convidados de uma mesma mesa) sejam semelhantes; em contrapartida, as diferenças entre grupos (i.e., os convidados de diferentes mesas) são maiores.
Assim, o algoritmo k-means nos ajuda a revelar padrões escondidos em grandes volumes de dados.
Uma definição formal do algoritmo k–means
O k-means é um algoritmo de aprendizagem não supervisionada. Em outras palavras, ele trabalha com dados que não precisam ser previamente rotulados ou “compreendidos”.
Seu objetivo é particionar um conjunto de n observações em k clusters, de modo que cada observação pertença ao cluster cujo centróide (média dos pontos no cluster) essa observação esteja mais próxima.
Consequentemente, o k-means busca minimizar a soma das distâncias quadráticas entre cada ponto e seu centróide, garantindo a máxima coesão dentro dos grupos (Kavlakoglu & Winland, n.d.).
Além disso, é importante destacar que, no algoritmo k-means, não há variável-alvo (label) como em problemas de classificação. Em outras palavras o algoritmo k-means não prevê valores presentes no banco de dados (como na regressão logística).
Ao invés disso, o algoritmo k-means “descobre” a estrutura nos dados por similaridade. Isso o torna útil, sobretudo, para explorar perfis, identificar grupos e gerar insights preliminares sobre a estrutura dos dados.

Funcionamento passo a passo do algoritmo k-means
O funcionamento do algoritmo k-means é intuitivo, e compreendê-lo pode te ajudar a usar e a implementar a técnica no R ou em outro ambiente estatístico. Em síntese, o algoritmo k-means pode ser resumido em cinco etapas principais.
1. Escolher o número de clusters (k): você define de antemão o valor de k. Sim, esse ponto exige alguma fundamentação teórica e/ou empírica. Essa escolha depende de conhecimento prévio, de testes empíricos ou de métodos como o do “cotovelo” (scree plot), do coeficiente de silhueta e de índices de Calinski–Harabasz ou de Davies–Bouldin.

2. Inicializar os centróides: selecionar k pontos iniciais, aleatoriamente ou usando o método k-means++ (mais avançado, que melhora a escolha dos centróides iniciais). Observe que, daqui em diante, o processo é automatizado. Você só precisou definir o valor de k e, eventualmente, de algum outro hiperparâmetro, como quantas iterações (passo 5) serão feitas.

3. Atribuir observações aos clusters: calcular a distância (geralmente, a euclidiana) de cada ponto em relação aos ks centróides. Em seguida, atribuir cada ponto ao cluster cujo centróide está mais próximo.

4. Atualizar os centróides: para cada cluster, recalcular a média (centróide) das observações que lhe foram atribuídas; esse será o centróide atualizado de cada cluster.

5. Repetir (iterar) até a convergência: repetir os passos 3 e 4 até que ocorra convergência. Por exemplo, um critério de convergência pode ser examinar se os centróides mudam muito pouco ou se as atribuições dos pontos aos clusters se estabilizam.

Em resumo, o processo é iterativo e converge para uma solução estável, minimizando a variabilidade interna dos grupos (within-cluster sum of squares, WCSS).
Por fim, em termos de interpretação, cada cluster representa um subgrupo de observações semelhantes. O significado desses agrupamentos dependerá da pergunta e da área de pesquisa onde o algoritmo é aplicado.
Limitações do algoritmo k-means
Embora útil, o algoritmo k-means possui limitações que merecem atenção. Primeiramente, ele é sensível a outliers, pois pontos extremos podem distorcer a média e deslocar os centróides.
Além disso, o método pressupõe grupos aproximadamente esféricos. Ou seja, ele pode falhar quando os clusters têm formatos muito distintos.
Por fim, o resultado pode depender da inicialização dos centróides. Em outras palavras, a solução do algoritmo pode convergir a um mínimo local, dependendo da inicialização. Dessa forma, recomenda-se executar o algoritmo diversas vezes com diferentes sementes (seeds) ou empregar variações como o k-means++ para obter resultados mais estáveis.
Principais variações do algoritmo k-means
Atualmente, existem dezenas de variações do algoritmo k-means, formando uma extensa “família k” de algoritmos de clustering. Em seguida, apresentamos as principais variações na Tabela 1.
| Variação do algoritmo | Descrição técnica | Aspectos práticos | Exemplos |
| K-means++ | Aperfeiçoa a escolha inicial dos centróides, por meio de seleção probabilística e distâncias maiores entre pontos | Aumenta a estabilidade e reduz o risco de convergência a mínimos locais ruins, embora ainda dependa da escolha de k | Singh (2025) |
| K-medoids (Partitioning Around Medoids, PAM) | Usa o ponto mais central como referência (medoid), ao invés da média | Mais robusto a outliers e adequado a dados heterogêneos, mas com custo computacional maior | Kaufman e Rousseeuw (1990) |
| K-modes | Adapta o método para variáveis categóricas, substituindo médias por modas | Ideal para dados qualitativos, mas sensível à codificação das categorias e à escolha da métrica | Costa e Silva (2022) |
| K-prototypes | Combina k-means (para variáveis numéricas) e k-modes (para categóricas) | Útil em bases mistas, porém exige calibrar pesos entre dimensões numéricas e categórias; diferenças de escala podem distorcer resultados | Huang (1998) |
| Hierarchical + k-means híbrido | Integra métodos hierárquicos (para definir número inicial de clusters) e k-means (para refinamento final) | Une visão hierárquica global e ajuste local dos clusters, mas demanda mais processamento e sensibilidade à métrica de ligação | Morais et al. (2024) |
| Mini-batch k-means | Executa o k-means em pequenos lotes de dados a cada iteração. | Altamente escalável para big data e streaming, embora possa reduzir a precisão dos centróides em relação ao método completo | Scikit-Learn (n.d.) |
Exemplos de aplicações do algoritmo k-means em pesquisas brasileiras
O algoritmo k-means tem sido amplamente empregado em estudos brasileiros, tanto em ciências sociais quanto em análises de políticas públicas.
- Saúde: Alves et al. (2020) analisaram as 27 unidades federativas do Brasil usando o k-means não hierárquico com variáveis epidemiológicas (incidência, prevalência, letalidade) para agrupar estados conforme padrões de pandemia de COVID-19.
- Segurança pública: Costa et al. (2022) aplicaram o método de clustering não supervisionado (incluindo k-means) para agrupar municípios de Pernambuco conforme indicadores diversos, com vistas a perfis territoriais em função dos tipos de crimes cometidos.
- Finanças: Oliveira (2024) estudou os balanços patrimoniais de bancos brasileiros com k-means (distância euclidiana) para identificar grupos de instituições com modelos de negócio similares.
- Educação: Silva (2025) aplicou o algoritmo k-means para segmentar municípios brasileiros segundo perfil educacional, usando microdados do INEP e validações com coeficiente de silhueta e método do cotovelo.
Em síntese, esses exemplos mostram que o k-means é flexível e ocorre em diferentes domínios (saúde, segurança pública, finanças, educação) no contexto brasileiro.

Referências
Alves, H. J. P., Fernandes, F. A., Lima, K. P., Batista, B. D. O., & Fernandes, T. J. (2020). A pandemia da COVID-19 no Brasil: Uma aplicação do método de clusterização k-means. Research, Society and Development, 9(10), Article e5829109059. https://doi.org/10.33448/rsd-v9i10.9059
Costa, J. C. O. R., & Silva, M. M. (2022). A clustering-based approach for identifying groups of municipalities to support the direction of public security policies. Pesquisa Operacional, 42, Article e257930. https://doi.org/10.1590/0101-7438.2022.042.00257930
Huang, Z. (1998). Extensions to the k-means algorithm for clustering large data sets with categorical values. Data Mining and Knowledge Discovery, 2, 283–304. https://doi.org/10.1023/A:1009769707641
Kaufman, L., & Rousseeuw, P. J. (1990). Finding groups in data: An introduction to cluster analysis. John Wiley & Sons, Inc. https://doi.org/10.1002/9780470316801
Kavlakoglu, E., & Winland, V. (n.d.). What is k-means clustering? IBM. https://www.ibm.com/think/topics/k-means-clustering
Morais, A. P. B., Dias, M. S., Santos, B. S., Lima, R. H. P., & Andrade, P. R. L. (2024). Clustering techniques and innovation-based comparison in Londrina and Region companies. Semina: Ciências Exatas e Tecnológicas, 45, Article e49522. https://doi.org/10.5433/1679-0375.2024.v45.49522
Oliveira, M. (2024). Estratégias de gestão bancária no Brasil: Uma análise de clusters entre 2000 e 2022. In 52º Encontro Nacional de Economia. https://www.anpec.org.br/encontro/2024/submissao/files_I/i4-a44c414961b3b912e078406d91004f37.pdf
Scikit-Learn. (n.d.). MiniBatchKMeans [API reference v. 1.7.2 (stable)]. https://scikit-learn.org/stable/modules/generated/sklearn.cluster.MiniBatchKMeans.html
Silva, M. L. M. (2025). Desigualdades educacionais no Brasil: Uma análise por clusterização de indicadores educacionais e desempenho escolar [Trabalho de Conclusão de Curso, Universidade Federal do Ceará]. Repositório Institucional da UFC. http://repositorio.ufc.br/handle/riufc/80677
Singh, A. (2025, 1 de julho). K-means clustering: A deep dive into unsupervised learning. Medium. https://medium.com/@abhaysingh71711/k-means-clustering-a-deep-dive-into-unsupervised-learning-81213f56cfc9
Como citar este post
Reis, A. (2025, 13 de novembro). O algoritmo k-means clustering. Blog Psicometria Online. https://blog.psicometriaonline.com.br/o-algoritmo-k-means-clustering
