K-means
K-means no Data Mining 
❏Classificação 
❏Regressão 
❏Descoberta de Regras de Associação 
❏Descoberta de Padrões Sequenciai...
Definição de Agrupamento 
Dado um conjunto de pontos, cada tendo um 
conjunto de atributos, e uma métrica de 
similaridade...
Agrupamento pode ser ambíguo
K-means 
●A idéia do algoritmo K-Means (também 
chamado de K-Médias) é fornecer uma 
classificação de informações de acord...
Métricas de Similaridade 
●Distância Euclidiana (para atributos 
contínuos) 
●Outras métricas específicas para cada 
probl...
Distância Euclidiana 
É a distância entre dois pontos, 
que pode ser provada pela 
aplicação repetida do teorema de 
Pitág...
Classes 
O usuário deve fornecer quantidade de classes 
que ele deseja. 
K-means
Agrupamento por K-means 
●Cada grupo é associado a um centróide. 
(Ponto Central) 
●Cada ponto é atribuído a um grupo com ...
Centroids Algorithm
Iteração dos centróides
K-means na prática
O departamento de marketing 
de uma empresa deseja 
segmentar os clientes para 
poder oferecer descontos 
diferenciados e ...
Classificação 
Dois atributos: 
●Quantidade de Pedidos 
●Total Gasto 
●3 grupos = 3 centróides 
● (Obs: Na vida real o alg...
Como otimizar o 
K-means?
Passos do Algoritmo 
Passo 1: Fornecer valores para os centróides. 
Passo 2: Gerar Matriz de Distância entre cada ponto e ...
Passos do Algoritmo 
Passo 1: Fornecer valores para os centróides. 
Passo 2: Gerar Matriz de Distância entre cada ponto e ...
Passos do Algoritmo 
Passo 1: Fornecer valores para os centróides. 
Passo 2: Gerar Matriz de Distância entre cada ponto e ...
Passos do Algoritmo 
Passo 1: Fornecer valores para os centróides. 
Passo 2: Gerar Matriz de Distância entre cada ponto e ...
Passos do Algoritmo 
Passo 1: Fornecer valores para os centróides. 
Passo 2: Gerar Matriz de Distância entre cada ponto e ...
Geração da Matriz de Distância 
Se temos N pontos e k centróides 
teremos que calcular N x k distâncias 
neste passo. 
Ex:...
Passos do Algoritmo 
Passo 1: Fornecer valores para os centróides. 
Passo 2: Gerar Matriz de Distância entre cada ponto e ...
Passos do Algoritmo 
Passo 1: Fornecer valores para os centróides. 
Passo 2: Gerar Matriz de Distância entre cada ponto e ...
Associação dos pontos 
 Os pontos são classificados de acordo com 
sua distância dos centróides de cada classe. 
 O cent...
Passos do Algoritmo 
Passo 1: Fornecer valores para os centróides. 
Passo 2: Gerar Matriz de Distância entre cada ponto e ...
Passos do Algoritmo 
Passo 1: Fornecer valores para os centróides. 
Passo 2: Gerar Matriz de Distância entre cada ponto e ...
Passos do Algoritmo 
Passo 1: Fornecer valores para os centróides. 
Passo 2: Gerar Matriz de Distância entre cada ponto e ...
Passos do Algoritmo 
Passo 1: Fornecer valores para os centróides. 
Passo 2: Gerar Matriz de Distância entre cada ponto e ...
Passos do Algoritmo 
Passo 1: Fornecer É valores necessário para os centróides. 
utilizar 
Passo 2: Gerar Matriz informaçõ...
K-means- Áreas de Maior 
Processamento 
Passo 1: Fornecer valores para os centróides. 
Passo 2: Gerar Matriz de Distância ...
K-means usando MapReduce 
Fonte: 
http://www.iterativemapreduce.org/samples.html
K-means MPI e OpenMP 
http://users.eecs.northwestern.edu/~wkliao/Kmeans/ 
http://www.cse.buffalo.edu/faculty/miller/Course...
K-means com MPI 
Consider N data points each of it is vector and 
P processors. 
(1) Assign N/P data points to each proces...
K-means com MPI 
(3) In each processor for each data point find 
membership using the cluster mean. 
(4) Recalculate local...
K-means com MPI 
(5) Globally broadcast all local means for each 
processor find the global mean. 
(6) Go to step (3) and ...
K-means com OpenMP 
Consider N data points each of it vector and P 
threads. 
(1) Node 0 randomly choose K points as assig...
K-means com OpenMP 
(3) Recalculate local means for each cluster in 
each 
thread. 
(4) Globally broadcast all local means...
K-means com OpenMP 
(5) Find the global mean in each thread 
(6) Go to step (2) and repeat until the number 
of iterations...
MPI Results
MPI vs. OpenMP
Kmeans - Datamining
Kmeans - Datamining
Kmeans - Datamining
Kmeans - Datamining
Kmeans - Datamining
Próximos SlideShares
Carregando em…5
×

Kmeans - Datamining

473 visualizações

Publicada em

Datamining algorithm for classification

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
473
No SlideShare
0
A partir de incorporações
0
Número de incorporações
10
Ações
Compartilhamentos
0
Downloads
15
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Kmeans - Datamining

  1. 1. K-means
  2. 2. K-means no Data Mining ❏Classificação ❏Regressão ❏Descoberta de Regras de Associação ❏Descoberta de Padrões Sequenciais ❏Agrupamento (clustering) ❏Detecção de Anomalias
  3. 3. Definição de Agrupamento Dado um conjunto de pontos, cada tendo um conjunto de atributos, e uma métrica de similaridade entre eles, achar agrupamentos tal que: ●Pontos similares entre si formam um agrupamento. ●Pontos menos similares entre si são de diferentes agrupamentos.
  4. 4. Agrupamento pode ser ambíguo
  5. 5. K-means ●A idéia do algoritmo K-Means (também chamado de K-Médias) é fornecer uma classificação de informações de acordo com os próprios dados. ●Baseada em análise e comparações entre os valores numéricos dos dados.
  6. 6. Métricas de Similaridade ●Distância Euclidiana (para atributos contínuos) ●Outras métricas específicas para cada problema.
  7. 7. Distância Euclidiana É a distância entre dois pontos, que pode ser provada pela aplicação repetida do teorema de Pitágoras.
  8. 8. Classes O usuário deve fornecer quantidade de classes que ele deseja. K-means
  9. 9. Agrupamento por K-means ●Cada grupo é associado a um centróide. (Ponto Central) ●Cada ponto é atribuído a um grupo com o centróide mais próximo.
  10. 10. Centroids Algorithm
  11. 11. Iteração dos centróides
  12. 12. K-means na prática
  13. 13. O departamento de marketing de uma empresa deseja segmentar os clientes para poder oferecer descontos diferenciados e outros benefícios. A segmentação dos clientes deve dividir todos os clientes da base de dados em três categorias: Clientes Ouro, Clientes Prata e Clientes Bronze.
  14. 14. Classificação Dois atributos: ●Quantidade de Pedidos ●Total Gasto ●3 grupos = 3 centróides ● (Obs: Na vida real o algoritmo K-Means pode trabalhar com qualquer quantidade de atributos para classificar os valores.)
  15. 15. Como otimizar o K-means?
  16. 16. Passos do Algoritmo Passo 1: Fornecer valores para os centróides. Passo 2: Gerar Matriz de Distância entre cada ponto e os centróides. Passo 3: Associar cada ponto para o centróide mais perto. Passo 4: Calcular os novos centróides Passo 5: Repetir até que nenhum ponto seja associado para um centróide diferente.
  17. 17. Passos do Algoritmo Passo 1: Fornecer valores para os centróides. Passo 2: Gerar Matriz de Distância entre cada ponto e os centróides. Passo 3: Associar cada ponto para o centróide mais perto. Passo 4: Calcular os novos centróides Passo 5: Repetir até que nenhum ponto seja associado para um centróide diferente.
  18. 18. Passos do Algoritmo Passo 1: Fornecer valores para os centróides. Passo 2: Gerar Matriz de Distância entre cada ponto e os centróides. Passo 3: Associar cada ponto para o centróide mais perto. Passo 4: Calcular os novos centróides Passo 5: Repetir até que nenhum ponto seja associado para um centróide diferente.
  19. 19. Passos do Algoritmo Passo 1: Fornecer valores para os centróides. Passo 2: Gerar Matriz de Distância entre cada ponto e os centróides. Passo 3: Associar cada ponto para o centróide mais perto. Passo 4: Calcular os novos centróides Passo 5: Repetir até que nenhum ponto seja associado para um centróide diferente.
  20. 20. Passos do Algoritmo Passo 1: Fornecer valores para os centróides. Passo 2: Gerar Matriz de Distância entre cada ponto e os centróides. Passo 3: Associar cada ponto para o centróide mais perto. Passo 4: Calcular os novos centróides Passo 5: Repetir até que nenhum ponto seja associado para um centróide diferente.
  21. 21. Geração da Matriz de Distância Se temos N pontos e k centróides teremos que calcular N x k distâncias neste passo. Ex: 20.000 registros no BD 5 grupos/centróides 100.000 cálculos por iteração
  22. 22. Passos do Algoritmo Passo 1: Fornecer valores para os centróides. Passo 2: Gerar Matriz de Distância entre cada ponto e os centróides. Passo 3: Associar cada ponto para o centróide mais perto. Passo 4: Calcular os novos centróides Passo 5: Repetir até que nenhum ponto seja associado para um centróide diferente.
  23. 23. Passos do Algoritmo Passo 1: Fornecer valores para os centróides. Passo 2: Gerar Matriz de Distância entre cada ponto e os centróides. Passo 3: Associar cada ponto para o centróide mais perto. Passo 4: Calcular os novos centróides Passo 5: Repetir até que nenhum ponto seja associado para um centróide diferente.
  24. 24. Associação dos pontos  Os pontos são classificados de acordo com sua distância dos centróides de cada classe.  O centróide que está mais perto deste ponto vai ‘incorporá-lo’.  Cada ponto precisa realizar uma verificação.
  25. 25. Passos do Algoritmo Passo 1: Fornecer valores para os centróides. Passo 2: Gerar Matriz de Distância entre cada ponto e os centróides. Passo 3: Associar cada ponto para o centróide mais perto. Passo 4: Calcular os novos centróides Passo 5: Repetir até que nenhum ponto seja associado para um centróide diferente.
  26. 26. Passos do Algoritmo Passo 1: Fornecer valores para os centróides. Passo 2: Gerar Matriz de Distância entre cada ponto e os centróides. Passo 3: Associar cada ponto para o centróide mais perto. Passo 4: Calcular os novos centróides Passo 5: Repetir até que nenhum ponto seja associado para um centróide diferente.
  27. 27. Passos do Algoritmo Passo 1: Fornecer valores para os centróides. Passo 2: Gerar Matriz de Distância entre cada ponto e os centróides. Passo 3: Associar cada ponto para o centróide mais perto. Passo 4: Calcular os novos centróides Passo 5: Repetir até que nenhum ponto seja associado para um centróide diferente.
  28. 28. Passos do Algoritmo Passo 1: Fornecer valores para os centróides. Passo 2: Gerar Matriz de Distância entre cada ponto e os centróides. Passo 3: Associar cada ponto para o centróide mais perto. Passo 4: Calcular os novos centróides Passo 5: Repetir até que nenhum ponto seja associado para um centróide diferente.
  29. 29. Passos do Algoritmo Passo 1: Fornecer É valores necessário para os centróides. utilizar Passo 2: Gerar Matriz informações de Distância das entre iterações cada ponto e os centróides. anteriores. (dependência de Passo 3: Associar cada dados) ponto para o centróide mais perto. Passo 4: Calcular os novos centróides Passo 5: Repetir até que nenhum ponto seja associado para um centróide diferente.
  30. 30. K-means- Áreas de Maior Processamento Passo 1: Fornecer valores para os centróides. Passo 2: Gerar Matriz de Distância entre cada ponto e os centróides. Passo 3: Associar cada ponto para o centróide mais perto. Passo 4: Calcular os novos centróides Passo 5: Repetir até que nenhum ponto seja associado para um centróide diferente.
  31. 31. K-means usando MapReduce Fonte: http://www.iterativemapreduce.org/samples.html
  32. 32. K-means MPI e OpenMP http://users.eecs.northwestern.edu/~wkliao/Kmeans/ http://www.cse.buffalo.edu/faculty/miller/Courses/CSE633/Chandramohan-Fall-2012-CSE633.pdf
  33. 33. K-means com MPI Consider N data points each of it is vector and P processors. (1) Assign N/P data points to each processor. (2) Node 0 randomly choose K points and assigns them as cluster means and broadcast.
  34. 34. K-means com MPI (3) In each processor for each data point find membership using the cluster mean. (4) Recalculate local means for each cluster in each processor.
  35. 35. K-means com MPI (5) Globally broadcast all local means for each processor find the global mean. (6) Go to step (3) and repeat until the number of iterations > 10000 or number of points where membership has changed is less than 0.1 %.
  36. 36. K-means com OpenMP Consider N data points each of it vector and P threads. (1) Node 0 randomly choose K points as assign them as cluster means. (2) In each thread for each data point find membership using the cluster mean.
  37. 37. K-means com OpenMP (3) Recalculate local means for each cluster in each thread. (4) Globally broadcast all local means for each processor and find the global mean.
  38. 38. K-means com OpenMP (5) Find the global mean in each thread (6) Go to step (2) and repeat until the number of iterations >10000 or number of points where membership has is less than 0.1 %.
  39. 39. MPI Results
  40. 40. MPI vs. OpenMP

×