Data Mining - Clustering

6,902 views

Published on

Uma revisão de alguns métodos de clusterização.
A review of some clustering methods.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,902
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
168
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Data Mining - Clustering

  1. 1. Data Mining - ClusteringUma revisão de alguns métodos de Clusterização  Cleber Nathan Dias clebernd@yahoo.com.br
  2. 2. O que é clusterização? Visão Geral Usados para descobrir bases científicas em padrões de dados inesperados. Também chamado de ”unsupervised learning” É uma sub-área da mineração de dados. Dado um conjunto de objetos, montar grupos com base em suas similaridades. A complexidade do problema dificulta encontrar uma solução ótima. (não é um problema fechado)  como definir o que é similaridade?  mesmo com uma métrica é difícil encontrar a solução exata.
  3. 3. O que é clusterização? Na situação ao lado temos 9 bolas com 3 cores diferentes.  O objetivo aqui foi agrupar as bolas de cores iguais Desse modo a gente percebe o que pode significar os agrupamentos
  4. 4. Representações de Dados para Clusterização A entrada para um algoritmo de clusterização normalmente é um vetor (tuple ou record). Os tipos de dados podem ser:  Numérico  De categoria  Boleano
  5. 5. Representações de Dados para Clusterização – Um Exemplo Numa clínica médica, por exemplo pode-se encontrar dados como:  Idade (numérico)  Peso (numérico)  Sexo (categoria)  Doente (boleano) Deve incluir um método para computar a similaridade de vetores ou a distância entre vetores. (cada ponto plotado no gráfico tem um vetor de dados associado)
  6. 6. Calculando Distâncias O método natural para dados numéricos é o cálculo das distâncias. Normalmente valores menores representam maiores similaridades. Não generalize para valores não numérico!  Qual é distância entre masculino e feminino? Métricas para Cálculo da Distância:  Distância Euclidiana  Distância de Manhattan  Etc.
  7. 7. Calculando Similaridade entre Dados
  8. 8. Calculando Similaridade entre Dados Numéricos Tradicionalmente usa-se valores de similaridade entre 0 e 1:  0.0 = sem similaridade  1.0 = idêntico Convertendo distância em similaridade:  Pega-se dois pontos do gráfico e acha-se a distância entre eles.  1 – (a distância) = grau de similariadade  Os dados devem de início ser normalizados para que os valores das distâncias fiquem num intervalo de 0 a 1.  Normalizar é dividir os valores de tal modo que que se enquadrem no intervalo desejado.
  9. 9. Calculando Similaridade entre Dados de Categoria Como calcular a similaridade quando os dados são do tipo (masculino, feminino, alto e baixo)? Dado um vetor com N atributos, deve-se comparar com outro vetor com os mesmos N atributos, e então, verificar quantos destes elementos se combinam.
  10. 10. Calculando Similaridade entre Dados de Categoria Uma maneira de comparar os atributos é usando uma matriz que auxilia a análise. Usando a matriz a abaixo como guia, percebe-se que A é igual a uma combinação 1 e 1, B é igual a uma combinação 1 e 0, C = 0 e 1 e D = 0 e 0 Y[j] 1 0 1 A B X[j] 0 C D
  11. 11. Calculando Similaridade entre Dados de Categoria Analisando dois vetores onde os atributos sejam: alto, magro, loiro, rico, branco, adulto e homem. Alto Magro Loiro Rico Branco Adulto Homem vt1 0 1 0 1 1 1 0 vt2 1 1 0 0 1 1 0 Y[j] 1 0 1 A B X[j] 0 C D
  12. 12. Calculando Similaridade entre Dados de Categoria Alto Magro Loiro Rico Branco Adulto Homem vt1 0 1 0 1 1 1 0 vt2 1 1 0 0 1 1 0 Analizando os vetores vemos que: Alto é 0 e 1, Loiro Branco e Adulto são 1 e 1, Loiro e Homem são 0 e 0 e o Rico é 1 e 0. Y[j] 1 0 1 A B X[j] 0 C D
  13. 13. Calculando Similaridade entre Dados de Categoria Alto Magro Loiro Rico Branco Adulto Homem vt1 0 1 0 1 1 1 0 vt2 1 1 0 0 1 1 0 1 e 1 foram 3, então, A = 3; 1 e 0 foram 1, então, B = 1; 0 e 1 foram 1, então, C = 1; 0 e 0 foram 2, então, D = 2
  14. 14. Calculando Similaridade entre Dados de Categoria Tendo esses valores, a similariadade pode ser calculada usando alguns métodos como:  Correlação = (A + D) / (A + B + C + D)  Coeficiente de Jacard = A / (A + B + C + D) Usado quando um falso verdadeiro não implicar numa solução errada do problema. Y[j]  Se a comparação for feita entre um urubú e 1 0 um dinossáuro de asas, e o atributo for 1 A B X[j] ”possue asas”. Os dois são verdadeiros, 0 C D mas isso não implica que sejam iguais.
  15. 15. Algoritmo de Clusterização por Hierarquia.
  16. 16. Algoritmo de Clusterização por Hierarquia. Clusterização por Hierarquia solicita uma conjunto de ponto (tuplas) como entrada. Esse conjunto de pontos vão se transformar numa árvore. Correlacionado seus pontos com o seus grau de similaridade.  A árvore é normalmente chamada de dendograma.
  17. 17. Algoritmo de Clusterização por Hierarquia. O método:  Coloque todos os pontos dentro de seu próprio clusters.  Enquanto houver mais do que um cluster faça o merge dos pares de clusters mais próximos.  O comportamento do método vai depender de quão próximo os pares de clusteres estão definidos.
  18. 18. Clusteriazação por Hierarquia: Juntando Clusters  Para ligar dois cluster pode-se usar medida entre os pontos mais próximos entre um cluster e outro.
  19. 19. Clusteriazação por Hierarquia: Juntando Clusters Para ligar dois clusters pode-se usar a medida da distância entre os pontos médios (centróide) de cada cluster.
  20. 20. Clusteriazação por Hierarquia: Juntando Clusters  E ainda, para ligar dois clusters pode-se usar a distância entre os pontos mais distantes
  21. 21. Emxemplo de Clusterização por Hierarquia Este exemplo usa a ligação de clusters pelos ponto de menor distância . F E A B C D A B C D E F
  22. 22. Clusterização por Hierarquia – Pontos Fracos O tipo usado mais comum, é a união de clusters a partir de seus pontos mais próximos. Sendo um método particularmete guloso.  Caso dois pontos de clusters distintos estejam próximos um do outro, a distinção é perdida.  Em relação aos dois outro métodos de ligação de clusters, estes tendem a formar clusters esféricos, da mesma forma que o k-means.  A divisão da árvore em clusters não fica de modo conveniente sem a intervenção humana.  Existem algumas ferramentas automatizadas para isso, com critérios pré-estabelecidos.  Assim como o k-means é sensível a outlier.
  23. 23. O Algoritmo K-means
  24. 24. O Algoritmo K-means A entrada para esse algoritmo é um conjunto de pontos numéricos em N dimensões e uma valor inteiro K. O algoritmo irá gerar K clusters, assim:  1 – Coleque K centroides aleatóreamente  2 – Atribua cada ponto a um centróide mais próximo criando um cluster.  3 – Calcule a média entre os pontos internos a um cluster.  4 – A posição média é atribuida ao centróide (que muda de posição).  5 – O cálculo deve ser refeito apartir do nº 2 até que se estabilize
  25. 25. Exemplo com K = 3  1 – coloque os centróides (pontos grandes) aleatóriamente 2 – Atribua os pontos mais próximos a um centróide.  3 – Recalcule a posição dos centróides
  26. 26. Escolhendo o Número K Como escolher o número de clusters para o espaço de dados?  Essa é uma questão que não é simples de resolver e existem alguns métodos para tentar chegar a este objetivo.
  27. 27. Escolhendo o Número K De maneira pragmática pode-se aplicar uma fórmula (a Regra de Ouro) que determina um valor aproximado de K: *onde n é igual ao número de pontos no espaço d-dimensional
  28. 28. Escolhendo o Número K Outro método usado calcula a covariância dos atributos dentro de um mesmo cluster. Quanto menor esta medida, mais semelhantes são os dados. Assim sendo, o cálculo da distorção apresentado abaixo é usado no método Jump descrito no próximo slide.  Onde Cx é o cluster cujo elemento X está inserido.
  29. 29. Escolhendo o Número K –Abordagem usando Teoria da Informação Método do Pulo: Onde: X são os dados de JumpMethod(X): entreda da clusterização. E, p é a dimensão dos dados Deixe Y = (p/2) de entrada (número de atributos). Crie uma lista D, de tamanho n+1 K = nº de clusters. Deixe D[0] = 0 Para k = 1 ... n Faça: Clusterize X com k clusters (exemplo, como k-means) Deixe d = Distorção da Cluterização Resultante D[k] = d^(-Y) Defina J(i) = D[i] - D[i-1] O índice do Retorne K entre 1 e n maximizando J(k) maior elemento do vetor J.
  30. 30. Escolhendo o Número K – Método do Cotovelo Inicializa-se o K com valor 1, então aumenta-se gradativamente este valor. Caso não haja uma mudança significativa na variância, pode-se concluir que um número para K foi achado (um número maior para K não acrescentaria substancialmente no resultado qualitativo dos dados).
  31. 31. Escolhendo o Número K – Método do Cotovelo O critério de parada, como dito, é o de não haver uma mudança significativa na variância calculada. A palavra ”significativa” introduz subjetividade ao método, pois não há um valor preciso determinando o fim do cálculo e fazendo com que o valor de K não se torne preciso.
  32. 32. Pontos Fracos do K-means Dados devem ser numéricos e devem ser comparáveis via alguma forma de distância (há uma variante chamada k-medianas que cuida dessas falhas). O algoritmo trabalha melhor sobre dados contidos em clusteres esféricos. Clusters com outras geometrias podem não ser localizados. K-means é sensível a outliers (pontos que não pertencem a nenhum cluster) - Esses outlieres pondem distorcer a posição do centroide e estragar o agrupamento.
  33. 33. Métodos de Grafos: Componentes e Cortes Define um grafo de similaridade sobre um conjunto de objetos como a seguir:  Vértices são os objetos por si só.  Arestas não direcionadas juntam vértices denominados similares.  Arestas podem ser ponderadas por grau de similaridade. Um componente conexo é um conjunto de objetos tal que: cada objeto é alcançável no caminho pelos outros objetos. Um corte de peso mínimo é aquele que cria um novo componente conexo com a soma das arestas cortadas sendo a mínima possível.
  34. 34. Componentes Conexos para Clusterização O grafo acima tem 3 componentes ou clusters O algoritmo para achá-los é muito rápido e simples. Essa abordagem tem pontos fracos óbvios; por exemplo:  O nodo vermelho não é similar a maioria dos objetos em seu cluster  A aresta vermelha conecta dois componentes que deveriam provavelmente estar separados
  35. 35. Cortes de Peso Mínimo para Clusterização Execute o algoritmo de corte de ”conjunto de peso mínimo”, duas vezes, no grafo do exemplo anterior, para produzir boa clusterização (assumindo que o peso de cada aresta seja 1). Se objetos dentro de um cluster são muito mais similares do que objetos em clusters separados, então o método funciona bem.
  36. 36. Cortes de Peso Mínimo para Clusterização Desvantanges:  Algoritmo de corte máximo é muito lento, e potencialmente deve ser executado muitas vezes.  Não há um ponto necessariamente evidente em que o algoritmo deva parar.
  37. 37. Análise de Componente Principal
  38. 38. Análise de Componente Principal Problema: muitos tipos de dados tem muitos atributos para serem visualizados ou manipulados convenientemente.  Por exemplo, um único microarray pode ter de 6000 a 8000 genes. PCA: é um método para reduzir o número de atributos (dimensões) de dados numéricos enquanto tenta preservar a estrutura do cluster.  Depois do PCA, é esperado que se obtenha os mesmos clusters que seriam obtidos antes do PCA.  Por usar o PCA para reduzir os atributos para 3 ou 2 dimensões os visualizadores de geometria comerciais podem ser usados para exibir os dados.
  39. 39. O Algoritmo PCA Considere o dado como uma matriz M x N no qual as colunas são as amostras e as linhas ao atributos. Os autovetores correpondentes aos d maiores autovalores desta matriz são os componentes principais. Por projetar os dados nesses vetores, se obtem pontos d-dimensionais.
  40. 40. O Algoritmo PCA Considere o exemplo abaixo, projetando dados 2D com 2 clusters (vermelho e azul) em 1 dimensão. Principal component After projection
  41. 41. Desafios na Clusterização Calculo de similaridade:  Resultados de algoritmos dependem da similaridade usada.  Sistemas de clusterização oferecem pouco auxílio em como escolher similaridade.  Computar similaridade de dados mistos é difícil.  A similaridade é muito dependente da representação do dado.  Questões:  Normaliza-se os dado?  Como se deveria representar os dados? -numericamente, categoricamente, etc.  Clusterizar somente um subgrupo dos dados?  O computador deveria fazer mais para que o usuário descubra como representar os dados!
  42. 42. Desafios na Clusterização Seleção de parâmetro:  Algoritmos atuais requerem muitos parâmetros arbtrários e selecionados pelo usuário.
  43. 43. Conclusão Clusterização é uma maneira útil de explorar os dados, mas é ainda muito ad hoc (sem muito formalismo, rigor científico). Bons resultados são frequentemente dependentes em escolher a representação dos dados certa e a métrica de similaridade.  Dado: categórico, numérico, lógico e etc.  Similaridade: distância, correlação, etc. Muitas escolhas diferentes de algoritmos, cada uma com diferentes virtudes e deficiências.
  44. 44. Exercícios 1- Dado dois elementos cujos atributos sejam, Alto, Magro, Loiro, Rico, Branco, Adulto, Homem e com a seguinte configuração: Y1 y2 y3 y4 y5 y6 y7 Alto Magro Loiro Rico Branco Adulto Homem vt1 0 1 0 1 1 1 0 x1 vt2 1 1 0 0 1 1 0 x2 a) Calcule o coeficiente de Correlação usando o Coeficiente de Jacard.
  45. 45. Exercícios 2- Calcule um múmero K do método de clusterização K-means quando o espaço de dados é igual a 1000 elementos.
  46. 46. Exercícios 3- Faça um dendograma apartir da seguinte disposição: a. d. b. c. e. f. h. g. i.
  47. 47. Exercícios 4- Forme 2 clusters usando o algoritmo de clusterização de grafo por corte mínimo. 3 d a 4 1. 3 1.5 c 2.0 b
  48. 48. Exercícios 5- O que é clusterização?
  49. 49. Links Interessantes K-means:  Applet: http://home.dei.polimi.it/matteucc/Clustering/tutori al_html/AppletKM.html Hierarchical:  Applet: http://metamerist.com/slhc/example40.htm
  50. 50. Referências SEGARAN, Toby. Programando a Inteligência Coletiva. OREILLY: Rio de Janeiro. 2008. WITTEN, Ian H.; Frank, Eibe. Data Mining: Practical Machine Learning Tools ans Techniques. 2ª Ed. Morgan Kaufmann Publishers: San Francisco. 2005. MARDIA, Kanti; et. al. Multivariate Analysis. Academic Press. 1979.

×