• Nenhum resultado encontrado

Os algoritmos baseados em grelha quantificam o espaço de objectos de dados num número finito de células que formam uma estrutura em grelha com múltiplas dimensões. A ideia é separar os valores possíveis de cada atributo num número de intervalos contíguos, criando um conjunto de células em grelha com múltiplas dimensões. Cada objecto situa-se numa célula cujo intervalo de valores para cada atributo contém os valores do objecto. Existem muitas formas de dividir os valores possíveis de cada atributo em intervalos contíguos. Para atributos contínuos, uma abordagem comum consiste em dividir os valores em intervalos de igual tamanho. Se esta abordagem for aplicada para cada atributo, todas as células em grelha têm o mesmo volume e a densidade de uma célula é definida como o número de objectos que ela contém divido pelo volume da célula. No entanto, existem outras abordagens mais sofisticadas, como a discretização dos valores dos atributos, que podem incluir a separação dos valores dos atributos em intervalos com o mesmo número de objectos ou eventualmente a realização de uma operação de agrupamento dos valores do atributo. A definição da grelha tem um enorme impacto nos resultados de agrupamento.

Todas as operações de agrupamento são realizadas na estrutura em grelha existindo diferentes formas para a realização do agrupamento apesar de a maior parte das abordagens serem baseadas em densidade. O agrupamento é realizado pela junção de grupos de células densas adjacentes. Células com uma densidade baixa que estejam no limite de um grupo e que sejam adjacentes a outras células de densidade mais elevada não devem ser desprezadas. Em casos particulares de alguns conjuntos de dados com atributos espaciais e não espaciais é possível fazer inicialmente um filtro das células a partir de propriedades estatísticas de um ou mais atributos não espaciais e de seguida formar os grupos a partir da densidade dos restantes objectos de dados.

A principal vantagem dos algoritmos de agrupamento baseados em grelha é o seu rápido tempo de processamento, que é tipicamente independente donúmero de objectos e dependente apenas do número de células em cada dimensão no espaço quantificado. Uma simples passagem nos dados permite identificar a célula de cada objecto bem como a densidade de cada célula. Mesmo quando o número de células potenciais da grelha é grande, só é necessário criar células para células não vazias. Assim, a complexidade temporal da definição da grelha, da atribuição de cada objecto a uma célula e do cálculo da densidade de cada célula é de O(n), podendo ser de O(n log n) se for

usada uma árvore de pesquisa. Por outro lado, a estrutura em grelha facilita a actualização incremental. De referir, que nos algoritmos baseados em grelha não existe necessidade de introduzir o número de grupos do conjunto de dados, já que, esse número é obtido automaticamente.

Tanto a qualidade do agrupamento como o custo de processamento aumentam com o número de células na estrutura em grelha. De referir também, que o número total de células aumenta exponencialmente com o aumento do número de dimensões dos dados, verificando-se assim um

acentuado aumento do custo de processamento para conjuntos de dados de elevada dimensionalidade.

O agrupamento baseado em grelha, à semelhança das abordagens baseadas em densidade, é muito dependente da escolha do limite de densidade. Se o limite de densidade for muito elevado, alguns grupos podem-se perder e por outro lado se for muito baixo, dois grupos que deviam estar separados podem ser fundidos. Além disso, podem existir grupos e ruído de diferentes densidades, podendo não ser possível encontrar um único limite de densidade que funcione bem para todas as partes do espaço de dados.

Outra limitação reside no facto de que células com uma densidade baixa que estão no limite de um grupo e que são adjacentes a outras células de densidade mais elevada são por vezes desprezadas. Poder-se-á pensar em ultrapassar esta dificuldade escolhendo um tamanho reduzido para a aresta das células em grelha mas o número de objectos nas células associadas com cada grupo provavelmente sofreria uma maior flutuação já que os objectos nos grupos não são uniformemente distribuídos. Para além disso, algumas células no interior de um grupo, podem até aparecer vazias. Por outro lado, dependendo do posicionamento e do tamanho das células, um grupo de objectos pode aparecer numa só célula ou dividido em várias células. O mesmo grupo de objectos pode fazer parte de um grupo no primeiro caso mas ser desprezado no segundo caso. Embora não seja necessário considerar células vazias, pode acontecer facilmente que a maior parte das células contenham um só objecto. Por este facto, os algoritmos baseados em grelha tendem a ter um desempenho fraco com dados de elevada dimensionalidade. Os algoritmos baseados em grelha normalmente são mais eficientes em termos de complexidade temporal que os algoritmos baseados em densidade puros mas podem ter o custo de perda de qualidade se a estrutura em grelha não se ajustar à distribuição dos dados.

