Clustering

  • 220 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
220
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
13
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. ClusteringAndré Luís PitombeiraUniversidade Federal do Cearáandrepitombeira@gmail.com10 de maio de 2013André Luís Pitombeira (UFC) Clustering 10 de maio de 2013 1 / 45
  • 2. Overview1 IntroduçãoClustering2 Clustering hierárquico3 Algoritmos K-meansAlgoritmo de Bradley, Fayyad e ReinaAlgoritmo CUREAlgoritmo GRGPF4 Stream e ParalelismoStreamAlgoritmo DBMOParalelismoAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 2 / 45
  • 3. IntroduçãoFigura: Era da informaçãoAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 3 / 45
  • 4. IntroduçãoClustering é o processo utilizado para examinar uma coleção de pontos eagrupá-los em clusters de acordo com alguma medida de distância. Ospontos que estão no mesmo cluster tem uma pequena distância uns dosoutros, enquanto pontos em diferentes cluster têm uma distância maior.André Luís Pitombeira (UFC) Clustering 10 de maio de 2013 4 / 45
  • 5. ClusteringOperação sobre pontos que formam um espaçoAgrupe os elementos mais próximosDistância é fundamentalAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 5 / 45
  • 6. ClusteringFigura: Exemplo de ClusterAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 6 / 45
  • 7. ClusteringFigura: Exemplo de ClusterAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 7 / 45
  • 8. ClusteringEspaço euclidianoOs pontos são vetores de números reaisDistância naturalMuitas distâncias possíveisEspaço não euclidianoDistâncias Ad-hocEx. StringsAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 8 / 45
  • 9. ClusteringA maldição da dimensionalidadeEspaços N-dimensionais têm propriedades que não são intuitivas.Quase todos os pares tem a mesma distânciaTodos os ângulos entre vetores são próximos a 90 grausAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 9 / 45
  • 10. ClusteringA maldição da dimensionalidade(a) 2 dimensões (b) 3 dimensõesFigura: Representação de um pontoAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 10 / 45
  • 11. ClusteringO que pode ser "clustered"?ImagensItems de um supermercadoDocumentosAplicaçõesData miningText miningInformation retrievalAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 11 / 45
  • 12. ClusteringClustering hierárquicoConsidera cada ponto como sendo um cluster e estes pontos passam a sercombinados entre si de acordo com alguma medida de proximidade.Atribuição de pontosConsidera os pontos em alguma ordem e cada ponto é atribuído ao clusterque melhor se adequa.André Luís Pitombeira (UFC) Clustering 10 de maio de 2013 12 / 45
  • 13. Clustering hierárquicoAglomerativaAbordagem "bottom up": cada observação começa em seu próprio clustere pares de grupos são mesclados a medida que se sobe na hierarquia.DivisóriaAbordagem "top down": todas as observações começam em um cluster esão realizadas divisões de forma recursiva a medida que se desce nahierarquia.André Luís Pitombeira (UFC) Clustering 10 de maio de 2013 13 / 45
  • 14. Clustering hierárquicoDecida com antecedência:Como os clusters serão representados?Como escolheremos dois clusters para o merge?Quando pararemos de combinar clusters?André Luís Pitombeira (UFC) Clustering 10 de maio de 2013 14 / 45
  • 15. Clustering hierárquicoFigura: Cluster hierárquicoAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 15 / 45
  • 16. Clustering hierárquicoFigura: Cluster hierárquicoAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 16 / 45
  • 17. Qual a abordagem mais eficiente?André Luís Pitombeira (UFC) Clustering 10 de maio de 2013 17 / 45
  • 18. Clustering hierárquicoFigura: Fluxo do clustering hierárquicoAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 18 / 45
  • 19. Clustering hierárquicowhile is not time to stop dopick the best two clusters to merge;combine those two clusters into one cluster;endAlgorithm 1: Clustering hierárquicoAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 19 / 45
  • 20. Clustering hierárquicoPara calcular a distância entre nós do cluster utiliza-se centróides,mas existem alternativasEx. distância mínima entre quaisquer dois pontos, sendo um de cadaclusterAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 20 / 45
  • 21. Clustering hierárquicoEspaços não euclidianoNão é possivel utilizar o centroid, pois não há o conceito de "pontomédio"Solução: clustroidsAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 21 / 45
  • 22. Clustering hierárquicoString ecdab abecb aecdbabcd 5 3 3aecdb 2 2abecb 4Point Sum Max Sum-sqabcd 11 5 43aecdb 7 3 17abecb 9 4 29ecdab 11 5 45André Luís Pitombeira (UFC) Clustering 10 de maio de 2013 22 / 45
  • 23. Clustering hierárquicoDesvantagensPontos atribuidos a um cluster não são considerados novamenteComplexidade do algoritmo O(n3)André Luís Pitombeira (UFC) Clustering 10 de maio de 2013 23 / 45
  • 24. Algoritmos K-meansA família de algoritmos k-means é do tipo atribuição de pontos. Oalgortimo assume um espaço euclidiano e um número k de clustersconhecidos antecipadamente.André Luís Pitombeira (UFC) Clustering 10 de maio de 2013 24 / 45
  • 25. Algoritmos K-meansFigura: Algoritmo k-meansAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 25 / 45
  • 26. Algoritmos K-meansFigura: k-means clusteringAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 26 / 45
  • 27. Algoritmos K-meansFigura: k-means clusteredAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 27 / 45
  • 28. Algoritmo de Bradley, Fayyad e ReinaO algoritmo de Bradley, Fayyad e Reina (BFR) é uma variação do k-meansprojetado para espaços euclidianos de alta dimensionalidade. O BRFassume que o possui alguma restrições sobre o formato do cluster que deveser distribuido sobre um centroid.André Luís Pitombeira (UFC) Clustering 10 de maio de 2013 28 / 45
  • 29. Algoritmo de Bradley, Fayyad e ReinaInicialmente seleciona k pontosProcessa pedaços de dados na memória principalTrês conjuntos na memória principalDescartados: Conjunto dos clustersComprimidos: Conjunto dos pontosRetidos: Conjunto dos pontos isoladosAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 29 / 45
  • 30. Algoritmo de Bradley, Fayyad e ReinaProcessamento dos chunks dadosPontos próximos ao centroid são adicionados ao clusterOs outros pontos são aglomerados com o conjunto dos retidos.Merge os "miniclusters"com o conjunto dos comprimidosFaça alguma coisa com os pontos restantes e "miniclusters"André Luís Pitombeira (UFC) Clustering 10 de maio de 2013 30 / 45
  • 31. Algoritmo CUREO algoritmo CURE (Clustering Using REpresentatives) assume um espaçoeuclidiano. Não assume nada a respeito do formato do cluster. Utilizauma coleção de pontos representativos para representar o cluster, ao invésde utilizar o centroid.André Luís Pitombeira (UFC) Clustering 10 de maio de 2013 31 / 45
  • 32. Algoritmo CUREFigura: Algoritmo CUREAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 32 / 45
  • 33. Algoritmo CUREFigura: Exemplo do CUREAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 33 / 45
  • 34. Algoritmo CUREApós a inicialização deve ser feito o merge dos clusters com a mínimadistância entre os pontosAtribuir os pontos aos clusters baseado nos pontos representativosAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 34 / 45
  • 35. Algoritmo GRGPFO algortimo GRGPF lida com dados que não estão na memória principal enão assume um espaço euclidiano. A abordagem usada pelo algoritmoutiliza ideias de ambas as abordagens hierárquica e atribuição de pontos.Os clusters são representados por uma amostra dos pontos na memóriaprincipal.André Luís Pitombeira (UFC) Clustering 10 de maio de 2013 35 / 45
  • 36. Algoritmo GRGPFClusters são representados com features:N, o número de pontos no clusterO clustroid do clusterOs k pontos mais próximos do clustroidOs k pontos mais distantes do clustroidOs clusters são organizados em uma árvoreAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 36 / 45
  • 37. Algoritmo GRGPFInicialize a árvore com um algoritmo de memória principalNós internos mantêm umas amostra dos clustroids dos clustersrepresentados por sua sub árvorePara cada ponto, atribua-o para um cluster passando-o para baixo naárvoreEm cada nó interno procure na amostra e escolha uma sub árvoreEm uma folha, escolher o cluster com o clustroid mais próximo eatualizar as featuresAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 37 / 45
  • 38. Algoritmo GRGPFConjunto dos pontos mais próximos são usados para mover osclustroidsConjunto dos pontos mais distantes são usados para fazer o mergedos clustersEventualmente, quando os clusters crescem muito deve-se fazer o splitAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 38 / 45
  • 39. StreamA computação do modelo de stream assume que cada elemento é umponto em algum espaço. Realiza-se um precluster para selecionar umsubconjunto de pontos no stream, para que consultas do tipo "quais sãoos clusters dos últimos m pontos?"possam ser rapidamente respondidas.André Luís Pitombeira (UFC) Clustering 10 de maio de 2013 39 / 45
  • 40. StreamSliding Window de N pontosConsulta nos últimos m <= N pontosNão assume o espaçoClusters mudam com o passar do tempoAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 40 / 45
  • 41. Algoritmo DBMOGeneralização do algoritmo DGIMO bucket guarda o seu tamanho, o timestamp e uma coleção deregistrosResponde as consultas por fazer o merge dos buckets que cobrem osúltimos m pontosAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 41 / 45
  • 42. Clustering em ambientes paralelosMap-ReduceNa maioria dos casos apenas uma tarefa de ReduceMap tasksCluster pontosO resultado é um conjunto de pares chave-valor com uma chavefixada em 1 e um valor que é a descrição de algum cluster.Reduce task faz o merge dos clustersAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 42 / 45
  • 43. (a) Netflix (b) Google NewsFigura: Empresas que desenvolveram soluções de clusteringAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 43 / 45
  • 44. Perguntas?André Luís Pitombeira (UFC) Clustering 10 de maio de 2013 44 / 45
  • 45. The EndAndré Luís Pitombeira (UFC) Clustering 10 de maio de 2013 45 / 45