Kmeans - Datamining

454 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
454
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

×