Kmeans

3.827 visualizações

Publicada em

Introdução ao algoritmo K-means

Publicada em: Educação
0 comentários
4 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

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

Nenhuma nota no slide

Kmeans

  1. 1. K-means / K-médias Aluno: Wagner Souza Santos
  2. 2. Roteiro● História● Espaço Euclidiano● Distância Euclidiana● Características● Definições● Algoritmo
  3. 3. História● Em 1957, Władysław Hugo Dionizy Steinhaus propõe o método k-means de clusterização.● Em 1957, Stuart Lloyd propõe um algoritmo-base para o método k-means, porém este seria usado como um técnica de modulação de pulso de código, representar digitalmente amostras de sinais analógicos. Este algoritmo não foi publicado fora da Bell labs até 1982.
  4. 4. História● A primeiro uso do termo k-means foi em 1967 por James MacQueen em seu artigo intitulado: “Some Methods for Classification and Analysis of Multivariate Observations”.● Em 1965, E. W. Forgy publicou o mesmo algoritmo que Sturart Lloyd. Esse algoritmo também também é conhecido como Lloyd- Forgy
  5. 5. Espaço Euclidiano● O espaço euclidiano n-dimensional (n ∈ N) é o produto cartesiano de n fatores iguais a R: R^n = R × R × . . . . . . × R.● Se n = 1, R¹ = R é a reta; se n = 2, R² é o plano e se n = 3, R³ é o espaço euclidiano tridimensional.
  6. 6. Distância Euclidiana● É a distância entre dois pontos, que pode ser provada pela aplicação repetida do teorema de Pitágoras.● A distância euclidiana entre os pontos P(p1, p2, …, pn) e Q(q1,q2, ..., qn), num espaço euclidiano n-dimensional, é definida como:
  7. 7. Distância Euclidiana● R² x = (2,5) 1.41 d ( x, y ) = ( 2 − 3) 2 + ( 5 − 4 ) 2 = 2 = 1.41 y = (3,4)
  8. 8. Distância Euclidiana● R³ d ( x, y ) = ( 2 − 3) 2 + ( 4 − 3) 2 + (5 − 3) 2 = 6 = 2.44
  9. 9. Características● O algoritmo K-means pertence a classe dos algoritmos de apredizado de máquina não supervisionados.● Não há uma rotulação dos dados a priori.● Aprendizado por observação.
  10. 10. Cluster● Uma coleção de objetos que são similares entre si, e diferentes dos objetos pertencentes a outros clusters.
  11. 11. Clusterização / Clustering● É a organização dos objetos similares (em algum aspecto) em grupos. Quatro grupos (clusters)
  12. 12. Centróide● Representa o centro de um grupo, sendo calculado pela média de todos os objetos do grupo/cluster.
  13. 13. Ideia● (PASSO 1) Atribuem-se valores iniciais para os protótipos seguindo algum critério.● (PASSO 2) Atribui-se cada objeto ao grupo cujo protótipo possua maior similaridade com o objeto.● (PASSO 3) Recalcula-se o valor do centróide de cada grupo, como sendo a média dos objetos atuais do grupo.● (PASSO 4) Repete-se os passos 2 e 3 até que os grupos se estabilizem.
  14. 14. Complexidade● O( n * K * I * d ), onde: – n = total de pontos – K = número de clusters – I = número de iterações – d = número de atributos/características
  15. 15. Pseudo-Código● Sendo: – {x1, x2, ..., xn} = estrutura de dados contendo valores a serem clusterizados. Por exemplo, uma matriz esparça – K = total de clusters – A = conjuntos de atributos que irão inteferir na separação – {c1, c2, ..., ck} = conjunto de centróides – {u1, u2, ..., uk} = estrutura de dados contendo os elementos dos clusters
  16. 16. Pseudo-Código● K-Means({x1, x2, ..., xn},K,A) #entrada (c1, c2, ..., cK) <--- cria_centroids({x1, x2, ..., xn}, K) #criando k centróides Para cada cluster K faça: uk <--- ck #atribuindo cada centróide a um cluster enquando o criterio de parada não for atingido faça: #por exmeplo, enquando houver modificações nos clusters ou um trocou=true para cada cluster K faça: cluster[k] = {} para cada ponto P faça: #o total de pontos é n atribui_ponto_ao_cluster(P, A, cluster) #calcula-se a distância do ponto ao centróide de cada cluster e este ponto irá permanecer no cluster que tiver a menor distância para cada cluster K faça: uk <-- novo_centroid(K) #recalculando os centródes● return {u1, u2, ..., uk}
  17. 17. Exemplo Objetos em um plano 2D
  18. 18. Exemplo Passo 1:Centróides inseridos aleatoriamente
  19. 19. Exemplo Passo 2: Atribuir a cada objeto o centróide mais próximo
  20. 20. Exemplo Passo 3: Recalcular os centróides
  21. 21. Bisecting K-Means● Variação hierárquica do algoritmo k- means, que em cada iteração, seleciona um grupo e o divide, de forma a gerar uma hierarquia.
  22. 22. Bisecting K-Means● Selecionar um cluster para dividir.● Encontrar 2 sub-clusters usando o algoritmo K-means básico.● Repetir o passo 2 por uma quantidade fixa de vezes e escolher a divisão que produzir o cluster com a maior similaridade global. (Para cada cluster, sua similaridade é a similaridade média de pares de documentos)● Repetir os passos 1, 2 e 3 até que o número desejado de clusters seja alcançado.
  23. 23. Prós● Simples● Entre os 10 algoritmos mais influentes em DataMining.● Variações com ótimos resultados como o Bisecting K-Means.
  24. 24. Contras● Clusters de tamanhos diferentes.● Clusters de diferentes densidades.● Clusters em forma não-globular.● Clusters vazios.
  25. 25. Densidades Diferentes Pontos Originais K-Means (3 Clusters)
  26. 26. Formas Não-Globulares Pontos Originais K-Means (2 Clusters)
  27. 27. Dúvidas?
  28. 28. Referências● http://en.wikipedia.org/wiki/K- means_clustering● http://en.wikipedia.org/wiki/Euclidean_space● http://en.wikipedia.org/wiki/Pulse- code_modulation● http://pt.wikipedia.org/wiki/Espa %C3%A7o_euclidiano● http://nlp.stanford.edu/IR- book/html/htmledition/k-means-1.html
  29. 29. Referências● http://www.decom.ufop.br/menotti/rp102/slides /04-TiposAprendizagem.ppt● http://www.inf.ufes.br/~claudine/courses/paa1 0/seminarios/seminario4.pdf● http://www.ipcsit.com/vol27/43-ICICN2012- N20017.pdf● http://www.cs.uvm.edu/~xwu/kdd/Slides/Kmea ns-ICDM06.pdf

×