3.5.1 – STING (STatistical INformation Grid)

O STING (STatistical INformation Grid) [Wang et al., 1997] é um algoritmo de agrupamento

baseado em grelha em que o espaço do conjunto de dados é dividido em células multidimensionais. Este algoritmo consegue descobrir alguns grupos com formas complexas em conjuntos de dados espaciais com ruído e valores isolados. O agrupamento faz-se em três passos: construção de uma grelha, obtenção de regiões densas e atribuição dos objectos aos grupos:

• construção da grelha: todos os objectos do conjunto de dados são representados espacialmente numa grelha, que representa o espaço dos dados em d dimensões. Cada atributo inerente aos objectos do conjunto de dados é representado por uma dimensão. A grelha está dividida em várias células em que cada uma figura uma porção do espaço. Uma célula pode ser vista como um hiper-cubo com p dimensões e contém informação relativa

à distribuição dos objectos do conjunto de dados na região espacial que abarca. A construção da grelha consiste em dividir o espaço relativo ao conjunto de dados em hiper-cubos com um determinado tamanho de aresta l, um parâmetro definido pelo utilizador, cujo valor influencia a granularidade do agrupamento de dados. Após a construção da estrutura em grelha, cada objecto do conjunto de dados é atribuído à célula que representa a região espacial a que pertence. O resultado do agrupamento não é dependente da ordem pela qual os objectos são colocados na estrutura em grelha. No final, cada célula (caso lhe tenha sido atribuído pelo menos um objecto) terá informação relativa à sua posição no espaço (coordenadas), o número de objectos que possui e a descrição dos objectos que engloba;

• obtenção de regiões densas: as células podem ser classificadas como relevantes ou não relevantes. Uma célula é relevante caso a densidade da região (número de objectos) que representa seja igual ou superior a c, a densidade mínima de uma região a ser considerada

como um grupo. O valor de c é calculado a partir de dois parâmetros definidos pelo

utilizador, Eps e MinPts, 2 1 Eps MinPts c

π

+

do algoritmo DBSCAN. Para encontrar as regiões que satisfazem a densidade mínima c,

são realizadas várias pesquisas. Em cada pesquisa, uma célula relevante não inspeccionada é escolhida aleatoriamente, é marcada como inspeccionada e é adicionada a uma fila vazia

R. De seguida, são procuradas as células relevantes não inspeccionadas, vizinhas da célula

escolhida, isto é, as células que se encontram a uma distância inferior a d=max

(

l,Eps

)

da célula escolhida. Se a densidade da região correspondente à vizinhança da célula escolhida for superior a c, as células da vizinhança são adicionadas à fila R e a uma outra fila Q

vazia. Enquanto a fila Q não estiver vazia, é retirada uma célula o de Q, sendo esta

marcada como inspeccionada. De seguida, são procuradas as células relevantes não inspeccionadas vizinhas de o e caso a densidade da região formada por essas células seja

superior a c, as células são adicionadas às filas R e Q. Quando a fila Q estiver vazia, foi

encontrada uma região densa (grupo) constituída pelas células da fila R. Esta pesquisa é

realizada até que todas as células relevantes tenham sido inspeccionadas. No final, espera- se que várias regiões densas tenham sido encontradas, isto é, que os grupos do conjunto de dados tenham sido formados;

• atribuição de objectos aos grupos: esta fase resume-se à classificação dos objectos em grupos correspondentes às regiões encontradas anteriormente. Caso um objecto não se encontre em nenhuma das regiões densas será considerado como um valor isolado.

Na tabela 3.11 encontra-se uma descrição do algoritmo STING.

Tabela 3.11 – Algoritmo STING

Dados de entrada

o X – Conjunto de dados com n objectos

o l – Tamanho da aresta de uma célula

o Eps– Raio da vizinhança

o MinPts– Número mínimo de objectos

Dados de saída

o P – Agrupamento de dados final

Inicializações o 2 1 Eps MinPts c

π

