Está en la página 1de 8

Curso de Data Mining

Sandra de Amo

CURE : Um Mtodo Hierrquico para Anlise de Clusters e a a


O tema central destas notas de aulas gira em torno dos Mtodos Hierrquicos para anlise e a a de clusters em um banco de dados. Descreveremos na primeira seo a idia geral dos mtodos ca e e hierrquicos em comparao com os mtodos baseados em particionamento. Nas sees seguintes, a ca e co apresentaremos o algoritmo CURE para anlise de clusters, introduzido em [GRS 1998], 1998. a Este algoritmo apresenta bons resultados com relao a muitos algoritmos de clusterizao conca ca hecidos (BIRCH [ZRL 1996] e DBSCAN [EKSX 1996]) , tanto no que diz respeito a ecincia, e ` capacidade de detectar clusters de formato no-esfrico, e quanto ` no sensibilidade a ru a a e a a dos. Os detalhes desta aula podem ser encontrados no artigo [GRS 1998]. Os mtodos de clusterizao podem ser divididos, grosso modo, em mtodos por particionae ca e mento e mtodos hierrquicos. Os mtodos por particionamento (k-means e k-medides) foram e a e o objeto de estudo da aula passada. O primeiro sofre dos seguintes problemas: embora seja eciente, muito sens e vel a ru dos e no detecta clusters de formatos arbitrrios. O segundo a a menos sens e vel a ru dos mas tambm tem problemas para detectar clusters de formatos are bitrrios. Os algoritmos PAM, CLARA e CLARANS so os principais algoritmos da classe a a k-medoides ([NH 1994]). O primeiro (PAM) bem ineciente, o ultimo (CLARANS) bem e e eciente, mas ainda tem o problema da diculdade em detectar clusters de formato arbitrrio. a Os algoritmos de clusterizao hierrquicos aglomerativos seguem a seguinte idia geral: ca a e 1. comea com um nmero de clusters igual ao tamanho do banco de dados: um cluster para c u cada objeto. 2. pares de clusters so aglutinados a cada iterao at que um nmero k (dado) de clusters a ca e u seja alcanado, ou que a distncia m c a nima entre os clusters seja menor do que um limite fornecido (avaliar este parmetro no tarefa fcil). Geralmente, utiliza-se o critrio de a a e a e parada correspondente a atingir o nmero k de clusters desejado. u 3. o critrio para se aglutinar dois clusters a distncia entre eles : so aglutinados, a cada e e a a iterao, os dois clusters que esto mais prximos. Diferentes funes so utilizadas para ca a o co a medir a distncia entre dois clusters Ci , Cj : a dmean (Ci , Cj ) =| mi mj |, onde mi o centro de gravidade do cluster Ci . Chamamos e este enfoque de enfoque baseado em centride. o dmin (Ci , Cj ) = min | p q |, para todos p Ci e q Cj . Chamamos este enfoque de MST (Minimum Spanning Tree). dave (Ci , Cj ) =
1 ni nj pCi qCj

| p q |, onde ni = tamanho do cluster Ci .

dmax (Ci , Cj ) = max | p q |, para todos p Ci e q Cj .

0.1

O algoritmo CURE

