890 likes | 1.05k Views
Métodos de Agrupamentos baseados em Grafos. Lucas Batista Leite de Souza Mestrado em Ciência da Computação Universidade Federal de Uberlândia. Agenda. 1- Introdução 2- Noções da Teoria dos Grafos. 3- Algoritmo CHAMALEON 4- Algoritmo Jarvis -Patrick (talvez). Introdução.
E N D
Métodos de Agrupamentos baseados em Grafos Lucas Batista Leite de Souza MestradoemCiênciadaComputação Universidade Federal de Uberlândia
Agenda • 1- Introdução • 2- Noções da Teoria dos Grafos. • 3- Algoritmo CHAMALEON • 4- Algoritmo Jarvis-Patrick (talvez)
Introdução • Os algoritmos de agrupamento baseado em grafos representam os dados e sua proximidade através de um grafo G(V,E), onde V = {v1,v2,...,vn} é o conjunto de vértices e E é o conjunto de arestas. • Cada vértice representa um elemento do conjunto de dados e a existência de uma aresta conectando dois vértices é feita com base na proximidade entre os dois objetos. • A maneira mais simples de estabelecer as ligações entre os vértices é conectar cada vértice aos (n-1) vértices restantes, onde o peso da aresta indica a similaridade entre os dois objetos que a mesma conecta. • Um cluster é definido como um subgrafo conexo do grafo inicial.
Exemplo: • Considere um banco de dados com 4 objetos (a, b, c, d). • Foi construída a matriz de similaridade para os quatro objetos. • A medida de similaridade pode variar dependendo do problema. • O grafo para esses dados pode ser construído em seguida.
Exemplo: • Um algoritmo de clusterização baseado em grafos poderia achar dois subgrafos colocados abaixo. • Cada subgrafo corresponde a um cluster. Cluster C1 Cluster C2
Noções da Teoria dos Grafos • A Teoria dos Grafos oferece uma maneira de lidar com a divisão dos vértices de um grafo em grupos distintos. • O particionamento de grafos consiste em dividir o conjunto de vértices V em dois subconjuntos S e (V-S). Essa divisão é chamada corte. • No exemplo abaixo o corte é composto pelas arestas a, b e c.
Noções da Teoria dos Grafos • A busca pelo corte mínimo em um grafo depende da escolha da função a ser minimizada. • No caso das arestas do grafo possuírem peso, o tamanho do corte é dado pela soma dos pesos das arestas que conectam vértices em subconjuntos diferentes. • A função a ser minimizada nesse caso é soma dos pesos das arestas. • No exemplo abaixo o tamanho do corte mínimo é 2+2+2=6.
Noções da Teoria dos Grafos • Essa abordagem que procura minimizar a soma do peso das arestas do corte favorece cortes que produzem conjuntos de vértices unitários (i.e. |S| = 1 ou |V-S| = 1). • Isso não é interessante para a clusterização, afinal não queremos clusters unitários. • Uma alternativa é usar uma variação do corte mínimo que busque balancear a cardinalidade dos conjuntos S e (V-S). • Essa abordagem é mais interessante para os propósitos da clusterização. • Encontrar essa versão balanceada do corte é NP-completo, porém diversas heurísticas foram desenvolvidas para buscar uma aproximação desse corte em tempo polinomial [3]. • Ex.: Método baseado na matriz Laplaciana do grafo. Detalhes sobre esse método se encontram em [3].
Noções da Teoria dos Grafos • Por que particionar o grafo usando o corte mínimo? • Estamos considerando que quanto maior o peso da aresta, maior a similaridade entre os objetos que ela conecta. Assim, o corte mínimo separa objetos pouco similares em dois conjuntos distintos.
Noções da Teoria dos Grafos • Grafo Esparso • Informalmente: Um grafo é dito esparso se ele possui “poucas” arestas. • Formalmente: Um grafo esparso é um grafo G(V,E), no qual |E|= O(|V|).
CHAMALEON G. Karypis et al. (1999) Algoritmo de Clusterização Hierárquico com Modelagem Dinâmica
Motivação • A maior parte dos algoritmos de clusterização encontra clusters de acordo com um modelo estático (global). • Muitas vezes o modelo pode não capturar adequadamente as características dos clusters. • A maior parte desses algoritmos não funciona bem quando existem clusters de diversas formas, densidades e tamanhos. • Por exemplo: • O algoritmo K-Means assume que os clusters serão globulares. Mas e se existirem clusters com vários formatos? • O algoritmo DBSCAN não produz resultados confiáveis quando os clusters apresentam densidades muito diferentes entre si.
Motivação • O exemplo abaixo mostra que o DBSCAN não foi capaz de agrupar corretamente os dados presentes na grande elipse (intuitivamente a grande elipse constitui um único cluster). MinPts=4 Eps=0,4 Imagens Retiradas de [2]
Motivação • O exemplo abaixo mostra que o CURE não foi capaz de encontrar corretamente os clusters. Número de clusters especificado(k)=11 α=0,3 Número de pontos representantes = 10 Imagens Retiradas de [2]
Motivação • Em suma: A maior parte dos algoritmos se baseia em um modelo estático e não usa informações sobre a natureza de clusters individuais para fazer o merge. • Outro problema é que alguns desses algoritmos consideram apenas uma das duas medidas de similaridade colocadas abaixo, o que pode levar a merges incorretos de clusters. • Interconectividade Absoluta. • Proximidade Absoluta.
Medidas de Similaridade entre clusters • Proximidade Absoluta: Consiste em calcular a distância entre os dois clusters. • Uma maneira de fazer isso é calcular a distância entre todos os pares de pontos dos dois clusters, onde cada ponto pertence a um cluster diferente. Algumas possibilidades: • Considerar que a distância entre dois clusters é a distância mínima entre todos os pares de dados (distância do vizinho mais próximo). • Considerar que a distância entre dois clusters é a distância máximaentre todos os pares de dados (distância do vizinho mais distante). • Considerar que a distância entre dois clusters é a média das distâncias entre todos os pares de dados (distância média).
Medidas de Similaridade entre clusters • Exemplos: Abordagem Distância Mínima Abordagem Distância Máxima Abordagem Distância Média Imagens Retiradas de [4]
Medidas de Similaridade entre clusters • O uso da proximidade absoluta como medida de similaridade pode levar algoritmos a unirem clusters de maneira errada. • Exemplo: • Considere que estejamos usando a distância do vizinho mais próximo. • Qual dos dois pares de clusters mergear? • Intuitivamente iríamos mergear o par (b). • Porém, um algoritmo que se baseia apenas na proximidade absoluta, irá mergear equivocadamente o par (a), visto que d1 < d2. Imagens Retiradas de [3]
Medidas de Similaridade entre clusters • Interconectividade Absoluta: Também conhecida por agregação de similaridade entre dois clusters. • Nesse caso, dois pontos a e b possuem uma conexão (aresta) caso a similaridade entre eles exceda algum limite mínimo. • A interconectividade absoluta entre dois clusters é dada pela soma dos pesos das arestas entre pares de dados, um de cada cluster. • A ideia é que sub-clusters pertencentes a um mesmo cluster tenham alta interconectividade. • Em geral a interconectividade entre pares de clusters formados por muitos elementos é alta, por isso muitos algoritmos utilizam alguma forma de normalização desse valor.
Medidas de Similaridade entre clusters • Exemplo: • Considere que os pontos em vermelho constituam um cluster. • Considere que os pontos em preto constituam outro cluster. • Nesse caso a interconectividade absoluta entre os dois clusters seria 5+9+6 = 20.
Medidas de Similaridade entre clusters • O uso da interconectividade absoluta como medida de similaridade pode levar algoritmos a unirem clusters de maneira errada. • Exemplo: • Suponha que a interconectividade entre os elementos dos clusters verde e azul seja maior que a interconectividade entre os elementos dos clusters azul e vermelho. • Qual par de clusters devemos mergear? • Intuitivamente iríamos mergear o par azul-vermelho. • Porém, um algoritmo que se baseia apenas na interconectividade absoluta, irá mergear equivocadamente o par verde-azul. Imagens Retiradas de [3]
Overview • CHAMALEON é um algoritmo de clusterizaçãohierárquico aglomerativoque trata essas dificuldades. • A ideia central é que dois clusters devem ser mergeados apenas se o cluster resultante é similar aos dois clusters originais. • Nos dois exemplo anteriores, caso observássemos as características do cluster resultante, em relação aos dois clusters originais, iríamos realizar o merge esperado.
Características-chave • Proximidade e Interconectividade possuem limitações quando usadas como única medida de similaridade. • CHAMALEON determina o par de clusters maissimilareslevandoemcontatando a proximidade, quanto a interconectividadeentre os clusters. • Além disso, paramedir o grau de interconetividade e proximidade entre cada par de clusters, o algoritmolevaemconsideraçãocaractéristicasinternas de cada um dos clusters. Essefator é o quetorna o modelodinâmico. • O algoritmopodeseraplicado à dados quecontém clusters com característicasbemvariadas (formas, tamanhos, densidades), umavezquese baseiaapenasemcaracterísticas do par de clusters e nãoem um modelo global.
Funcionamento Geral • O algoritmo modela os dados em um grafo esparso, onde os nós representam os dados e as arestas a similaridade entre eles. • O algoritmo é formado por duas fases: • 1: Utiliza um algoritmo de particionamento de grafos para dividir o grafo esparso em pequenos sub-clusters; • 2: Os sub-clusters são combinados de forma a encontrar os clusters reais.
Funcionamento Geral Imagens Retiradas de [3]
Modelando os dados • A partir da matriz de similaridade, os dados do conjunto são modelados em um grafo esparso, chamado Grafo dos K-vizinhos mais próximos ou Grafo KNN. • Cada vértice corresponde à um objeto e é ligado aos seus K-vizinhos mais similares. • O peso da aresta representa a similaridade entre os dois objetos que a mesma conecta.
Modelando os dados • Exemplo: • Considere a matriz de similaridade entre quatro objetos: a, b, c, d. • Considere K=1. • Ou seja, cada objeto será ligado ao seu vizinho mais próximo. • O vizinho mais próximo do a é o c, pois a similaridade entre ambos é 4. • O vizinho mais próximo do b é o a, pois a similaridade entre ambos é 3. • O vizinho mais próximo do c é o a, pois a similaridade entre ambos é 4. • O vizinho mais próximo do d é o c, pois a similaridade entre ambos é 3. Grafo KNN K=1
Modelando os dados Imagens Retiradas de [3]
Modelando os dados • Razões para usar o Grafo KNN: • Objetos que são pouco similares entre si não estão conectados no Grafo KNN; • Captura o conceito de vizinhança dinamicamente; • Melhora a eficiência computacional (menos arestas para processar).
Particionamento do Grafo KNN • As medidas de similaridade utilizadas pelo Chamaleon (que serão explicadas posteriormente) apresentam resultados confiáveis apenas quando aplicadas a clusters com um número razoável de elementos. • Por isso, o Grafo KNN deve ser dividido em sub-clusters com um número razoável de elementos que permita a modelagem dinâmica do algoritmo. • CHAMALEON encontra os sub-clusters aplicando um algoritmo de particionamento de grafos que divide o grafo inicial em muitas partições de modo que a soma do peso das arestas que ligam as partições (arestas de corte) seja minimizada. • Encontrar um particionamento de corte mínimo significa minimizar a similaridade entre os clusters. • Idealmente, um objeto deve ter maior similaridade com objetos do seu próprio cluster do que de outros clusters. • CHAMALEON utiliza o algoritmo METIS para o particionamento.
Particionamento do Grafo KNN • O objetivo do algoritmo METIS é dividir o Grafo KNN em vários subgrafos. • Idealmente cada subgrafo gerado deve corresponder a um sub-cluster de um cluster real.
Particionamento do Grafo KNN • Algoritmo METIS: • Entrada: • Um grafo G esparso (por exemplo um Grafo KNN). • Um parâmetro T que indica o tamanho máximo para os subgrafos que serão obtidos. • Saída: • Um conjunto de componentes distintos (subgrafos). • Funcionamento: • Os sub-clusters iniciais são obtidos a partir de um único cluster formado por todos os dados do Grafo KNN. • Repetidamente o maior cluster é dividido. • Esse processo chega ao fim quando o maior cluster possuir tamanho menor que T. • O valor de T devesergrande o suficienteparapermitir o cálculo das medidas de similaridadeusadaspelo CHAMALEON.
Particionamento do Grafo KNN • Exemplos de particionamentos realizados pelo METIS na primeira iteração, para dois conjuntos diferentes de dados. • Mais informações sobre o algoritmo METIS em [5]. Imagens Retiradas de [3]
Particionamento do Grafo KNN • Ao final desse algoritmo temos um grande número de subgrafos de tamanho aproximadamente igual, e bem conectados (com pontos muito similares uns aos outros). • O objetivo é que cada partição (subgrafo) contenha na sua maioria pontos pertencentes à um único cluster real.
Modelando a similaridade entre clusters • A similaridade entre dois clusters é determinada de maneira dinâmica. • CHAMALEON considera duas medidas de similaridade: • Interconectividade relativa (RI) • Proximidade relativa (RC) • Dois clusters são unidos caso apresentem alta interconectividade e seus elementos estejam próximos, o que é traduzido em altos valores de RI e RC.
Modelando a similaridade entre clusters • Interconectividade Relativa (RI): • A ideia é juntar clusters apenas se os pontos no cluster resultante estão quase tão fortemente conectados uns aos outros assim como estão os pontos nos clusters originais. • A interconectividade absoluta entre dois clusters Ci e Cj (|EC(Ci,Cj)|) é definida como a soma dos pesos das arestas (do grafo KNN) que ligam os dois clusters. • Essas arestas estavam no Grafo KNN original mas foram removidas devido à execução do METIS. • A interconectividade interna de um cluster Ci (|EC(Ci)|)é obtida através da soma dos pesos das arestas que cruzam o corte mínimo que divida o cluster em duas partes aproximadamente iguais (bisseção mínima).
Modelando a similaridade entre clusters • Interconectividade Relativa (RI): • Para obter a Interconectividade Relativa entre os clusters Ci e Cj (RI(Ci,Cj)), deve-se normalizar a interconectividade absoluta (|EC(Ci,Cj)|), em relação à interconectividade interna dos clusters Ci (|EC(Ci)|) e Cj (|EC(Cj)|). Assim, chega-se a equação:
Modelando a similaridade entre clusters • Interconectividade Relativa (RI): • Exemplo: Considere os dois clusters a seguir: Cluster A Cluster B
Modelando a similaridade entre clusters • Primeiramente iremos calcular a interconectividade absoluta entre os clusters. • Considere que no Grafo KNN (antes da execução do METIS) existiam as seguintes arestas que permitam conectar pontos azuis a pontos vermelhos: • aresta b-e, com peso 1 • aresta b-h, com peso 0,9 • aresta d-h, com peso 0,95 • aresta d-i, com peso 1,1
Modelando a similaridade entre clusters • Assim, a interconectividade absoluta é calculada: |EC(A,B)| = 1+ 0,9 + 0,95 + 1,1 = 3,95
Modelando a similaridade entre clusters • Agora devemos calcular a interconectividade interna dos clusters A e B. • Deve-se achar o corte mínimo de cada um dos grafos. • Esse corte deverá “dividir” cada um dos grafos em conjuntos com o mesmo número de elementos (versão balanceada do corte). • |EC(A)| = 2 + 3 = 5 • |EC(B)| = 3 + 5 = 8
Modelando a similaridade entre clusters • Aplicando a fórmula para o cálculo de RI, temos: RI(A,B) = 3,95/((5+8)/2) = 3,95/6,5 = 0,61 • O uso da interconectividade relativa permite que o CHAMALEON possa se adaptar a variadas formas de clusters bem como variações no grau de interconectividade dos clusters.
Modelando a similaridade entre clusters • Interpretação da Equação para cálculo de RI: • Melhor Cenário Possível: • RI(Ci,Cj) próximo a 1: o cluster resultante da união de Ci e Cj seria quase tão conectado quanto os dois clusters originais (numerador ≅ denominador). • Pior Cenário Possível: • RI(Ci,Cj) próximo a 0: o cluster resultante da união de Ci e Cjseria bem menos conectado que os clusters originais (numerador muito menor que o denominador).
Modelando a similaridade entre clusters • Proximidade Relativa (RI): • A ideia é juntar clusters apenas se os pontos no cluster resultante estão quase tão próximos uns aos outros assim como estão os pontos nos clusters originais. • A proximidade absolutaentre dois clusters Ci e Cj(SEC(Ci,Cj)) é definida como a média dos pesos das arestas (do Grafo KNN) que ligam os dois clusters. • Essa é uma boa estratégia para calcular a similaridade entre os clusters, pois no Grafo KNN vértices pouco similares não estão conectados. • A proximidade internade um cluster Ci(SEC(Ci)) é obtida através da média dos pesos das arestas que cruzam o corte mínimo que divida o cluster em duas partes aproximadamente iguais (bisseção mínima).
Modelando a similaridade entre clusters • Proximidade Relativa (RC): • Para obter a Proximidade Relativa entre os clusters Ci e Cj (RC(Ci,Cj)), deve-se normalizar a proximidade absoluta (SEC(Ci,Cj)), em relação à proximidade interna dos clusters Ci(SEC(Ci)) e Cj(SEC(Cj)). • Assim, chega-se a equação: • |Ci| é o número de elementos no cluster Ci. • |Cj| é o número de elementos no cluster Cj. • Observe, pelo denominador da equação, que é dada uma maior importância para o cluster com mais elementos
Modelando a similaridade entre clusters • Proximidade Relativa (RC): • Exemplo: Considere os dois clusters a seguir: Cluster A Cluster B
Modelando a similaridade entre clusters • Primeiramente iremos calcular a proximidade absoluta entre os clusters. • Considere que no Grafo KNN (antes da execução do METIS) existiam as seguintes arestas que permitam conectar pontos azuis a pontos vermelhos: • aresta b-e, com peso 1 • aresta b-h, com peso 0,9 • aresta d-h, com peso 0,95 • aresta d-i, com peso 1,1
Modelando a similaridade entre clusters • Assim, a proximidade absoluta é calculada: SEC(A,B) = (1+ 0,9 + 0,95 + 1,1)/4 = 0,9875
Modelando a similaridade entre clusters • Agora devemos calcular a proximidade interna dos clusters A e B. • Deve-se achar o corte mínimo de cada um dos grafos. • Esse corte deverá “dividir” cada um dos grafos em conjuntos com o mesmo número de elementos (versão balanceada do corte). • SEC(A) = (2 + 3)/2 = 2,5 • SEC(B) = (3 + 5)/2 = 4
Modelando a similaridade entre clusters • Aplicando a fórmula para o cálculo de RC, temos: RC(A,B) = 0,9875 /[ (4/(4+6))*2,5 + (6/(4+6))*4 ] = 0,9875/(1 + 2,4) = 0,29