data mining - clustering

50
Data Mining - Clustering Data Mining - Clustering Uma revisão de alguns métodos de Clusterização Cleber Nathan Dias [email protected]

Upload: iaudesc

Post on 26-May-2015

4.910 views

Category:

Technology


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Data Mining - Clustering

Data Mining - ClusteringData Mining - Clustering

Uma revisão de alguns métodos de Clusterização

Cleber Nathan Dias

[email protected]

Page 2: Data Mining - Clustering

O que é clusterização?O que é clusterização?Visão GeralVisã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.

Page 3: Data Mining - Clustering

O que é clusterização?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

Page 4: Data Mining - Clustering

Representações de Dados para Representações de Dados para ClusterizaçãoClusterizaçã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

Page 5: Data Mining - Clustering

Representações de Dados para Representações de Dados para ClusterizaçãoClusterização – – Um ExemploUm 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)

Page 6: Data Mining - Clustering

Calculando DistânciasCalculando 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.

Page 7: Data Mining - Clustering

Calculando Similaridade entre Calculando Similaridade entre DadosDados

Page 8: Data Mining - Clustering

Calculando Similaridade entre Calculando Similaridade entre Dados NuméricosDados 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.

Page 9: Data Mining - Clustering

Calculando Similaridade entreCalculando Similaridade entre Dados de CategoriaDados 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.

Page 10: Data Mining - Clustering

Calculando Similaridade entreCalculando Similaridade entre Dados de CategoriaDados 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

X[j]X[j]

Y[j]Y[j]

11

11

00

00

AA BB

CC DD

Page 11: Data Mining - Clustering

Calculando Similaridade entreCalculando Similaridade entre Dados de CategoriaDados 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

X[j]X[j]

Y[j]Y[j]

11

11

00

00

AA BB

CC DD

Page 12: Data Mining - Clustering

Calculando Similaridade entreCalculando Similaridade entre Dados de CategoriaDados 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.

X[j]X[j]

Y[j]Y[j]

11

11

00

00

AA BB

CC DD

Page 13: Data Mining - Clustering

Calculando Similaridade entreCalculando Similaridade entre Dados de CategoriaDados 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

Page 14: Data Mining - Clustering

Calculando Similaridade entreCalculando Similaridade entre Dados de CategoriaDados 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.

Se a comparação for feita entre um urubú e um dinossáuro de asas, e o atributo for ”possue asas”. Os dois são verdadeiros, mas isso não implica que sejam iguais.

X[j]X[j]

Y[j]Y[j]

11

11

00

00

AA BB

CC DD

Page 15: Data Mining - Clustering

Algoritmo de Clusterização por Algoritmo de Clusterização por Hierarquia.Hierarquia.

Page 16: Data Mining - Clustering

Algoritmo de Clusterização por Algoritmo de Clusterização por Hierarquia.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.

Page 17: Data Mining - Clustering

Algoritmo de Clusterização por Algoritmo de Clusterização por Hierarquia.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.

Page 18: Data Mining - Clustering

Clusteriazação por Hierarquia: Clusteriazação por Hierarquia: Juntando ClustersJuntando Clusters

Para ligar dois cluster pode-se usar medida entre os pontos mais próximos entre um cluster e outro.

Page 19: Data Mining - Clustering

Clusteriazação por Hierarquia: Clusteriazação por Hierarquia: Juntando ClustersJuntando Clusters

Para ligar dois clusters pode-se usar a medida da distância entre os pontos médios (centróide) de cada cluster.

Page 20: Data Mining - Clustering

Clusteriazação por Hierarquia: Clusteriazação por Hierarquia: Juntando ClustersJuntando Clusters

E ainda, para ligar dois clusters pode-se usar a distância entre os pontos mais distantes

Page 21: Data Mining - Clustering

Emxemplo de Clusterização por Emxemplo de Clusterização por HierarquiaHierarquia

Este exemplo usa a ligação de clusters pelos ponto de menor distância .

A

B

EF

C D

A B E FC D

Page 22: Data Mining - Clustering

Clusterização por Hierarquia – Clusterização por Hierarquia – Pontos FracosPontos 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.

Page 23: Data Mining - Clustering

O Algoritmo K-meansO Algoritmo K-means

Page 24: Data Mining - Clustering

O Algoritmo K-meansO 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

Page 25: Data Mining - Clustering

Exemplo com K = 3Exemplo 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

Page 26: Data Mining - Clustering

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.

Page 27: Data Mining - Clustering

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

Page 28: Data Mining - Clustering

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.

Page 29: Data Mining - Clustering

Escolhendo o Número K – Abordagem usando Teoria da Informação

Método do Pulo:JumpMethod(X):

Deixe Y = (p/2)

Crie uma lista D, de tamanho n+1

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]

Retorne K entre 1 e n maximizando J(k)

Onde: X são os dados de entreda da clusterização. E,p é a dimensão dos dados

de entrada (número de atributos).

K = nº de clusters.

O índice do maior elemento do vetor J.

Page 30: Data Mining - Clustering

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).

Page 31: Data Mining - Clustering

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.

Page 32: Data Mining - Clustering

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.

Page 33: Data Mining - Clustering

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.

Page 34: Data Mining - Clustering

Componentes Conexos para Componentes Conexos para ClusterizaçãoClusterizaçã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

Page 35: Data Mining - Clustering

Cortes de Peso Mínimo para Cortes de Peso Mínimo para ClusterizaçãoClusterizaçã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.

Page 36: Data Mining - Clustering

Cortes de Peso Mínimo para Cortes de Peso Mínimo para ClusterizaçãoClusterizaçã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.

Page 37: Data Mining - Clustering

Análise de Componente PrincipalAnálise de Componente Principal

Page 38: Data Mining - Clustering

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.

Page 39: Data Mining - Clustering

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.

Page 40: Data Mining - Clustering

O Algoritmo PCA

Considere o exemplo abaixo, projetando dados 2D com 2 clusters (vermelho e azul) em 1 dimensão.

Principal component

After projection

Page 41: Data Mining - Clustering

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!

Page 42: Data Mining - Clustering

Desafios na Clusterização

Seleção de parâmetro: Algoritmos atuais requerem muitos parâmetros

arbtrários e selecionados pelo usuário.

Page 43: Data Mining - Clustering

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.

Page 44: Data Mining - Clustering

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.

Page 45: Data Mining - Clustering

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.

Page 46: Data Mining - Clustering

Exercícios

3- Faça um dendograma apartir da seguinte disposição:

a.a. d.b.

e.c.

g.

f.h.

i.

Page 47: Data Mining - Clustering

Exercícios

4- Forme 2 clusters usando o algoritmo de clusterização de grafo por corte mínimo.

d

a

c

b

1.5

4

3

2.0

1.3

Page 48: Data Mining - Clustering

Exercícios

5- O que é clusterização?

Page 49: Data Mining - Clustering

Links Interessantes

K-means: Applet:

http://home.dei.polimi.it/matteucc/Clustering/tutorial_html/AppletKM.html

Hierarchical: Applet:

http://metamerist.com/slhc/example40.htm

Page 50: Data Mining - Clustering

Referências

SEGARAN, Toby. Programando a Inteligência Coletiva. O'REILLY: 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.