O algoritmo CURE recebe como input um banco de dados D e um nmero k que o nmero de u e u clusters que se deseja obter (assim como os mtodos de particionamento, o k deve ser fornecido e pelo usurio). CURE produz como resultado k clusters. Alm disto, outros parmetros de a e a ajuste devero ser fornecidos ao algoritmo para a sua execuo. Tais parmetros sero descritos a ca a a durante a apresentao do algoritmo. ca O algoritmo CURE um algoritmo hierrquico aglomerativo que utiliza uma pol e a tica mista para o clculo da distncia entre dois clusters, a cada iterao. Esta pol a a ca tica uma espcie e e de mistura entre a pol tica dos centrides (onde a distncia entre dois clusters a distncia o a e a entre seus centros de gravidade) e a chamada pol ticca MST (Minimum Spanning Tree) (onde a distncia entre dois clusters igual ` distncia m a e a a nima entre dois pontos, um em cada cluster). CURE vai considerar um nmero adequado de representantes de cada cluster, elementos que u esto adequadamente distribu a dos no cluster e que representam zonas bem distintas dentro do mesmo). A distncia entre dois clusters ser min (d(ci , cj ) onde todos os representantes a a do primeiro cluster ({c1 , ..., cn }) e do segundo cluster ({c1 , ..., cm }) so considerados. A gura a abaixo ilustra as duas pol ticas clssicas nos mtodos hierrquicos para clculo de distncia entre a e a a a dois clusters (para efeito de aglutinamento dos mesmos) e a pol tica adotada por CURE.
C2 C1 C2 d2 C1 d3 C2

+ C1 d1 +

dmean (C1 ,C2 ) = d1

dmin (C1 ,C2 ) = d2

dcure (C1 ,C2 ) = d3

As caracter sticas principais de CURE so: a 1. Clusters de formas arbitrrias podem ser detectados por CURE ( a exemplo dos mtodos a e baseados em densidade). Isto normalmente no acontece com os mtodos por particionaa e mento. 2. CURE robusto quanto ` presena de ru e a c dos. 3. Uma desvantagem de CURE a sua complexidade O(n2 ), onde n o tamanho do banco e e de dados de input. No artigo [GRS 1998] feita uma discusso sobre como escolher uma e a amostra dos dados de modo que o algoritmo seja executado em memria principal sobre o esta amostra e a probabilidade de se perder clusters nos dados totais pequena. e

0.2

Idia geral e

1. Como todo algoritmo hierrquico aglomerativo, CURE inicia com cada objeto do banco a de dados constituindo um cluster. Logo, temos n clusters no in cio, onde n = tamanho do banco de dados. 2

2. A m de calcular a distncia entre dois clusters, so armazenados c representantes de cada a a cluster. Este nmero c um parmetro de ajuste que deve ser fornecido como input ao u e a algoritmo. Estes c pontos so escolhidos de forma a representar regies bem distintas em a o cada cluster. Depois de escolhidos, feita uma retrao destes pontos na direo do centro e ca ca do cluster, de um fator , onde 0 1. Este nmero um dos parmetros de ajuste u e a que devem ser fornecidos como input. A distncia entre dois clusters ser a distncia a a a entre os pares de representantes mais prximos, um em cada cluster. Assim, somente os o representantes so levados em considerao para o clculo da distncia entre dois clusters. a ca a a Na gura abaixo, os pontos dentro de c rculos so os representantes antes da retrao. a ca Aps uma retrao de um fator = 1/2 na direo do centro +, os pontos obtidos so o ca ca a aqueles dentro de 2.

Estes c representantes tentam capturar o formato do cluster. A retrao em direo ao ca ca centro de gravidade do cluster tem o efeito de diminuir a inuncia dos ru e dos. A razo a para isto que os outliers estaro longe do centro do cluster. Caso um outlier seja escolhido e a como representante do cluster, aps a retrao ele se aproximar do centro bem mais do o ca a que os outros representantes que no so outliers. a a O parmetro tambm serve para capturar o formato do cluster. Valores de pequenos faa e vorecem clusters de formato menos compacto, no-convexo. Valores de grande (prximos a o de 1), aproximando os representantes do centro do cluster, favorecem a criao de clusters ca mais compactos, convexos, de forma esfrica. e 3. Aps calculada a distncia entre os clusters, aglutina-se aqueles dois primeiros que esto o a a mais prximos. Este processo de aglutinamento envolve a clculo dos novos representantes o a para o cluster aglutinado. 4. Volta para o passo anterior: calcula-se as distncias entre os novos clusters e aglutina-se a aqueles que esto mais prximos. a o 5. Este processo pra quando atinge-se o nmero k de clusters desejado (o k parmetro do a u e a algoritmo).

0.3

Descrio do algoritmo com algum detalhe ca

O algoritmo utiliza duas estruturas de dados, uma para armazenar os clusters a cada iterao ca e outra para armazenar os representantes de cada cluster, a cada iterao. Tais estruturas de ca dados no sero detalhadas nestas notas de aula. S podemos adiantar que: a a o uma estrutura do tipo heap utilizada para armazenar os clusters numa certa ordem a ser e detalhada mais adiante. uma estrutura de k d tree utilizada para armazenar os representantes de cada cluster. e Uma k d tree uma estrutura de dados que utilizada para o armazenamento e consulta e e ecientes de dados multi-dimensionais (como o nosso caso: os objetos do banco de dados e tm diversos atributos, cada um constituindo uma dimenso). e a Tais estruturas de dados particulares otimizam a busca dos clusters e seus representantes, bem como a atualizao dos novos clusters e de seus representantes a cada iterao. Detalhes ca ca das mesmas no so necessrios para o entendimento do algoritmo. O leitor interessado nestes a a a detalhes pode consultar um livro de estruturas de dados, por exemplo [CLR 1990] e a seo 3.2 ca (Data Structures) do artigo [GRS 1998]. Nestas notas de aula, vamos simplesmente imaginar que os clusters so armazenados num a arquivo Q e os representantes de cada cluster so armazenados num arquivo T . a A gura (a) abaixo ilustra como os clusters so armazenados no arquivo Q. Para cada cluster a u, seja u.mp o seu cluster mais prximo (segundo a distncia entre seus representantes). Os o a clusters so ordenados da seguinte maneira no arquivo Q: o primeiro cluster ser aquele tal que a a a distncia entre u e u.mp a menor. A gura (b) abaixo ilustra o arquivo T dos representantes a e de cada cluster de Q. Neste exemplo, d(u1 , u2 ) = 2, d(u1 , u3 ) = 5, d(u2 , u3 ) = 3. O cluster mais prximo de u1 u2 , o mais prximo de u2 u1 e o mais prximo de u3 u2 . O cluster que est o e o e o e a mais prximo de seu mais prximo u1 , depois vem u2 e por ultimo vem u3 . o o e id1 id2 id3 Arquivo Q cluster u1 d(u1 ,u1 .mp) = 2 cluster u2 d(u2 ,u2 .mp) = 2 cluster u3 d(u3 ,u3 .mp) = 3 Arquivo T id1 {p1 , p1 , p1 } 1 2 3 id2 {p2 , p2 , p3 } 1 2 3 id3 {p3 , p3 , p3 } 1 2 3

(a) O procedimento geral de criao dos clusters ca

(b)

1. Inicialmente, o arquivo Q contm n clusters, um para cada objeto do banco de dados. e Utilizando a matriz de dissimilaridade dos dados, so calculadas as distncias entre os a a objetos e os clusters so ordenados em Q segundo a ordem da menor distncia. a a O arquivo T contm n elementos, cada elemento sendo formado por um conjunto unitrio, e a correspondendo a um objeto do banco de dados.

2. Repete-se o seguinte processo at que o tamanho do arquivo Q seja maior do que um e nmero k (atingiu-se neste ponto, o nmero k de clusters desejado): u u (a) Considera-se o primeiro cluster u de Q e seu cluster mais prximo v = u.mp (na o verdade, o cluster seguinte a u). Retira-se u e v de Q. (b) Calcula-se o cluster w = merge(u, v). Veremos este procedimento com detalhes mais adiante. Este procedimento retorna o cluster aglutinado w e tambm seus e representantes w.rep. (c) Retira-se de T os representantes de u e os representantes de v. Insere-se os representantes de w em T . (d) Calcula o cluster mais prximo de w, isto , o cluster w.mp. Este um dos clusters o e e que esto em Q. Realoca-se w.mp em Q. Veja que uma vez que foram retirados de Q a os clusters u e v, poss que a ordem dos clusters restantes tenha que ser alterada. e vel O procedimento de clculo do cluster mais prximo de w ser visto com detalhes mais a o a adiante. Este procedimento, alm de calcular o cluster mais prximo de w tambm, e o e simultaneamente, recalcula os clusters mais prximos daqueles clusters de Q para os o quais os clusters mais prximos mudaro aps a insero de w e a retirada de u e v. o a o ca (e) Insere-se w em Q na posio adequada. Como calculamos no passo anterior o cluster ca mais prximo de w, e temos os clusters mais prximos para cada um dos outros o o clusters de Q, fcil saber exatamente qual a posio em que w dever ser inserido e a ca a em Q. O procedimento de clculo do cluster mais prximo ao novo cluster aglutinado w a o Lembramos que este procedimento, alm de calcular o cluster mais prximo de w tambm, e o e simultaneamente, recalcula os clusters mais prximos daqueles clusters de Q para os quais os o clusters mais prximos mudaro aps a insero de w e a retirada de u e v. o a o ca 1. Escolhe-se um cluster qualquer x de Q. Faz-se w.mp := x. 2. Para cada cluster y de Q : se d(w, y) < d(w, w.mp) ento fazemos w.mp := y a testamos se y.mp = u ou v (os que foram retirados de Q). Se for o caso : testamos tambm se d(y, y.mp) < d(y, w). e Se isto acontecer, testamos, se existe cluster z0 tal que d(y, z0 ) < d(y, w). Se houver, ento y.mp := z0 . Se no houver, y.mp := w. a a Se isto no acontecer, isto , d(y, w) d(y, y.mp) ento fazemos y.mp := w. a e a Depois disto, realoca-se y no arquivo Q, de forma adequada, uma vez que foi alterado seu cluster mais prximo. o Se no for o caso : testamos simplesmente se d(y, y.mp) > d(y, w). Neste caso, a modicamos o y.mp fazendo y.mp := w. Como houve mudana do y.mp preciso c e realocar o y em Q de forma adequada. 5

O procedimento de aglutinao de dois clusters u e v ca O procedimento merge(u, v) produz o cluster aglutinado w e seus representantes w.rep. 1. Fazemos a unio dos dois clusters u e v, isto , w := u v. a e 2. Calcula-se o centro de w: w.mean := nu u.mean + nv v.mean nu + nv

onde nu = nmero de elementos de u e nv = nmero de elementos de v. u u 3. Inicializa-se uma varivel tmpSet := . Esta varivel vai armazenar os c pontos reprea a sentantes do cluster w que sero selecionados seguindo os passos descritos abaixo. Estes a representantes que sero armazenados em tmpSet so os pontos antes da retrao. a a ca 4. Para cada i = 1, ..., c faa : (o c parmetro de ajuste do algoritmo e vai indicar o nmero c e a u de representantes que queremos detectar em w, isto , o tamanho mximo de w.rep) e a (a) Inicializa-se maxDist:= 0 (b) para cada objeto p do cluster w faa: c i. testa se i = 1 ou no: a se i = 1 : minDist := d(p, w.mean) se i > 1 : minDist := min{d(p, q): q tmpSet} ii. se minDist maxDist ento a maxDist := minDist maxP oint := p (este ser um poss representante) a vel (c) tmpSet := tmpSet {maxPoint} Segundo este procedimento, o primeiro ponto p1 escolhido como representante ser a aquele que estiver mais afastado do centro de w. O segundo ponto p2 ser aquele que a estiver mais afastado de p1 . O terceiro ponto p3 ser aquele tal que a sua distncia a a a {p1 , p2 } a maior poss e vel. Aqui, distncia de p3 a {p1 , p2 } o m a e nimo entre d(p3 , p1 ) e d(p3 , p2 ). 5. Os elementos de tmpSet so os representantes de w antes da retrao. Para obter os a ca representantes de w faz-se: w.rep :=

para cada elemento p de tmpSet faz-se: w.rep := w.rep {p + (w.mean p)} Para entender melhor como funciona o procedimento merge, consideramos o seguinte exemplo: Exemplo 0.1 Suponhamos u e v dois clusters representados na gura abaixo:
p1 + p3 Cluster u q2 Cluster v q1

p2

centro do cluster u v

Suponhamos que c = 3. O ponto + representa o centro do cluster aglutinado w = u v. tmpSet = e maxDist = 0; 1. Iterao 1 : i = 1. Vamos calcular o primeiro representante de w. Como i = 1, pegamos ca ponto por ponto em w e calculamos sua distncia at +. Em maxDist teremos a maior a e destas distncias. O ponto correspondente ser denominado maxPoint e ser inserido no a a a conjunto tmpSet. No nosso exemplo, este primeiro ponto ser q1 . a 2. Iterao 2 : i = 2. Vamos calcular o segundo representante de w. Como i = 1, vamos ca considerar cada ponto de w e calcular sua distncia a q1 . Em maxDist teremos a maior a destas distncias. O ponto correspondente ser denominado maxPoint e ser inserido no a a a conjunto tmpSet. No nosso exemplo, este segundo ponto ser p2 . a 3. Iterao 3 : i = 3. Vamos calcular o terceiro representante de w. Como i = 1, vamos ca considerar cada ponto de w e calcular sua distncia a {q1 ,p2 }. a para p1 temos que sua distncia a {q1 ,p2 } = d(p1 , p2 ). a para para para para p2 p3 q1 q2 temos que sua distncia a {q1 ,p2 } = 0 a temos que sua distncia a {q1 ,p2 } = d(p3 , p2 ). a temos que sua distncia a {q1 ,p2 } = 0. a temos que sua distncia a {q1 ,p2 } = d(q2 , q1 ). a

Em maxDist teremos a maior destas distncias que d(q2 , q1 ), que corresponde ao ponto a e q2 . Logo, este ser o terceiro ponto a ser inserido em tmpSet. a 7

Anlise comparativa de performance a

A performance de CURE foi comparada com a performance dos seguintes algoritmos: 1. BIRCH : algoritmo de clusterizao hierrquico [ZRL 1996]. Tem problemas para identica a car clusters com formato no esfrico ou que tenham grande variao de tamanho entre a e ca eles. 2. MST : mtodo hierrquico simples que utiliza a distncia entre os clusters como sendo a e a a distncia entre os pontos mais prximos entre os clusters. Este algoritmo melhor do que a o e CURE para detectar clusters de formato arbitrrio. Mas muito sens a ru a e vel dos. 3. DBSCAN : algoritmo baseado em densidade [EKSX 1996], apresentado na aula passada. Ineciente e dif de produzir bons resultados caso se escolha uma amostra pequena dos cil dados, como o caso de CURE. Tambm bem mais sens a ru e e e vel dos do que CURE. 4. CURE : pode descobrir clusters de formatos interessantes e menos sens a ru e vel dos do que MST. E poss escolher-se uma amostra adequada do banco de dados de modo que vel CURE, executado sobre esta amostra na memria principal, produza clusters corretos, isto o , a probabilidade de se perder clusters nos dados totais bem pequena. e e

References
[ZRL 1996] T. Zhang, R. Ramakrishnan, M. Livny. BIRCH: An ecient data clustering method for very large databases. In Proc. 1996 ACM-SIGMOD Int. Conf. Management of Data (SIGMOD96), 103-114, Montreal, Canada, 1996. [NH 1994] R.T.Ng, J. Han : Ecient and Eective Clustering Methods for Spatial Data Mining. Proc. of the International Conference on Very Large Data Bases, (VLDB Conference), 1994. [GRS 1998] S. Guha, R. Rastogi, K. Shim : CURE: An Ecient Clustering Algorithm for Large Databases. ACM/SIGMOD 1998. [EKSX 1996] M. Ester, H-P Kriegel, J. Sander, X. Xu : A density-based Algorithm for Discovering Clusters in Large Spatial Databases with Noise. Proceedings of the 2nd International Conference on Knowledge Discovery and Data Mining, KDD 1996. [CLR 1990] Thomas H. Cormen, Charles E. Leiserson and Ronald L. Rivest: Introduction to Algorithms. The MIT Press, Massachussetts, 1990.

También podría gustarte