a density-based algorithm for discovering clusters in large spatial databases with noise m. ester,...

23
A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise M. Ester, H-P. Kriegel, J. Sander, X. Xu Apresentação: Léia Michelle de Souza

Upload: internet

Post on 17-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise M. Ester, H-P. Kriegel, J. Sander, X. Xu Apresentação: Léia Michelle

A Density-Based Algorithm for Discovering Clusters in Large Spatial

Databases with Noise

M. Ester, H-P. Kriegel, J. Sander, X. Xu

Apresentação: Léia Michelle de Souza

Page 2: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise M. Ester, H-P. Kriegel, J. Sander, X. Xu Apresentação: Léia Michelle

Algoritmos Baseados em Densidade

Esses algoritmos assumem que os clusters são regiões de alta densidade de padrões separadas por regiões com baixa densidade, no espaço de padrões.

Um cluster é definido como um componente denso conectado em qualquer direção dada pela densidade.

Page 3: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise M. Ester, H-P. Kriegel, J. Sander, X. Xu Apresentação: Léia Michelle

Densidade – Características Principais

Descoberta de grupos de forma arbitrária; Tratamento de Ruído; Apenas uma escaneada; É necessário parâmetros de densidade como

condições. Separar regiões de objetos de alta e baixa

densidade.

Page 4: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise M. Ester, H-P. Kriegel, J. Sander, X. Xu Apresentação: Léia Michelle

DBScan – Density Based Spatial Clustering of Applications with Noise

É um algoritmo baseado em densidade para agrupar os objetos ou pontos.

Page 5: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise M. Ester, H-P. Kriegel, J. Sander, X. Xu Apresentação: Léia Michelle

1. Parâmetros

Para se iniciar um algoritmo DBScan é necessário definir dois parâmetros principais:

Raio - Distância entre um objeto (Ponto) e seus vizinhos.

MinPts - Objetos(Pontos) Central.

Page 6: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise M. Ester, H-P. Kriegel, J. Sander, X. Xu Apresentação: Léia Michelle

2. Parâmetros

Eps Valor que descreve a Medida de Proximidade, isto é,

quantos pontos vizinhos próximos, um par de pontos necessita ter em comum para serem considerados próximos.

Raio máximo da vizinhança MinPts Valor relativo a densidade mínima, ou seja, número de

vizinhos próximos que um ponto precisa ter para ser considerado “Core Point”.

Número de pontos mínimo em Eps desse ponto.

Page 7: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise M. Ester, H-P. Kriegel, J. Sander, X. Xu Apresentação: Léia Michelle

3. Parâmetros

Neps(p) : {q D | dist(p,q) < = Eps} Um ponto p é alcançável pela densidade de

um ponto q Eps, MinPts se: 1) p Neps(q) 2)Condição de Ponto Núcleo: |Neps(q)| >= MinPts

Page 8: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise M. Ester, H-P. Kriegel, J. Sander, X. Xu Apresentação: Léia Michelle

Exemplo 1

pq

p : border point

q : core point

MinPts = 5

Eps = 1cm

Page 9: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise M. Ester, H-P. Kriegel, J. Sander, X. Xu Apresentação: Léia Michelle

1. Densidades

Alcançável pela Densidade Um ponto p é alcançável pela densidade de um ponto q

Eps, MinPts se existe uma cadeia de pontos p1,...,pn,p1 = q,pn = p tal que pi+1 é diretamente alcançável pela Densidade de pi.

p1

p

q

Page 10: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise M. Ester, H-P. Kriegel, J. Sander, X. Xu Apresentação: Léia Michelle

2. Densidades

Conectado pela Densidade Um ponto p é conectado pela densidade a

um ponto q Eps, MinPts se existir um ponto O para ambos, p e q são alcançáveis pela densidade de O.

q

O

p

Page 11: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise M. Ester, H-P. Kriegel, J. Sander, X. Xu Apresentação: Léia Michelle

1. Regras para gerar Clusters

Um ponto pertence a um cluster K somente se estiver localizado no raio de um ponto central do cluster;

Um ponto central p, no raio de um outro ponto central pi qualquer, precisa pertencer ao mesmo cluster K;

Um ponto não central p, no raio de um ponto central p1...pi, onde i>0 precisa pertencer ao mesmo cluster cujo objeto central esteja entre p1...pi;

Um ponto não central p que não estiver no raio de nenhum objeto central é considerado ruído.

Page 12: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise M. Ester, H-P. Kriegel, J. Sander, X. Xu Apresentação: Léia Michelle

2. Regras para gerar Clusters