+ = ;

d

=max(l,Eps)

; i=1 • Algoritmo

1. Construir grelha a partir do conjunto de dados X e l

2. Identificar células relevantes

3. Enquanto houver células relevantes não inspeccionadas

a. Criar uma fila R com uma célula relevante (não inspeccionada)

escolhida aleatoriamente. Marcar a célula como inspeccionada b. Criar uma fila vazia Q

c. Encontrar as células vizinhas não inspeccionadas da célula escolhida (células que se encontram a uma distância inferior a d da célula escolhida)

d. Se a densidade da vizinhança for superior a

c

, adicionar às filas R e Q

as células vizinhas da escolhida e. Enquanto a fila Q não estiver vazia

i. Retirar uma célula o da fila Q e marcá-la como inspeccionada

ii. Encontrar células não inspeccionadas vizinhas de

o

iii. Se a densidade da vizinhança de

o

for superior a

c

, adicionar as células vizinhas de o às filas R e Q

FimEnquanto

f. Atribuir os objectos que pertencem as células contidas na fila R ao

grupo i. Incrementar i (i=i+1)

A principal vantagem do algoritmo STING é a eficiência do algoritmo, já que consulta uma vez o conjunto de dados para calcular a informação estatística das células e por isso a complexidade temporal é de O(n), em que n é o número total de objectos, podendo eventualmente ser O(n log n)

usando uma árvore de pesquisa.

Os grupos são formados fundindo células que estão próximas e em que a densidade média da área é superior a um determinado limite. Este procedimento é similar ao DBSCAN mas usa células em vez de objectos. À medida que a granularidade da grelha se aproxima de zero, os grupos obtidos pelo STING aproximam-se dos grupos obtidos pelo DBSCAN. Dado que o STING usa métodos baseados em densidade para formar os grupos, a sua capacidade para tratar ruído é semelhante ao DBSCAN. A qualidade do agrupamento depende da granularidade da estrutura em grelha. Se a granularidade for muito fina, o custo de processamento aumenta substancialmente; por outro lado, se a granularidade for demasiado larga, poderá reduzir a qualidade do agrupamento. Apesar de ser capaz de tratar grandes quantidades de dados eficientemente e não ser sensível ao ruído, não consegue tratar dados com elevada dimensionalidade sem uma séria degradação do seu desempenho.

3.5.2 – CLIQUE (CLustering In QUEst)

O algoritmo de agrupamento CLIQUE (CLustering In QUEst) [Agrawal et al., 1998] integra o

agrupamento baseado em densidade e em grelha. Este algoritmo pode ser usado em grandes conjuntos de dados, com elevada dimensionalidade e é capaz de detectar grupos com formas arbitrárias.

Partindo do facto de que num grande conjunto de dados com múltiplas dimensões, o espaço de dados geralmente não é uniformemente ocupado pelos objectos de dados, o CLIQUE pretende identificar as áreas densas e esparsas em subespaços de dados do espaço original multidimensional. Além disso, existem casos em que diferentes grupos existem em diferentes conjuntos de dimensões (atributos). Uma unidade (célula) é densa se a fracção do total de objectos de dados nela contida excede o limiar de densidade τ (parâmetro definido pelo utilizador). No CLIQUE, um grupo é definido como uma região que tem uma densidade maior de objectos do que as suas regiões vizinhas, isto é, um conjunto máximo de unidades densas ligadas.

O CLIQUE pretende descobrir correlações interessantes entre os dados em vários subespaços do espaço original, isto é, identifica automaticamente subespaços que permitam um melhor agrupamento dos objectos do que no espaço original. Restringir a busca somente a subespaços do espaço original, em vez de usar novas dimensões (por exemplo combinações lineares das dimensões originais), é importante porque esta restrição permite uma apresentação mais simples e compreensível dos resultados. Cada uma das dimensões originais tem tipicamente um significado real para o utilizador, enquanto até mesmo uma combinação linear simples de muitas dimensões pode ser difícil de interpretar.

É impraticável testar todos os subespaços de dados na procura de grupos, já que, o número de subespaços aumenta exponencialmente com o aumento do número de dimensões. Em vez de testar todos os subespaços, o CLIQUE baseia-se na seguinte propriedade: se um conjunto de objectos de dados forma um grupo baseado em densidade em v dimensões, o mesmo conjunto de objectos é

