Post on 21-Apr-2015
Comitês (Comitês (EnsemblesEnsembles) de ) de Agrupamentos Agrupamentos
Marcílio C. P. de Souto
DIMAp/UFRN
Motivação
Um dos maiores desafios para os atuais algoritmos de agrupamento (clustering) é a robustez das soluções encontradas
Além disso, não se pode afirmar que há uma categorizarão correta única
A aplicação de mais de uma técnica pode trazer diferentes relacionamentos entre os dados
No contexto de algoritmos supervisionados, isto levou ao desenvolvimento do conceito de sistemas multi-classificadores (comitês ou ensembles)
Apenas recentemente técnicas de comitês vêm sendo aplicadas a algoritmos de agrupamento
Comitês de Agrupamentos - Modelo
Dados
Integração
Partição Final
Geração
Partições Base
Comitês de Agrupamentos - Modelo
Seja X um conjunto de n objetos em um espaço d-dimensional Suponha que seja dado um conjunto de partições II = {1,
2,...,h} de X Cada partição que faz parte de II é um conjunto de grupos
disjuntos, exaustivos e não-vazios πi = {Li
1, Li2, ...,Li
k(i)}, X = Li1,..., Li
k(i), para todo πi, em que K(i) é o número de grupos da i-ésima partição
Encontrar uma partição consenso σ = {C1, ..,CK} de X, dadas as partições em Π (comitê/ensemble de partições ou conjunto de partições base), tal que ela represente Π de forma ótima (segundo algum critério)
Comitês de Agrupamentos - Modelo
Algoritmo Base Que algoritmo(s) de agrupamento aplicar para construir as
partições base? e.g., k-médias, EM, hierárquico com ligação média, ...
Estratégia de Geração Quantas partições base gerar? Como assegurar diversidade entre as partições base?
Estratégia de Integração (Função Consenso) Como as partições base devem ser combinadas?
Taxonomia: Geração e Consenso
Co-associação
Votação
Hipergrafos
Mistura (EM)
CSPA
HGPA
MCLA
Single
Comp.
Avg. Link
Teoria da Informação
Outros
Diferentes Inic. do mesmo Algoritmo
Diferentes Subconjuntos dos Dados
Diferentes Subconjuntos dos Atributos
Projeções Subespaço
Algoritmos Diferentes
Função ConsensoEstratégia de Geração
Função Consenso: Matriz de Co-Associação
A similaridade entre os objetos (instâncias) pode ser estimada a partir do número de grupos compartilhados por dois objetos em todas as partições base
Suposição: instâncias que pertencem a um grupo “natural” provavelmente deveriam ser colocadas no mesmo grupos em diferentes partições
Esta definição de similaridade expressa a força de co-associação de cada par de objetos por:
C(xi,xj)=nij/h, em que nij é o número de vezes que as instâncias xi e xj foram atribuídas ao mesmo grupo entre as h partições base
A matriz gerada pode ser usada como entrada para qualquer método de agrupamento baseado em matriz de similaridade
(Jain & Fred, 2002)
Co-associação: Exemplo (1/4)
A
Partições Base
BC
D
E
A
BC
D
E
A
BC
D
E
h=3 (três partições)
Co-associação: Exemplo (2/4)
A
Partições Base
-3/31/300E
3/3-1/300D
1/31/3-2/32/3C
002/3-3/3B
002/33/3-A
EDCBA
BC
D
E
Matriz de Co-associação
A
BC
D
E
A
BC
D
E
Objetos D and E ocorreram no mesmo
grupo 3 vezes
h=3 (três partições)
Co-associação: Exemplo (3/4)
A
Partições Base
-3/31/300E
3/3-1/300D
1/31/3-2/32/3C
002/3-3/3B
002/33/3-A
EDCBA
BC
D
E
Matriz de Co-associação
A
BC
D
E
A
BC
D
E
h=3 (três partições)
Partição Final
Meta-clusterA
BC
D
E
Co-associação: Exemplo (4/4)
Que algoritmo usar para o processo de “meta-agrupamento”? Método Hierárquico
Ligação Simples (mais comum) Ligação Média Ligação Completa
Métodos baseados em particionamento de grafos Outros...
Exemplo II
Suponha que uma base de dados composta de sete objetos X={x1, x2, ..., x7} seja aplicada a quatro algoritmos de agrupamentos diferentes, gerando as quatro partições seguintes:
A partir dessas partições, encontrar uma nova partição σ (partição consenso) que as representem de forma ótima
1 = {{x1, x2, x3}, {x4, x5}, {x6, x7}}
2 = {{x1, x2, x3}, {x4, x5}, {x6, x7}}
3 = {{x1, x2}, {x3, x4}, {x5, x6, x7}}
4 = {{x1, x4}, {x2, x5, x7}, {x3, x6}}
Exemplo II: Partições1
2
3
4
x1 1 2 1 1
x2 1 2 1 2
x3 1 2 2 3
x4 2 3 2 1
x5 2 3 3 2
x6 3 1 3 3
x7 3 1 3 2
1
2
3
4
x1 1 A C1x2 1 A C2x3 1 A C3x4 2 B C1x5 2 B C2x6 3 C C3x7 3 C C2
Exemplo II: Matriz de Co-Associação
x1 x2 x3 x4 x5 x6 x7x1 1,00
x2 0,75 1,00
x3 0,50 0,50 1,00
x4 0,25 0,00 0,25 1,00
x5 0,00 0,25 0,00 0,50 1,00
x6 0,00 0,00 0,25 0,00 0,25 1,00
x7 0,00 0,25 0,00 0,00 0,50 0,75 1,00
Exemplo II: Resultado da Aplicação do Método Hierárquico com Ligação Simples a Matriz de Co-Associação
x6 x7 x4 x5 x3 x1 x2
Exemplo II: Corte no Dendograma a fim de Gerar a Partição Consenso
x6 x7 x4 x5 x3 x1 x2
Exemplo II: Corte no Dendograma a fim de Gerar a Partição Consenso
x6 x7 x4 x5 x3 x1 x2
σ = {{x1, x2, x3}, {x4, x5}, {x6, x7}}
Exemplo II: Partições Base versus Partição Consenso (gerada a partir da matriz de co-associação)
1 = {{x1, x2, x3}, {x4, x5}, {x6, x7}}
2 = {{x1, x2, x3}, {x4, x5}, {x6, x7}}
3 = {{x1, x2}, {x3, x4}, {x5, x6, x7}}
4 = {{x1, x4}, {x2, x5, x7}, {x3, x6}}
σ = {{x1, x2, x3}, {x4, x5}, {x6, x7}}
Função Consenso:Re-Rotulagem & Votação
No aprendizado supervisionado, há um conjunto fixo de rótulos (classes) que são atribuídos às instâncias
É possível comparar para cada instância xi os resultados de vários classificadores (os rótulos atribuídos) e aplicar uma votação entre estes resultados para definir o resultado final
No entanto, as coisas não tão simples no contexto não-supervisionado
Diferentes execuções de um algoritmo de agrupamento pode resultar em diferentes grupos
Que grupo de uma execução corresponde ao grupo de uma outra? (Problema de Correspondência dos Rótulos)
Re-Rotulagem & Votação: Problema de Correspondência dos Rótulos
Suponha que tenhamos os resultados de várias execuções i de algoritmos de agrupamento que particionam um conjunto de dados X em três grupos Cij (j=1,2,3)
Quando combinamos as duas primeiras execuções temos que decidir:
Quais dos grupos C11, C12 e C13 da primeira execução é similar a quais grupos C21, C22 e C23 da segunda execução, caso exista alguma similaridade
Observe que, ao contrário do aprendizado supervisionado, os números 1, 2 e 3 representando os rótulos dos grupos são atribuídos arbitrariamente
Re-Rotulagem & Votação: Problema de Correspondência dos Rótulos
Se combinamos mais do que duas execuções, o problema se torna ainda mais complexo
A relação de similaridade entre grupos não é transitiva Exemplo: o grupos C11 da primeira execução pode ser
similar ao grupo C22 da segunda que pode ser similar ao grupo C31 da terceira, e assim por diante
No entanto, isto não significa que C31 seja similar a C11
Não há nenhuma forma direta de resolver o Problema de Correspondência dos Rótulos
Para uma partição de K grupos, há K! permutação dos rótulos
Re-Rotulagem: Algoritmo
Heurística para a rotulagem consistente Cada partição base (i) é re-rotulada a fim de maximizar sua
concordância com alguma partição de referência dada () Re-Rotulagem(, i)
1) Construa a “matriz de confusão” entre e i
2) Encontre o maior valor dessa matriz 3) Associe os rótulos dois grupos que correspondem a
este valor máximo 4) Remova este dois grupos 5) Com a matriz reduzida, volte ao passo 2
No primeiro passo do algoritmo, uma das partições base é usada com partição de referência
Re-Rotulagem & Votação
Suponha que temos h partições i do mesmo conjunto de dados X. Denote por i o resultado da votação após os primeiros i passos (= h)
Algoritmo de Votação 1) 1 = 1 2) for i = 2 to h
a) ’i = Re-Rotulagem(i-1 , i) b) Votação
i = (i-1/i)*i-1 + (1/i)*’i
(Weingessel, Dimitriadou & Hornik, 2003)
Exemplo II
Suponha que uma base de dados composta de sete objetos X={x1, x2, ..., x7} seja aplicada a quatro algoritmos de agrupamentos diferentes, gerando as quatro partições seguintes:
A partir dessas partições, encontrar uma nova partição σ (partição consenso) que as representem de forma ótima
1 = {{x1, x2, x3}, {x4, x5}, {x6, x7}}
2 = {{x1, x2, x3}, {x4, x5}, {x6, x7}}
3 = {{x1, x2}, {x3, x4}, {x5, x6, x7}}
4 = {{x1, x4}, {x2, x5, x7}, {x3, x6}}
Exemplo II: Partições1
2
3
4
x1 1 2 1 1
x2 1 2 1 2
x3 1 2 2 3
x4 2 3 2 1
x5 2 3 3 2
x6 3 1 3 3
x7 3 1 3 2
1
2
3
4
x1 1 A C1x2 1 A C2x3 1 A C3x4 2 B C1x5 2 B C2x6 3 C C3x7 3 C C2
Exemplo II: Re-Rotulagem & Votação (1/10)
1
2
3
4
x1 1 A C1x2 1 A C2x3 1 A C3x4 2 B C1x5 2 B C2x6 3 C C3x7 3 C C2
Exemplo II: Re-Rotulagem & Votação (2/10)
1 2 3x1 1 0 0
x2 1 0 0
x3 1 0 0
x4 0 1 0
x5 0 1 0
x6 0 0 1
x7 0 0 1
1 = 1
Exemplo II: Re-Rotulagem & Votação (3/10)
Re-rotulagem: 2 em relação a 1
1 2 3x1 1 0 0
x2 1 0 0
x3 1 0 0
x4 0 1 0
x5 0 1 0
x6 0 0 1
x7 0 0 1
A B Cx1 1 0 0
x2 1 0 0
x3 1 0 0
x4 0 1 0
x5 0 1 0
x6 0 0 1
x7 0 0 1
1 2 3x1 1 0 0
x2 1 0 0
x3 1 0 0
x4 0 1 0
x5 0 1 0
x6 0 0 1
x7 0 0 1
A B C
1 3 0
2 0 2 0
3 0 0 2
Exemplo II: Re-Rotulagem & Votação (4/10)
Votação: (2) = 1/2* (1) + 1/2* 2_re-rotoluda
1 2 3x1 0,5 0 0
x2 0,5 0 0
x3 0,5 0 0
x4 0 0,5 0
x5 0 0,5 0
x6 0 0 0,5
x7 0 0 0,5
1 2 3x1 0,5 0 0
x2 0,5 0 0
x3 0,5 0 0
x4 0 0,5 0
x5 0 0,5 0
x6 0 0 0,5
x7 0 0 0,5
+
1 2 3x1 1 0 0
x2 1 0 0
x3 1 0 0
x4 0 1 0
x5 0 1 0
x6 0 0 1
x7 0 0 1
Exemplo II: Re-Rotulagem & Votação (5/10)
Re-rotulagem: 3 em relação a 2
1 2 3x1 1 0 0
x2 1 0 0
x3 1 0 0
x4 0 1 0
x5 0 1 0
x6 0 0 1
x7 0 0 1
x1 1 0 0
x2 1 0 0
x3 0 1 0
x4 0 1 0
x5 0 0 1
x6 0 0 1
x7 0 0 1
1 2 1 0
2 1 1 0
3 0 1 2
1 2 3x1 1 0 0
x2 1 0 0
x3 0 1 0
x4 0 1 0
x5 0 0 1
x6 0 0 1
x7 0 0 1
Exemplo II: Re-Rotulagem & Votação (6/10)
Votação: (3) = 2/3* (2) + 1/3* 3_re-rotoluda
1 2 3x1 0,666667 0 0
x2 0,666667 0 0
x3 0,666667 0 0
x4 0 0,666667 0
x5 0 0,666667 0
x6 0 0 0,666667
x7 0 0 0,666667
1 2 3x1 0,333333 0 0
x2 0,333333 0 0
x3 0 0,333333 0
x4 0 0,333333 0
x5 0 0 0,333333
x6 0 0 0,333333
x7 0 0 0,333333
+
1 2 3x1 1,00 0,00 0,00
x2 1,00 0,00 0,00
x3 0,67 0,33 0,00
x4 0,00 1,00 0,00
x5 0,00 0,67 0,33
x6 0,00 0,00 1,00
x7 0,00 0,00 1,00
Exemplo II: Re-Rotulagem & Votação (7/10)
Re-rotulagem: 4 em relação a 3
1 2 3x1 1,00 0,00 0,00
x2 1,00 0,00 0,00
x3 0,67 0,33 0,00
x4 0,00 1,00 0,00
x5 0,00 0,67 0,33
x6 0,00 0,00 1,00
x7 0,00 0,00 1,00
C1 C2 C3x1 1 0 0
x2 0 1 0
x3 0 0 1
x4 1 0 0
x5 0 1 0
x6 0 0 1
x7 0 1 0
C1 C2 C31 1 1 1
2 1 1 0
3 0 1 1
1 2 3x1 1,00 0,00 0,00
x2 0,00 1,00 0,00
x3 0,00 0,00 1,00
x4 1,00 0,00 0,00
x5 0,00 1,00 0,00
x6 0,00 0,00 1,00
x7 0,00 1,00 0,00
Exemplo II: Re-Rotulagem & Votação (8/10)
Votação: (4) = 3/4* (3) + 1/4* 4_re-rotoluda
1 2 3x1 0,75 0,00 0,00
x2 0,75 0,00 0,00
x3 0,50 0,25 0,00
x4 0,00 0,75 0,00
x5 0,00 0,50 0,25
x6 0,00 0,00 0,75
x7 0,00 0,00 0,75
1 2 3x1 0,25 0,00 0,00
x2 0,00 0,25 0,00
x3 0,00 0,00 0,25
x4 0,25 0,00 0,00
x5 0,00 0,25 0,00
x6 0,00 0,00 0,25
x7 0,00 0,25 0,00
+
1 2 3x1 1,00 0,00 0,00
x2 0,75 0,25 0,00
x3 0,50 0,25 0,25
x4 0,25 0,75 0,00
x5 0,00 0,75 0,25
x6 0,00 0,00 1,00
x7 0,00 0,25 0,75
Exemplo II: Re-Rotulagem & Votação (9/10)
Partição consenso final (fuzzy) :
1 2 3x1 1,00 0,00 0,00
x2 0,75 0,25 0,00
x3 0,50 0,25 0,25
x4 0,25 0,75 0,00
x5 0,00 0,75 0,25
x6 0,00 0,00 1,00
x7 0,00 0,25 0,75
1 2 3x1 1 0 0
x2 1 0 0
x3 1 0 0
x4 0 1 0
x5 0 1 0
x6 0 0 1
x7 0 0 1
Partição consenso final (hard) :
Exemplo II: Re-Rotulagem & Votação (10/10)
Partição consenso final (hard) :
1 = {{x1, x2, x3}, {x4, x5}, {x6, x7}}
2 = {{x1, x2, x3}, {x4, x5}, {x6, x7}}
3 = {{x1, x2}, {x3, x4}, {x5, x6, x7}}
4 = {{x1, x4}, {x2, x5, x7}, {x3, x6}}
σ = {{x1, x2, x3}, {x4, x5}, {x6, x7}}
Função Consenso: Particionamento de (Hiper)Grafos
Strehl & Ghosh (2002) propuseram três heurísticas diferentes para a construção da partição consenso
Cluster-based Similarity Paritioning Algorithm (CSPA) HyperGraph-Partitioning Algorithm (HGPA) Meta-Clustering Algorithm (MCLA)
Esses algoritmos abordam o problema primeiro transformando o conjunto de partições base em um hipergrafo
The output of the method is the consensus partition, found by the consensus functions, with the maximum average Normalized Mutual Information em relação as partições base
(Strehl & Ghosh 2002)
Função Consenso: CSPA
Idêntica a abordagem de Matriz de Co-Associação C(xi,xj)=nij/h, em que nij é o número de vezes que as
instâncias xi e xj foram atribuídas ao mesmo grupo entre as h partições base
A matriz gerada é usada para a construção de um Grafo de Similaridade
O método usado para particionar o grafo em k componentes é o METIS (Multilevel graph partitioning algorithm), desenvolvido por Karypis & Kumar (1998)
Complexidade de tempo e espaço quadrada no número de instâncias
Função Consenso: HGPA1
2
3
4
x1 1 2 1 1
x2 1 2 1 2
x3 1 2 2 ?
x4 2 3 2 1
x5 2 3 3 2
x6 3 1 3 ?
x7 3 1 3 ?
h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11x1 1 0 0 0 1 0 1 0 0 1 0
x2 1 0 0 0 1 0 1 0 0 0 1
x3 1 0 0 0 1 0 0 1 0 0 0
x4 0 1 0 0 0 1 0 1 0 1 0
x5 0 1 0 0 0 1 0 0 1 0 1
x6 0 0 1 1 0 0 0 0 1 0 0
x7 0 0 1 1 0 0 0 0 1 0 0
Transforme o conjunto de partições base em um hipergrafo: cada grupo será um hiper-aresta
Hipergrafo
x1 x4
x3
x2 x5
x6 x7
Função Consenso: HGPA
O problema de encontrar a partição consenso é formulado como o particionamento do hipergrafo pelo corte do número mínimo de hiper-arestas
Assume-se que todos os vértices, como também as hiper-arestas, possuem o mesmo peso
O algoritmo usado para efetuar o particionamento faz parte do pacote HMETIS, que é uma extensão do METIS para hipergrafos (Karypis & Kumar, 1998)
HGPA: Exemplo
x1 x4
x3
x2 x5
x6 x7
HGPA: Exemplo
x1 x4
x3
x2 x5
x6 x7
x1 x4
x3
x2 x5
x6 x7
HGPA: Exemplo
A partição consenso:
{{x1, x2, x3},{x4, x5},{x6, x7}}
Possui o corte mínimo de hiper-arestas de 4 É tão balanceada quanto possível para três
grupos de sete objetos
Função Consenso: MCLA
Como no caso do HGPA, cada grupo é representado como uma hiper-aresta
A idéia do MCLA é: Agrupar e collapsar hiper-arestas (grupos) relacionadas Atribuição de cada instância a hiper-aresta colapsada a qual
ele pertença mais fortemente A determinação das hiper-arestas que são
consideradas relacionadas para o propósito de junção é feita por meio de um agrupamento baseado em grafos das hiper-arestas
Cada grupo de hiper-arestas é chamado de meta-grupo A junção reduz o número de hiper-arestas para k
Função Consenso: MCLA
Construa o Meta-Grafo Associe cada grupo (as hiper-aresta h do hipergrafo anterior) das
partições base a um vértice de um grafo não direcionado (meta grafo)
Os pesos das arestas são proporcionais a similaridade ente os vértices (grupos)
Uma medida de similaridade poderia ser o Índice de Jaccard Agrupe as Hiper-arestas (Grupos)
Particione o meta grafo em k meta-grupos balanceados (METIS) Colapse os Meta-Grupos
Para cada meta-grupo, compute a freqüência de cada um das instância (vetor de associação)
Compita por objetos Um objeto é atribuído ao meta-grupo com o valor mais alta no
vetor de associação
Bibliografia
A. Strehl & J. Ghosh (2002). Cluster Ensembles - A knowledge Reuse Framework for Combining Multiple Partitions. Journal of Machine Learning Research, vol. 3, pp. 583-617.
E. Dimitriadou, A. Weingessel & K. Hornik (2003). A cluster ensembles framework. in Third International Conference on Hybrid Intelligent Systems (HIS), pp. 528-534.
A. L. N. Fred & A. K. Jain (2002). Data clustering using evidence accumulation. in 16th International Conference on Pattern Recognition, pp. 276-280.
G. Karypis & V. Kumar (1998). A fast and high quality multilevel scheme for partitioning irregular graphs. SIAM Journal on Scientific Computing, 20(1), pp. 359-392.