PRO1ETO DE PESQUISA: UM EFICIENTE ALGORITMO DE CLUSTERIZAO KMEANS: ANLISE E IMPLEMENTAO PARTE II
Alunos: Emmanoel 1efferson dos Santos 1efferson Pita dos Santos Icaro Figueira Martins de Oliveira Coordenao: Prof. Renan Souza Duque de Caxias, 01 de dezembro de 2009. FUNDAO EDUCACIONAL DE DUQUE DE CAXIAS CURSO DE BACHARELADO EM SISTEMAS DE INFORMAO PRO1ETO DE PESQUISA: Um eficiente Algoritmo de Clusterizao k-Means: Anlise e Implementao Parte II _______________________________________ _________________ Emmanoel 1efferson dos Santos (Aluno) _______________________________________ _________________ 1efferson Pita dos Santos (Aluno) _______________________________________ _________________ Icaro Figueira Martins de Oliveira (Aluno) _______________________________________ _________________ Renan Souza (Coordenador Responsvel) 2 INDICE Resumo ...........................................................................................................................pg 4 Analise de dados sensveis ............................................................................................pg 4 Dados Reais .................................................................................................................pg 7 Comparao com BIRCH ............................................................................................pg 7 Consideraes Finais ....................................................................................................pg 8 Anexos.............................................................................................................................pg 8 Bibliografia ..................................................................................................................pg 11 3 Um eficiente Algoritmo de Clusterizao k-Means: Anlise e Implementao Resumo: Na clusterizao com k-means, nos dado um conjunto de n pontos de dados em um espao dimensional R a e um inteiro k e o problema determinar um conjunto de k pontos em R a , chamados centroides , de modo a minimizar a distncia mdia de cada ponto de dados para o seu centro mais proximo. Uma popular descoberta para o k-means o algoritmo de Lloyd's. Nesta pesquisa, apresentado uma implementao simples e eIiciente do algoritmo de clusterizao Lloyd's k-means, que chamado de algoritmo de Iiltragem. Este algoritmo de Iacil implementao, exigindo uma ka-tree como unica estrutura de dados importante. 1. Anlise de dados Sensveis Nesta seo, apresentado uma analise do tempo gasto em cada etapa do algoritmo de Iiltragem. Tradicionalmente o pior caso de analise no realmente necessario aqui desde que, no inicio, o algoritmo possa encontrar cenarios em que se degenera busca por Iora bruta. Isso acontece, por exemplo, se os pontos centrais esto todos localizados em uma esIera centrada na unidade de origem e os pontos de dados esto agrupados em torno da origem. Porque os centros so quase eqidistantes a qualquer subconjunto de pontos de dados. Naturalmente, este um cenario absurdamente artiIicial. Analisando o tempo de execuo do algoritmo, no apenas como uma Iuno de k, mas como uma Iuno do grau em que o conjunto de dados consiste de clusters separados. Para eIeitos de nossos resultados teoricos, teremos uma estrutura de dados mais Iorte do que as propriedades geomtrica ka-simple-tree. Considere o ka- tree a estrutura basica de dados descrita no primeiro documento. DeIinindo a relao de aspecto em uma clula a ser a razo entre o comprimento do seu lado mais longo ao seu lado mais curto. O tamanho de uma clula o comprimento do seu lado mais comprido. As clulas de uma ka-tree geralmente tem alta arbitrariedade. Para esta analise, suponhamos que, ao invs de uma ka-tree, os pontos de dados so armazenados em uma estrutura chamada bba-tree para o set point. Os dois seguintes lemas resumi as relevantes propriedades da bba-tree. Lema 1: Dado um conjunto P de n pontos de dados no R a e um delimitado C hipercubo para os pontos, em O(an log n) tempo possivel construir uma bba-tree que representa uma decomposio hierarquica de C em clulas de complexidade 0(a) tal que: 1. A arvore tem O(n) nos e proIundidade O(log n) 2. As clulas tm limitado a relao de aspecto e, com cada 2d niveis de descida na arvore, os tamanhos das clulas associadas diminuem em pelo menos um Iator de . Lema 2 (embalagem de restrio): Considere um conjunto C de clulas o bba-tree com pares interiores disjuntos, cada um do tamanho de ,pelo menos, que se cruzam uma bola de raio R. O tamanho desse conjunto , no maximo, (1 [4r/8{) a Esta analise motivada pela constatao de que um grande trato do tempo de execuo do algoritmo de Lloyas gasto nas Iases posteriores do algoritmo quando os pontos centrais esto proximos e suas localizao Iinal, mas o algoritmo ainda no convergiram. A analise baseada na suposio de que o conjunto de dados pode realmente ser agrupadas em k clusters natural em que a centros atuais so localizadas perto dos centros do cluster verdadeiro. Esses pressupostos so reconhecidamente Iorte, mas a nosso experimento resulta conIirmar a eIicincia do algoritmo mesmo quando esses pressupostos no so cumpridos. Um no visto, se o processo de Iiltro invocado sobre ele. Um no interno expanaiao se seus Iilhos esto vistos. Um no no-Iolha terminal, se no ha nenhum centro : que esta mais perto de qualquer parte da clula de associados do que o proximo centro :*. note que, se uma clula no-Iolha intercepta o diagrama de voronoi (ou seja, no existe nenhum centro que esta mais proximo de cada parte da clula), ento no pode ser um no 4 terminal. Na Iig. 1, o no com uma pilha terminal, pois inteiramente situado dentro da clula de Voronoi de seu centro mais proximo. Clula b terminal, pois uma Iolha. No entanto, a clula c no terminal, porque no uma Iolha e cruza com o diagrama de Voronoi. Observe que, neste exemplo bem tipico, se os clusters esto bem separados e os pontos centrais esto perto dos centros do cluster verdadeiro, ento uma Irao relativamente pequena de conjunto de dados encontra-se perto das bordas do diagrama de Voronoi os centros. Dos mais separados clusters, o menos sera essa Irao e, conseqentemente, menos clulas de estrutura de pesquisa tera de ser visitada pelo algoritmo. Nossa analise Iormaliza essa intuio. Assumindo que os pontos de dados so gerados de Iorma independente de k diIerentes distribuies multivariadas na R d . Considere qualquer distribuio de tal. Seja X ( x1, x2,..., xa ) denote um vetor aleatorio desta distribuio. Deixe C R a denotar o ponto mdio dessa distribuio e vamos denotar a matriz de co-varincia a x a para a distribuio. l E(( n)( n) T ). Observe que os elementos da diagonal so as varincias as variaveis aleatorias que so associadas, respectivamente, com as coordenadas individuais. Vamos tr(l ) denotar o trao, isto e, a soma dos seus elementos na diagonal. Vamos medir a disperso da distribuio de uma variavel pelo o\tr(l ). Esta uma generalizao natural do conceito de norma de desvio de uma distribuio uni variada. Caracterizando o grau de separao dos agregados por dois parmetros, n (i) e o (i) , denote, respectivamente, a mdia e a disperso do cluster ith distribuio, r min / min, n (i) , e o max max o (i) onde ,q q, denote a distncia euclidiana entre os pontos q e p. A quantidade de ex-meia o minimo de distncia entre dois centros de agrupamento e esta ultima a disperso maxima. Intuitivamente, em locais bem separados clusters r max, r min so grande em relao a o max. Nos deIinimos o cluster de separao da distribuio a ponto de ser (r min / o max). Isto similar a noo Dasguptas de pares c-separaaos clusters, onde c 2p. E tambm semelhante ao da separao medida de clusters i Coggins e Jain, deIinida para ser min f=i , n (i) - n (f) , /o (i) . Supondo que os centros dos candidatos esto relativamente proximos ao cluster signiIica n (i) , ento, como p aumenta (isto , como clusters so mais bem separados), o tempo de execuo do algoritmo melhora. Esta prova Iaz uso da generalizao seguinte direta de Chebyshev desigualdade para distribuies multivariadas. O produto a prova, aplicando a desigualdade de Chebyshev para cada coordenada e somando os resultados de todos os a coordenadas. Lema 3: Seja X um vetor aleatorio em R a elaborado a partir de uma distribuio com isso n e ae aisperso o ( a raiz quadrada do trao da matriz de co-varincia ). Ento, para todo t positivo, Pr(,X n,~ to )(a / t 2 ) Para o ~ 0, dizemos que um conjunto de candidatos o-close com relao a um determinado conjunto de clusters, se, par cada centro c (i) , ha um cluster de associados, um n (i) dentro da distncia de, no maximo, or min e vice-versa. Aqui o principal resultado desta seo. Re-chamando quando um no visitado, se o procedimento de Iiltro invocado sobre ele. Teorema 1. Considere um conjunto de n pontos em R a elaborado a partir de uma coleo de clusters de distribuies com separao de cluster r min , o max, e considere um conjunto de centros de candidatos de k o-close ao cluster signiIica, para alguns o1. Ento, para qualquer C, 0 C1 o, e por alguma constante c, o numero esperado de nos visitados pelo algoritmo de Iiltragem O( k( ( c\a ) / C ) a 2 a k log n( an / 2 ( 1 C ) 2 ) ) 5 Antes de dar a prova, existe algumas observaes sobre este resultado. O resultado Iornece um limite superior de numero de nos visitados. O tempo necessario para processar cada no proporcionalmente ao numero de candidatos para o no, que no maximo k e geralmente muito menor. Assim, o tempo total do algoritmo maior por pelo menos um Iator de k. Alm disso, o tempo total de execuo inclui uma contribuio aditiva de O( an log n ) tempo necessario para construir bba-tree inicial. Note que, para a, e C Iixo( delimitadamente longe de 0 e 1 o ), o numero de nos visitados em Iuno de n O(n) ( deste o ultimo termo da analise domina ). Assim, o tempo de execuo total O(kn), que parece no ser melhor que o algoritmo de Iora bruta. A observao importante, no entanto, que, a medida que aumenta o cluster de separao , o O( kn / 2 ) diminui o tempo de execuo do algoritmo e aumenta a eIicincia rapidamente. O numero real esperado de clulas visitadas pode ser muito menor para distribuies especiIicas. Prova. Considere o ensimo cluster. Com c (i) designe um candidato a centro que esta dentro da distncia or min da sua mdia n (i) . Com o (i) denote sua disperso. Com B (i) denote uma bola de raio r min centrada em um n (i) . Observe que, porque nenhum cluster centro esta mais perto do que 2r min, esses bolas tm par interiores disjuntos. Com b (i) denote uma bola do raio r min( 1 C o ) centrado em c (i) . Porque c (i) o-close to ni , b (i) contido dentro de uma esIera de raio r min( 1 C ) centrada em um n (i) e, portanto esta contida dentro de B (i) . Alm disso, a distncia entre os limites de B (i) e b (i) pelo menos Cr min. Considere um no visitado e deixe C denote sua clula associada no bba-tree. Consideramos dois casos. Primeiro, suponha que, para alguns cluesters i, C b (i) = O. Chamamos C no Iim. Caso contrario, se a clula no cruza nenhuma das b (i) bolas, um no distante. (veja a Iig. 2). A intuio por tras da prova o seguinte: se o cluster Iorte, ento nos esperariamos apenas alguns pontos a serem distantes dos centos do cluster e, portanto, existem poucos nodos distantes. Se um no esta perto de seu centro e no muito grande, ento so existe um candidato para o vizinho mais proximo e, portanto, o no sera terminal. Como as clulas da bba-tree tm delimitado proporo, o numero de clulas grandes que podem sobrepor-se a uma bola esta delimitado. Primeiro, Ioi limitado o numero de nos distantes visitados. Considere a subarvore da bba-tree induzida por esses nos. Se um no esta distante, ento seus Iilhos so tanto distante, o que implica que esta subarvore induzida uma arvore estritamente binaria ( isto , cada no no Iolha tem exatamente duas crianas ). E sobejamente conhecido que o numero total de nos no Iolha de uma arvore binaria completa no maior que o numero de Iolhas. O ponto de dados associados com todas as Iolhas da subarvore induzida no pode exceder o numero de pontos de dados que se encontram Iora de b (i) . ConIorme ja Ioi reIerido, para qualquer cluster i, um ponto de dado do cluster que esta Iora de b (i) a distncia para n (i) de pelo menos r min ( 1 C ) ( r min / o (i) ) (1 - ) o (i) ~ (1 C ) o (i) . Pelo lema 3, a probabilidade de isso acontecer , no maximo a/ ( ( 1 C ) ) 2 . Assim, o numero esperado de pontos de tais dados an/( ( 1 C ) ) 2 . Decorre de norma resultando em arvore binaria que o numero de nos distantes mais em dobro. Em seguida, Ioi limitado o numero de nos visitados Iechados. Claramente, o numero de nos visitados perto proporcional ao numero de nos Iechados expansiveis. Para cada cluster i, considere as Iolhas das subarvores induzido consiste em Iechar nos expandidos que b (i) se cruzam. ( o numero total de nos expandidos proximo sera maior por um Iator de k ) Logando o numero de nos tal que, nos ainda classiIicaremos pelo tamanho da clula associativa. v um no expandido cujo tamanho de pelo menos 4r min grande e, caso contrario, ele pequeno. Foi visto que o grande numero de nos expandidos delimitado por O( 2 a log n ) e o numero de pequenos nodulos expandidos delimitado por O( (c\a / C ) a ), para alguma constante c. 6 Comeando por mostrar o limite do numero de grandes nos expandidos. Na descida atravs da bba-tree, os tamanhos dos nos diminuem monotonicamente. Considere o conjunto de todos os nos expandidos de tamanho superior a 4r min. Esses nos induzem uma subarvore no bba-tree. Seja L denote as Iolhas desta arvore. As clulas associadas com os elementos da L tem par no interior eles cruzam b (i) e, Assim, eles cruzam B (i) . Decorre do lema 2 ( aplicado a B (i) e as clulas associadas a L ) que existem no maximo (1 [ 4r min / (4r min) { ) a 2 a tais clulas. Pelo lema 1, a proIundidade da arvore O( log n ) em conseqentemente, o numero total de grande nos expandidos O( 2 a log n ), como desejado. Finalmente, considere os pequenos nos expandidos. AIirmando que o dimetro da clula correspondente a qualquer no seja pelo menos Cr min. Se no, ento essa clula iria mentir inteiramente dentro de uma esIera de raio r min ( 1 o ) de c (i) . Desde que a clula Ioi alargada, sabemos que deve existir um ponto nesta clula que esta mais perto de algum outro centro cf. Este implica que a distncia entre o c (i) e c (f) e inIerior a 2r min (i o ). desde que os candidatos sejam o-close, segue-se que existem dois meios clusters n (i) e n (f) que esto mais perto do que 2r min ( 1 o ) 2o r min 2r min. No entanto esta estaria em contradio com a deIinio de r min. Uma clula em dimenso a de dimetro x tem comprimento maior de pelo menos no lado x/\a. Assim, o tamanho de cada clula seja pelo menos C r min / \d. Pelo lema 2, segue-se que o numero dessas clulas que se sobrepem B(i) no maximo ( c\d / C ) d Isso conclui a prova. 2. Dados reais Para entender a relativa eIicincia desse algoritmo em circunstncias mais pratica, Ioram Ieitas um certo numero de experincias com conjuntos de dados provenientes de aplicaes reais no processamento de imagem, compresso e segmentao. Cada experincia envolveu resolver um problema de k-means em um conjunto de pontos na R a para diIerentes as. Em cada caso, aplicou-se todos os trs algoritmos: Iora bruta ( Brute ), ka-center (KDcenter), e Iiltragem (Filter). No algoritmo de Iiltragem, incluimos o tempo de pr- processamento em mdia. Em cada caso, nos computamos o tempo mdio de CPU por etapa em segundo (T-) e a mdia do numero de no-pares candidato (CN-). Isso Ioi repetido para os valores de k escolhido 8,64,256}. Os resultados so apresentados na tabela 1. Os experimentos so agrupados em trs categorias gerais. O primeiro envolve uma aplicao de quantizao de cores. A cor da imagem dado e um numero de pixels so mostrados a partir da imagem (10.000 para o experimento ). cada pixel representado como uma tripla composta de componentes vermelho, verde e azul, cada um na Iaixa |0,255| e , portanto, um ponto em R 3 . As imagens Ioram escolhidas na entrada de um numero de imagens padro para esta aplicao. As imagens so mostradas na Iig. 3 e os resultados so dados a correr na parte superior metade da tabela 1, em Irente a imagem nomes correspondentes. O experimento seguinte envolveu uma quantizao vetorial aplicao para compresso de dados. Aqui, as imagens so imagens em escala de cinza com valores de pixels no intervalo |0, 255|. Unidade 2x2 subarray de pixels selecionada e mapeada para um elemento do vetor e o algoritmo K-means executado resultando em um conjunto de vetores. As imagens so mostradas na Iig. 4 e os resultados so apresentados na tabela 1, ao lado de nomes. O Iinal do experimento envolveu a segmentao de imagem. A 512 x 512 imagens Landsat de Israel, que consiste em quatro espectrais bandas Ioram usadas. O resultado vetores 4-elementos no intervalo |0,255| Ioram apresentados aos algoritmos. Um das bandas de imagem mostrada na Iig. 5 e os resultados so apresentados na tabela 1, em Irente ao nome de 'Israel. Uma inspeo dos resultados mostra que o algoritmo de Iiltragem superou signiIicativamente os outros dois algoritmos em todos os casos. Parcelas do ponto subjacente distribuies mostraram que a maioria desses 7 conjuntos de dados no eram realmente bem clusterizado. Assim, o algoritmo de Iiltragem bastante eIiciente, mesmo quando as condies do teorema 1 no esto satisIeitos. 3. Comparao com BIRCH Uma comparao entre o algoritmo de Iiltragem e o esquema BIRCH de clusterizao apresentado na tabela 2. A tabela mostra as distores provocadas por ambos os algoritmos. A Coluna 'BIRCH de relatorios das distores obtidos com o soItware de btula. A coluna chamada de 'Filter prev as distores obtidas devido a Iiltragem do algoritmo k-means ( com os centros inicialmente mostrados aleatoriamente a partir dos pontos de dados ). Alternativamente, podem-se usar os centros obtidos por BIRTCH como centros iniciais para o algoritmo de Iiltragem. Isso mostrado na coluna 'Combined da tabela. Como pode ser visto, as distores so sempre melhores consideravelmente melhor em alguns dos casos. (Isso porque k-means no pode aumentar as distores. ) Na verdade, como Ioi mencionado anteriormente, k-means pode ser executado para melhorar a distoro de qualquer algoritmo de agrupamento. 4. Consideraes Finais Foi apresentado uma implementao eIiciente do algoritmo de clusterizao Lloyas k-means, o chamado de algoritmo Iiltragem. O algoritmo Iacil de implementar e requer apenas que uma ka-tree possa ser construida uma vez para os pontos de dados Iornecidos. A eIicincia conseguida porque os pontos de dados no variam ao longo do calculo e, dai, esta estrutura de dados no precisa ser recalculada em cada etapa. Uma vez que existam normalmente muitos mais pontos de dados de 'consulta pontos ( ou seja, centros ), a vantagem relativamente Iornecida pelo pr-processamento de Iorma maior. Nosso algoritmo diIere das abordagens existentes apenas na Iorma mais proxima dos centros que so computados, para que pudesse ser aplicada a muitas variantes do algoritmo d Lloyas. Demonstrando a eIicacia pratica deste algoritmo, tanto teoricamente, atravs de uma analise de dados sensiveis, e empiricamente, atravs de experincias de ambos produzidos sinteticamente com conjunto de dados reais. A analise dos dados mostra que os mais sensiveis, e bem separado o cluster, mais rapido o algoritmo executado. Isto esta sujeito a suposio de que os pontos centrais so de Iato perto dos centros de cluster. Embora esta suposio seja bastante Iorte, a nossa analise empirica em dados sintticos indica que o tempo de execuo do algoritmo no melhora dramaticamente com o aumento da separao de cluster. Estes resultados para ambos os conjuntos de dados sintticos e reais indicam que o algoritmo de Iiltragem signiIicativamente mais eIiciente do que os outros dois mtodos que Ioram testados. Alm disso, eles mostram que o algoritmo de escamas tem ate dimenses moderadamente altas ( de 10 a 20 ). Seu desempenho em termos de distores competitivo com o do soItware BIRCH bem conhecida e, por execuo do k-means como uma etapa pos-processamento para BIRCH, possivel melhorar signiIicativamente as distores. Uma pergunta natural se o algoritmo de Iiltragem pode ser melhorado. A Ionte mais obvia de ineIicincia do algoritmo que ele no passa nenhuma inIormao de um estagio para o proximo. Presumivelmente, nas Iases posteriores do algoritmo de Lloyas, como os centros esto convergindo para as posies Iinais, seria de se esperar que a grande maioria dos pontos de dados terem o centro mais proximo mesmo de um estagio para o proximo. Um bom algoritmo deve explorar essa coerncia para melhorar o tempo de execuo. Um mtodo cintico ao longo destas linhas Ioi proposto, mas este algoritmo bastante complexo e no oIerece muito mais rapidez no tempo de Iuncionamento na pratica. O desenvolvimento de um algoritmo simples e pratico, que combina os melhores elementos da cintica e abordagens de Iiltragem Iaria uma contribuio signiIicativa. 5. Anexos 8 9 Figura 1 Figura 2 Figura 5 Figura 3 Figura 4 10 Tabela 1 6. BIBLIOGRAFIA On Lloyd`s k-means Method 2007 Sariel Har-Peled Bardia, Sariel Har-peled, Bardia Sadri http://citeseerx.ist.psu.edu/viewdoc/summary?doi10.1.1.4.2480 K-Means Clustering Algorithms: Implementation and Comparison - 2007 The University oI Iowa, Iowa City, Iowa, USA Gregory A. Wilkin, Xiuzhen Huang http://www2.computer.org/portal/web/csdl/doi/10.1109/IMSCCS.2007.51 11 Tabela 2