também parte de um grupo baseado em densidade em todos os subconjuntos possíveis dessas dimensões. Considerando-se que um conjunto de células com v dimensões forma um grupo, um

conjunto de células correspondentes em v−1 dimensões pode ser obtido, omitindo uma das v

dimensões. Estas células com menos uma dimensão continuam a ser adjacentes e cada uma delas contém todos os objectos da célula correspondente com mais uma dimensão. Poderão eventualmente conter objectos de dados adicionais. Assim, uma célula com menos uma dimensão tem uma densidade igual ou superior à célula correspondente com mais uma dimensão. As células com menos dimensões continuam a formar um grupo com um número de dimensões menor.

O intuito do CLIQUE consiste na identificação de projecções do conjunto de dados para um subconjunto de atributos que contenha regiões de grande densidade. Considere-se

{

1, 2,..., p

}

A= A A A o conjunto de atributos de um conjunto de dados X =

{

x x1, 2,...,xn

}

,

(

)

´

1,...,

i i ip

x = x x e S= ×A1 A2× ×... Ap um espaço dimensional numérico com p dimensões. Divida-se S em unidades rectangulares não sobrepostas. Estas unidades são obtidas dividindo cada

dimensão em ε (parâmetro definido pelo utilizador) intervalos com o mesmo tamanho. Cada unidade u é a intersecção de um intervalo de cada atributo (aberto à direita) e tem a forma j

(

uj,1,uj,2,...,uj p,

)

em que uj v, =lj v, ,hj v,

)

.

Um objecto ´

(

)

1,...,

i i ip

x = x x está contido numa unidade u , se j lj v, <xiv<hj v, para totalidade de u . A selectividade de uma unidade é a fracção de objectos que essa unidade contém. Uma j unidade é densa se a sua selectividade for superior a τ, um parâmetro determinado pelo utilizador. Um grupo é um conjunto de todas as unidades densas que estão ligadas entre si em v dimensões.

Duas unidades com v dimensões

u

1 e

u

2 estão ligadas se possuírem alguma face comum ou se existir outra unidade

u

3 tal que

u

1 esteja ligada a

u

3 e

u

2 esteja igualmente ligada a

u

3. As

unidades uj =

(

uj,1,uj,2,...,uj v,

)

e ut =

(

ut,1,ut,2,...,ut v,

)

possuem uma face comum se existirem 1

v− dimensões (A1,...,Av−1), tal que uj m, =ut m, e que uma das seguintes igualdades seja

verdadeira: hjv=ltv ou htv=ljv.

O algoritmo CLIQUE resume-se em três fases apresentadas da tabela 3.12:

Tabela 3.12 – Fases do algoritmo CLIQUE

Dados de entrada

o X – Conjunto de dados com n objectos

o ε – Número de intervalos em que cada dimensão é dividida

o τ – Densidade mínima

Dados de saída

o P – Agrupamento de dados final e descrição mínima para cada grupo

Algoritmo

1. Construir a grelha a partir do conjunto de dados X e ε

2. Identificar os subespaços que contém unidades densas usando τ 3. Identificar os grupos de objectos existentes

4. Definir P como o agrupamento com os grupos obtidos no passo anterior

5. Gerar uma descrição mínima para cada grupo

Para encontrar unidades densas, os autores propuseram um algoritmo bottom-up que funciona

nível a nível. Inicialmente, obtêm-se as unidades densas em cada um dos espaços unidimensionais correspondentes a cada atributo. Após a obtenção das unidades densas com v−1 dimensões, as unidades candidatas com v dimensões são determinadas através do procedimento de geração de

candidatos apresentado na tabela 3.13.

Para encontrar os grupos nas regiões densas é aplicado um algoritmo de pesquisa em profundidade ao conjunto de unidades densas D com o objectivo de agrupar unidades densas ligadas (que tenham uma face comum). O objectivo é dividir D em subconjuntos

{

D1,...,Dq

}

em que as unidades de Di estão ligadas e não existem unidades de Di que tenham ligações com unidades de Dj, com ij e ii j, ≤q.

Tabela 3.13 – Procedimento de geração de candidatos com p dimensões

Dados de entrada

o Xv1– Conjunto de todas as unidades densas com v−1 dimensões

Dados de saída

o Cv– Conjunto de unidades candidatas com

