230 likes | 318 Vues
Explore density-based algorithms for identifying high-density pattern clusters amidst low-density regions in spatial databases. Understand key features, parameters like Radius and MinPts, and the DBScan algorithm for spatial clustering with noise. Learn about reachable and connected densities, rules for generating clusters, and the DBScan algorithm steps for cluster formation. Evaluate performance with cluster discoveries using CLARANS.
E N D
A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with NoiseM. Ester, H-P. Kriegel, J. Sander, X. Xu Apresentação: Léia Michelle de Souza
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.
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.
DBScan – Density Based Spatial Clustering of Applications with Noise • É um algoritmo baseado em densidade para agrupar os objetos ou pontos.
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.
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.
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
Exemplo 1 p : border point q : core point MinPts = 5 Eps = 1cm p q
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. p p1 q
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. p q O
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.
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.
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. C2 C1
Algoritmo do DBScan P Escolha um Ponto arbitrariamente Recupere todos os pontos alcançáveis pela densidade de p,Eps,MinPts 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
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
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 FOR END IF Seeds.delete(currentP); • END WHILE • RETURN True; • END IF • END;
Avaliação de desempenho Agrupamentos descobertos por CLARANS
Avaliação de desempenho Agrupamentos descobertos por DBSCAN
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)
Problemas do DBScan • Agrupamentos diferentes podem ter mesmo densidades diferentes. • Agrupamentos podem estar em hierarquias.