O documento discute métodos de clusterização, incluindo k-means e clusterização hierárquica. A clusterização agrupa objetos similares em clusters com base em suas características. O documento também aborda como calcular similaridade entre dados numéricos e categóricos.
1. Data Mining - Clustering
Uma revisão de alguns métodos
de Clusterização
Cleber Nathan Dias
clebernd@yahoo.com.br
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. 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. 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. 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. 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.
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. 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. 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. 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. 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. 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. 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.
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. 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. 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. 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. Clusteriazação por Hierarquia:
Juntando Clusters
E ainda, para ligar dois
clusters pode-se usar a
distância entre os pontos
mais distantes
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. 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.
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.
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. 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. 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. 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. Desafios na Clusterização
Seleção de parâmetro:
Algoritmos atuais requerem muitos parâmetros
arbtrários e selecionados pelo usuário.
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. 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. 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. Exercícios
3- Faça um dendograma apartir da seguinte
disposição:
a. d.
b. c.
e.
f.
h.
g. i.
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