v

-dimensões

Algoritmo inserir em Cv seleccionar u1,1,u1,2,...,u1,v1,u2,v1 a partir Xv1 u1,Xv1 u2 em que u a1. 1=u a2. 1, l1,1=l2,1, h1,1=h2,1, 1. 2 2. 2 u a =u a , l1,2 =l2,2, h1,2 =h2,2, ,…, 1. v 2 2. v 2 u a =u a , l1,v2 =l2,v2, h1,v2 =h2,v2, 1. v1 2. v 1 u a <u a

Nota: A relação < representa a ordem lexicográfica nos atributos, u aj. v

representa a dimensão

v

da unidade densa uj

Inicialmente, é escolhida uma unidade densa pertencente a D, atribuindo-a ao primeiro grupo. Seguidamente procuram-se todas as unidades ligadas à primeira unidade, sendo estas agrupadas no mesmo grupo. Caso existam unidades em D que ainda não tenham sido visitadas, repete-se o procedimento para formar um novo grupo. Este algoritmo é apresentado na tabela 3.14.

Após se ter descoberto os grupos do conjunto de dados, é então gerada uma descrição concisa de cada um deles. O passo para gerar a descrição mínima dos grupos tem como entrada os subconjuntos de unidades densas ligadas em p dimensões. Pretende-se para cada grupo, cobrir

todas as unidades que lhe foram atribuídas com o mínimo número de regiões tal que cada região contenha apenas unidades ligadas. De seguida, pretende-se determinar a cobertura mínima para cada grupo. Cada grupo é sumariado, usando um pequeno conjunto de desigualdades que descrevem os valores que os atributos das células podem tomar nesse grupo.

O algoritmo CLIQUE tem complexidade computacional linear no número de objectos e quadrática no número de dimensões. O CLIQUE encontra automaticamente subespaços com o maior número de dimensões possível desde que existam grupos nesses subespaços. É insensível à ordem dos objectos de dados, não presume qualquer distribuição nos dados e tem um sucesso razoável no tratamento de ruído, contudo, se o parâmetro de densidade τ for demasiado baixo, permite que algumas unidades com objectos com ruído sejam consideradas densas e sejam incluídas nos grupos. Escala linearmente com o número de objectos de dados e tem boa escalabilidade quando o número de dimensões nos dados é elevado. Contudo, a precisão dos resultados de agrupamento podem ser degradados à custa da simplicidade do algoritmo. Muitas das limitações deste algoritmo são as já referidas dos algoritmos baseados em grelha. Outra limitação reside no facto de que o CLIQUE poderá eventualmente ter uma complexidade temporal exponencial, se forem geradas muitas células densas em valores baixos de v . Aumentar o valor do

parâmetro τ poderá aliviar este problema. Outra questão prende-se com o facto de que o valor do parâmetro τ responsável por formar grupos baseados em densidade permanece constante, mesmo com o aumento do número de dimensões. Isso, poderá ser um potencial problema, já que a densidade baixa à medida que a dimensionalidade aumenta e para formar grupos quando v é

elevado, o parâmetro tem que ser colocado a um valor mais baixo que poderá levar à junção de grupos quando v é pequeno.

Tabela 3.14– Pesquisa em profundidade por grupos no conjunto de unidades densas ligadas

Dados de entrada

o u – Unidade inicial j uj =

(

uj,1,uj,2,...,uj v,

)

em que uj v, =lj v, ,hj v,

)

o Cl- Etiqueta do grupo • Algoritmo : _ ( j, l) pesquisa profundidade u C o u numj. =Cl o i=1 o Enquanto i<v

1. Examinar o vizinho da esquerda de uj ( e j u ) na dimensão ai: a. uej =

(

uj,1,uj,2,...,uej i,,...,uj v,

)

b. Se u ej é densa e

.

e j

u num

não estiver definido

então

pesquisa_

profundidade u C(

ej

,

l

)

2. Examinar o vizinho da direita de uj (u ) na dimensão dj ai: a. udj =

(

uj,1,uj,2,...,udj i,,...,uj v,

)

b. Se u dj é densa e

.

d j

u num

não estiver definido

então

pesquisa_

profundidade u C(

dj

,

l

)

3. i= +i 1 FimEnquanto

3.6 Algoritmos de Agrupamento baseados