Para a geração de Clusters é necessário que se teste o raio de cada ponto da base de dados. Se o raio de um objeto (ponto) p contém mais de um ponto central (MinPts), então criaremos um novo Clusters para o objeto p.

Os objetos (pontos) no raio p são então adicionados ao novo Cluster.

Pode-se ocorrer que um objeto central que já pertença a um Cluster, seja encontrado dentro de outro Cluster.

Page 13: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise M. Ester, H-P. Kriegel, J. Sander, X. Xu Apresentação: Léia Michelle

3. Regras para gerar Clusters

Os dois Clusters serão agrupados em um só e o processo se encerra quando não existir novos pontos a serem adicionados a qualquer Cluster.

C1

C2

Page 14: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise M. Ester, H-P. Kriegel, J. Sander, X. Xu Apresentação: Léia Michelle

Algoritmo do DBScan

Recupere todos os pontos alcançáveis pela densidade de p,Eps,MinPts

P

Se p é um ponto core, forma-se um grupo

Se p é um ponto fronteira, não há pontos alcançáveis pela densidade de p, visitar o próximo ponto

Continue o processo até que todos os pontos tenham sido processados

Escolha um Ponto arbitrariamente

Page 15: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise M. Ester, H-P. Kriegel, J. Sander, X. Xu Apresentação: Léia Michelle

Distância entre dois pontos Dist(S1,S2) = min{dist(p,q) | p S1,q S2} DBScan (SetOfPoints, Eps,MinPts) //SetOfPoints is UNCLASSIFIED ClusterId : = nextId(NOISE); FOR i FROM 1 TO SetOfPoints.size DO

Point :=SetOfPoints.get(i); IF Point.ClId = UNCLASSIFIED THEN

IF ExpandCluster(SetOfPoints,Point,ClusterId,Eps,MinPts) THEN

ClusterId := nextId(ClusterId)END IF

END IF END FOR END;//DBScan

Page 16: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise M. Ester, H-P. Kriegel, J. Sander, X. Xu Apresentação: Léia Michelle

Clusters ExpandCluster(SetOfPoints,Point,ClId,Eps,Minpts):Boolean; seeds:=SetOfPoints,regionQuery(Point,Eps); IF seeds.size<MinPts THEN

SetOfPint.changeClId(Point,NOISE); RETURN false; ELSE SetOfPoints.changeClIds(seeds,ClId); Seeds.delete(Point);

While seeds <> Empty DO CurrentP:=seeds.firts(); Result:= SetOfPoints.regionQuery(currentP,Eps); IF result.size > = MinPts THEN

FOR i FROM 1 TO result.size DO resultP:=result.get(i); IF resultP.ClId IN {UNCLASSIFIED,NOISE} THEN IF resultP.ClId = UNCLASSIFIED THEN seeds.append(resultP); END IF SetOfPoints.changeClId(result,ClId); END IF END FOREND IFSeeds.delete(currentP);

END WHILE RETURN True;

END IF END;

Page 17: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise M. Ester, H-P. Kriegel, J. Sander, X. Xu Apresentação: Léia Michelle

Parâmetros

Valor de Eps Valor de MinPt Resultado

Alto Alto Poucos clusters grandes e densos

Baixo Baixo Muitos clusters pequenos e menos densos

Alto Baixo Clusters grandes e menos densos

Baixo Alto Clusters pequenos e densos

Page 18: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise M. Ester, H-P. Kriegel, J. Sander, X. Xu Apresentação: Léia Michelle

Avaliação de desempenho

Agrupamentos descobertos por CLARANS

Page 19: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise M. Ester, H-P. Kriegel, J. Sander, X. Xu Apresentação: Léia Michelle

Avaliação de desempenho

Agrupamentos descobertos por DBSCAN

Page 20: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise M. Ester, H-P. Kriegel, J. Sander, X. Xu Apresentação: Léia Michelle

Run Time em segundos

Page 21: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise M. Ester, H-P. Kriegel, J. Sander, X. Xu Apresentação: Léia Michelle

Algoritmo DBScan

Vantagem Eficiente em tratar grandes bases de dados Menos sensível a ruídos Forma clusters de formato arbitrário Usuário não precisa especificar a quantidade de clusters

Desvantagem Sensível aos parâmetros de entrada(Eps e MinPt)

Page 22: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise M. Ester, H-P. Kriegel, J. Sander, X. Xu Apresentação: Léia Michelle

Problemas do DBScan

Agrupamentos diferentes podem ter mesmo

densidades diferentes. Agrupamentos podem estar em hierarquias.

Page 23: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise M. Ester, H-P. Kriegel, J. Sander, X. Xu Apresentação: Léia Michelle

Referências Bibliográficas