* Update README.pt-BR.md * TRIE README.pt-BR typo * TREE README.pt-BR typo * Stack README.pt-BR typo * Priority Queue README.pt-BR typo * hash-table README.pt-BR typo * doubly-linked-list README.pt-BR typo * disjoint-set README.pt-BR typo * bloom-filter README.pt-BR typo * merge-sort pt-BR translation * merge-sort README added pt-BR option * insertion sort pt-BR translation * insertion sort README added pt-br option * heap-sort pt-BR translation * heap-sort READMED added pt-BR option * bubble sort pt-BR typo * pt-BR translation for sorting algorithms Fixed typos and translated all the missing algorithms * Update README.pt-BR.md * linked list pt-BR translation * ml pt-BR translation * fix typo in README Co-authored-by: Oleksii Trekhleb <trehleb@gmail.com>
2.2 KiB
Algoritmo k-Means
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
kcom pontoskiniciais/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.
