Download - Aprendizagem de Máquina - Agrupamento
Aprendizagem de Máquina - AgrupamentoProf. Sérgio QueirozSlides inicialmente preparados pelo Prof. Ricardo Prudêncio, aos quais foram feitas modificações
Clustering (Agrupamento)
Particionar objetos em clusters de forma que: Objetos dentro de um cluster são similares Objetos de clusters diferentes são diferentes
Descobrir novas categorias de objetos de uma maneira não-supervisionada Rótulos de classes não são fornecidos a priori
Clustering - Etapas
Representação
Padrões (Vetores)
Redução da dimensionalidade
Seleção ou extração de características
ClusteringCluster A
Cluster B
Cluster C
Objetos
SimilaridadeObjetos
Objetos
Objetos
Partição
Tipos de Clustering
Algoritmos Flat (ou Particional) Geram partição “plana”, i.e. não existe relação
hierárquica entre os clusters
Algoritmos Hierárquicos Geram uma hierarquia de clusters, i.e. cada
cluster é associado a um cluster-pai mais genérico Vantagem: diferentes visões dos dados
Tipos de Clustering Hard
Cada objeto pertence exclusivamente a um único grupo na partição Fuzzy
Cada objeto está associado a um cluster com certo grau de pertinência (graus de pertinência em [0, 1] com soma 1) Partição Fuzzy pode ser convertida facilmente para uma partição hard
Possibilista Cada objeto está associado a um cluster com certo grau de
pertinência (graus de pertinência em [0,1], soma não precisa ser 1)
Exemplos em que Possibilista pode ser mais adequado que Fuzzy
Em um algoritmo fuzzy, tipicamente:• A terá um grau de pertinência à
classe 1 maior do que B, embora eles sejam “simétricos ao centro do cluster”.
• A e C terão valores de pertinência similares para classe 1, embora C pareça ser um ponto “mais típico” de 1 do que A
Exemplos de [Krishnapuram and Keller, 1993]
Exemplos em que Possibilista pode ser mais adequado que Fuzzy
Em um algoritmo fuzzy, tipicamente:• Tanto A quanto B terão graus de
pertinência similar a cada um dos clusters, embora A pareça ser um ponto muito mais adequado a ambos do que B
Exemplos de [Krishnapuram and Keller, 1993]
Exemplos em que Possibilista pode ser mais adequado que Fuzzy
Em um algoritmo fuzzy, tipicamente:• Tanto A quanto B terão graus de
pertinência similar a cada um dos clusters, digamos por volta de 0,5. No entanto tanto A quanto B intuitivamente parecem ser outliers e deveriam ter baixos graus de pertinência (ainda mais para B)
Exemplos de [Krishnapuram and Keller, 1993]
Tipos de Clustering Incremental
Partição é atualizada a cada novo objeto observado Em geral, apenas um número pequeno de clusters é
modificado
Não-incremental Partição é gerada de uma única vez usando todos
os objetos disponíveis
Algoritmo K-Means
Algoritmo k-Means Algoritmo particional baseado em Otimização do
Erro Quadrado
2
1
2 ),(
K
j Cdji
ji
cdCDe
Conjunto deObjetos
Partiçãoi-ésimo objetodo cluster j
centróidedo cluster j
Algoritmo k-Means
Encontra de forma interativa os centróides dos clusters
d1
d2
Centróide ACentróide A
Algoritmo k-Means Clusters definidos com base nos centróides (centro
de gravidade, ou o ponto médio dos cluster:
Alocação dos objetos nos clusters feita com base na similaridade com o centróide até critério de parada
Cd
i
i
dC
c
||
1
Algoritmo k-Means Passo 1: Defina k centróides iniciais, escolhendo k
objetos aleatórios; Passo 2: Aloque cada objeto para o cluster
correspondente ao centróide mais similar; Passo 3: Recalcule os centróides dos clusters. Passo 4: Repita passo 2 e 3 até atingir um critério de
parada e.g. até um número máximo de iterações ou; até não ocorrer alterações nos centróides (i.e. convergência
para um mínimo local da função de erro quadrado)
k-Means (Exemplo com K=2)
Inicializar centróides
Alocar objetos
Computar centróides
xx
Realocar objetos
xx xx Computar centróides
Realocar objetos
Convergiu!
Algoritmo k-Means O k-Means tende a gerar clusters esféricos
Assim pode falhar para clusters naturais com formas mais complexas
Exemplo -->
Algoritmo k-Means O k-Means é popular pela facilidade de implementação, e
eficiência no tempo O(nK), onde n é o número de objetos e K é o número de clusters Essa eficiência é relativa a uma iteração do k-Means O tempo de execução é dependente de quantas iterações são
necessárias até a convergência Na prática, são poucas Mas no pior caso, pode ser muito ruim. Ver [D. Arthur et al, 2006 e 2011]
Comentários: Não adequado para atributos categóricos Sensível a outliers e ruído Converge para mínimos locais Desempenho do algoritmo é dependente da escolha dos centróides
iniciais
Algoritmo k-Medoid Similar ao k-Means mas cada cluster é representado
por um objeto que realmente existe (medoid)
Medoid é o objeto do grupo cuja similaridade média com os outros objetos possui o valor máximo
Comentários: Tolerante a outliers e adequado para atributos categóricos Porém, custo mais alto
Algoritmos Hierárquicos
Algoritmos Hierárquicos Geram uma partição onde os clusters são organizados
em uma hierarquia
Permite ao usuário ter diferentes visões dos objetos sendo agrupados
A
BC
DE
F G
X1
X2
Dendrograma
Tipos de Algoritmos Hierárquicos
Algoritmos Hierárquicos Divisivos ou Particionais Assumem estratégia top-down Iniciam com cluster mais geral que é progressivamente
dividido em sub-cluster
Algoritmos Hierárquicos Aglomerativos Assumem estratégia bottom-up Iniciam com clusters específicos que são progressivamente
unidos
Algoritmos Hierárquicos Divisivos Passo 1: Inicie alocando todos os documentos em um
cluster; Passo 2: A partir da estrutura existente de grupos,
selecione um cluster para particionar; Em geral, o maior cluster, ou o cluster menos homogêneo
Passo 3: Particione o grupo em dois ou mais subgrupos; Passo 4: Repita os passos 2 e 3 até que um critério de
parada seja verificado e.g., até atingir um número desejado de grupos
Algoritmos Hierárquicos Divisivos Bi-Secting k-Means
Uso do algoritmo k-Means na etapa de divisão dos clusters
Clusters são sucessivamente particionados em 2 sub-clusters
Complexidade: O(n log(n))
Algoritmos Hierárquicos Aglomerativos
Passo 1: Inicie alocando cada documento como um cluster diferente;
Passo 2: Selecionar o par de clusters mais similares entre si e os agrupe em um cluster mais geral;
Passo 3: Repita o passo 2 até a verificação de um critério de parada e.g., até que todos os documentos sejam agrupados em um
único cluster
Complexidade: O(n2 log(n))
Algoritmos Hierárquicos Aglomerativos Algoritmos variam conforme a maneira de medir
similaridade entre dois clusters Single-Link: definida como a máxima similaridade entre os
membros dos clusters
Complete-Link: definida como a mínima similaridade entre os membros dos clusters
Average-Link: definida como a média da similaridade entre os membros dos clusters
Single Link
Similaridade entre clusters:
Efeito: Produz clusters mais alongados (efeito cadeia)
),(min),(_21 ,
21 jiCdCd
SingleLink ddsimCCclustersimji
Single Link - Exemplo
Complete Link
Similaridade entre clusters:
Efeito: Produz clusters mais coesos e compactos
),(max),(_21 ,
21 jiCdCd
nkCompleteLi ddsimCCclustersimji
Complete Link - Exemplo
Single Link Complete Link
Single-Link conecta pontos de classes diferentes através de uma cadeiade pontos com ruído (*)
Single Link X Complete Link
Complete-Link não é capaz de identificar cluster de pontos (1)
Single Link X Complete Link
22
222
2
11
1
1
1
1
1
1
11 1
1
Average-Link Similaridade entre clusters:
Efeito: Equilíbrio entre clusters coesos e flexíveis Em alguns contextos (e.g., clustering de texto)
tem se mostrado mais eficaz
21 ,21
21 ),(||||
1),(_
CdCdjikAverageLin
ji
ddsimCC
CCclustersim
Algoritmo Aglomerativo Baseado em Centróides
Similaridade entre clusters é definido como a similaridade entre seus centróides
1
1
1
1
1
2
2
x
2
2
33
3
33
2
22
2 22
2
22
2
1
1
1
1
111
1
1
1
Algoritmos Hierárquicos Resumo:
Os algoritmos hierárquicos divisivos são menos custosos que os aglomerativos
Dentre os aglomerativos, o Average-Link funciona melhor em algumas aplicações
Desempenho pode ser melhorado através da combinação de técnicas
Referências D. Arthur, B.Manthey, H.Röglin,
Smoothed analysis of the k-means method, Journal of the ACM 58(2011)19:1–19:31.
D. Arthur, S.Vassilvitskii, How slow is the k-means method? In: N. Amenta, O. Cheong (Eds.), Symposium on Computational Geometry, ACM, 2006, pp.144–153.
Jain, A. K., Murty, M. N., and Flynn, P. (1999). Data clustering: a review. ACM Computing Surveys, 3(31):264–323.
Xu, R. and Wunsch II, D. (2005). Survey of Clustering Algorithms, IEEE Trans. on Neural Networks, 16(3):645-677.
Jiang, D., T., Tang, and Zhang, A. (2004). Cluster Analysis for Gene Expression Data: A Survey, IEEE Trans. on Knowledge and Data Engineering, 16(11).