dbscan算法_聚类算法之DBSCAN算法(基于密度)

英文全称:Density—Based Spatial Clustering of Application with Noise,是一种基于密度的聚类方法,和k-means不同的是,它不需要预先确定多少类别,而是基于数据推测出类的数目,并且可以发掘任意形状的聚类数据,同时可以有效过滤噪声数据。

概念:

ε邻域:半径为 ε的邻近区域;

minPts:邻近区域中的样本数,一般建议为>=特征数+1;

核心点:如果给定邻域内的样本数大于等于minPts,则那些样本都称为核心点;

边缘点:如果给定邻域内的样本数小于minPts,则那些样本都称为边缘点;

离群点:既不是核心点,也不是边缘点的样本;

直接密度可达:假设有样本集D,若p点在s的 ε邻域内,而且s为核心点,那么p点到s点称为直接密度可达;

密度可达(或者称间接密度可达):假设有样本集D,若p到p1直接密度可达,p1到p2直接密度可达,那么称p到p2密度可达的。(传递性)

密度相连:假设有样本集D,s到p是密度可达的,s到q也是密度可达的,那么称p到q是密度相连的。

流程:

(1) 自定义邻域半径ε和minPts的值,并在数据集中任意选择一个样本数据p;

(2) 计算样本p到其他样本点的距离,再根据ε和minPts,找出p密度可达的其他样本,形成一个簇;

(3) 若p是一个边缘点,则选其他未被选择的样本;

(4) 重复(2)(3) 知道所有点都被选取过;

例子:

假设有样本集合D,如下:

f5efc76bca47af4b3a5b1bfdefab2868.png

二维坐标系形象表示:

add0f23f150d2a508bc2d02412d47633.png

第1步:

(1) 我们设定ε=3,minPts=3, 选择样本集中的d1作为第一点,计算d1到其他样本点的距离,例如:distance(d1->d2)=sqrt((1-2)∧2+(2-1)∧2) = sqrt(2);

(2) 根据ε=3,将(1)中得到距离中大于等于ε的样本,分配到d1邻域内,那么可以得到d1邻域中的样本有:{d1, d2, d3, d13},又因为minPts=3,即邻域中的样本数大于3,则d1是一个核心点,因此建立簇C1;

(3) 为了找出d1所有密度可达的点,遍历d1邻域中的点,找出d2, d3, d13的邻域样本;

(4) 按照d1找邻域的点,我们可以发现d2领域中的样本有:{d1, d2, d3, d4, d13} , 而d4是可以由间接密度可达归类到d1邻域中的,那么d1的簇C1中有:{d1, d2, d3, d4, d13};

(5) d3满足核心点条件,且d3领域中的样本有:{d1, d2, d3, d4, d13},但以上的样本在C1中已存在;

(6) d4满足核心点条件,且d3领域中的样本有:{d3, d4, d13},但以上的样本在C1中已存在;

(7) d13满足核心点条件,且d13领域中的样本有:{d1, d2, d3, d4, d13},但以上的样本在C1中已存在;

(8) 最终我们得到d1的簇C1={d1, d2, d3, d4, d13}。

第2步:

(1) 由于d2,d3,d4已处理过,接下来处理d5,根据第一步中的(2) 步,得到d5是一个核心点,其邻域中样本有:{d5, d6, d7, d8},建立簇C2,再根据第一步(3)中的方法,遍历d5域中的样本,此处省略,最终可以得到簇C2={d5, d6, d7, d8};

第4步::

(1) 选取未处理的d9,由于d9满足条件的领域中只有{d9},个数小于minPts,因此不是核心点,直接结束;

第四步:

(1) 选取未处理的d10,由于d9满足条件的领域中只有{d10, d11},个数小于minPts,因此不是核心点,直接结束;

第5步:

(1) 选取未处理的d11,由于d11满足条件的领域中有{d10, d11, d12},个数等于minPts,因此d11是核心点,建立簇C3,遍历d11域中的样本,此处省略,最终可以得到簇C3={d10, d11,d12};

第6步: 所有点都已经被处理过,算法结束。

最终我们得到3个簇,即C1={d1, d2, d3, d4, d13}, C2={d5, d6, d7, d8}, C3={d10, d11,d12},因此可以认为有3个类别,d9被认为是噪声样本,忽略掉。如下图:

92b00b04448a692df442f0f1f10b92d5.png

优点:

(1) 预先无需知道簇的数量;

(2) 能够识别出噪声样本,对噪音数据不敏感;

(3) 可发现任意形状簇类;

缺点:

(1) 若样本间距差很大,即密度差异大,聚类效果较差;

(2) 在特征数特别多的情况,即维数灾难,半径ε很难选取;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值