dbscan算法

来源:互联网 发布:数据库远程连接错误26 编辑:程序博客网 时间:2024/05/22 02:19

dbscan算法是一种基于密度的聚类算法。

该算法的目的在于过滤低密度区域,发现稠密度样本点,跟传统的基于层次聚类和划分聚类的凸形聚类簇不同,该算法可以发现任意形状的聚类簇,与传统的算法相比它有如下优点:

      与K-means比较起来,你不必输入你要划分的聚类个数;

      聚类簇的形状没有bias;

      可以在需要时输入过滤噪声的参数;

DBSCAN中的的几个定义:

Ε领域:给定对象半径为Ε内的区域称为该对象的Ε领域

核心对象:如果给定对象Ε领域内的样本点数大于等于MinPts,则称该对象为核心对象

直接密度可达:对于样本集合D,如果样本点qpΕ领域内,并且p为核心对象,那么对象q从对象p直接密度可达

密度可达:对于样本集合D,给定一串样本点p1,p2….pnp= p1,q= pn,假如对象pipi-1直接密度可达,那么对象q从对象p密度可达

密度相连:对于样本集合D中的任意一点O,如果存在对象p到对象o密度可达,并且对象q到对象o密度可达,那么对象q到对象p密度相连

可以发现,密度可达是直接密度可达的传递闭包,并且这种关系是非对称的。密度相连是对称关系。DBSCAN目的是找到密度相连对象的最大集合。

Eg:假设半径Ε=3MinPts=3,点pE领域中有点{m,p,p1,p2,o},mE领域中有点{m,q,p,m1,m2},qE领域中有点{q,m},oE领域中有点{o,p,s},sE领域中有点{o,s,s1}.

那么核心对象有p,m,o,s(q不是核心对象,因为它对应的E领域中点数量等于2,小于MinPts=3)

m从点p直接密度可达,因为mpE领域内,并且p为核心对象;

qp密度可达,因为点q从点m接密度可达,并且点m从点p直接密度可达;

q到点s密度相连,因为点q从点p密度可达,并且s从点p密度可达。


算法描述

算法:DBSCAN

输入:E 半径

      MinPts 给定点在E领域内成为核心对象的最小领域点数

      D 集合

输出:目标类簇集合

方法:repeat

1)      判断输入点是否为核心对象

2)      找出核心对象的E领域中的所有直接密度可达点

      util所有输入点都判断完毕

      repeat

        针对所有核心对象的E领域所有直接密度可达点找到最大密度相连对象集合,

        中间涉及到一些密度可达对象的合并。

      Util所有核心对象的E领域都遍历完毕



原创粉丝点击