Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Atividade Tratamento Dados] K-Means #58

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 5-tratamentodedados/opcoes/imgs/k-means.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
43 changes: 43 additions & 0 deletions 5-tratamentodedados/opcoes/k-means.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# K-means clustering

- Tipo de aprendizado: Não-supervisionado
- Subcategoria: Clusterização
- Autoria: MacQueen, 1967

## Descrição

### Onde é usado (tecnicamente)

Utilizado para organizar dados em grupos de similaridade.

### Como é utilizado

![K-Means](imgs/k-means.png)

Não precisa de um conjunto de treinamento rotulado, ou seja, não há indicação a priori de quais dados pertencem a quais grupos.

Como um algoritmo de aprendizado não-supervisionado, como não há exemplos do que seria esperado, a avaliação pode ser mais difícil que o aprendizado supervisionado.
Usualmente, a qualidade do agrupamento obtido está relacionado à maximização da distância inter-cluster (entre pontos de dados de clusters diferentes) e minimização da distância intra-cluster (dentro de um mesmo cluster, a ideia é que a distância entre os pontos de dados seja minimizada).

Seu hiperparâmetro (uma configuração do algoritmo de agrupamento) é o número de clusters k (número de grupos de dados), que pode ser obtido experimentalmente, a depender da aplicação.

Começa com centroides (centros dos agrupamentos) atribuidos de forma aleatória, e então reagrupa os dados e centroides até que um critério de parada seja atingido.
Critério de parada: quando há reclassificação mínima dos dados a diferentes clusters, ou quando há mínima mudança nos centroides.

![K-Means Convergence](imgs/K-means_convergence.gif)

Como pontos positivos, é simples de implementar e de entender, eficiente e algoritmo de aprendizado não-supervisionado mais popular.

Como pontos negativos, o usuário precisa especificar k (número de grupos de dados), o algoritmo é sensível a outliers (pontos "fora da curva"), e não é indicado para agrupar dados cujos agrupamentos tenham formato não-convexo.

### Exemplos de caso de uso

Agrupar documentos de acordo com diferentes critérios, agrupamento de clientes, agrupamento de registros de pedidos de call center.

## Referências

[MacQueen, 1967](https://www.semanticscholar.org/paper/Some-methods-for-classification-and-analysis-of-MacQueen/ac8ab51a86f1a9ae74dd0e4576d1a019f5e654ed)

[K-means use cases](https://dzone.com/articles/10-interesting-use-cases-for-the-k-means-algorithm)

[K-Means GIF](https://commons.wikimedia.org/wiki/File:K-means_convergence.gif)