DBSCAN聚类算法

1. DBSCAN是什么?

1.1初见美人

基于密度的噪声应用空间聚类(DBSCAN)是一种无监督的ML聚类算法。无监督的意思是它不使用预先标记的目标来聚类数据点。聚类是指试图将相似的数据点分组到人工确定的组或簇中。它可以替代KMeans和层次聚类等流行的聚类算法。与KMeans算法不同,它不需要确定聚类的数量,而是基于数据推测聚类的数目,它能够针对任意形状产生聚类。

1.2算法参数介绍

  1. 两个重要的参数:

epsilon:在一个点周围邻近区域的半径
这个值越大,聚类后的集合范围就更大,包含更多的数据点。形成的集群数目就会越小。

minPts:邻近区域内至少包含点的个数
就是上面一个参数一定半径内的最少点数。如果一定半径内,数据点小于minPts,则该范围内的数据不计入当前簇。越小的值,会产生越多的集群分类。较大的值将产生较大的集群。

例:如果“最小点”= 4,则在彼此距离内的任意4个或4个以上的点都被认为是一个簇

  1. 其他参数:

epsilon-neighborhood:简称(e-nbhd)表示半径为e且含有若干数据的集群,
密度空间=一定空间内的数据数/空间大小

例:图中中心点是(3,2),半径epsilon是0.5,(图片来自:FAIRY_ZHANG_)
在这里插入图片描述

1.3样本点的分类

  1. 核心点(core point):在半径Eps内含有超过MinPts数目的点。也就是,核心点在其近邻距离内至少有最少数量的样本点
  2. 边缘点(border point):在半径Eps内点的数量小于MinPts,但是落在核心点的邻域内的点。
  3. 离群点(Outlier):既不是核心点也不是边界点的点。这些点处于低密度地区,也叫做噪声点

图示:(图片来自deephub)
在这里插入图片描述
随机选取一个点,找到半径EPS内的数据点,与minPts比较,>则为核心点,>0&<minPts则为边界点,=0则为离群点(图片来自deephub)
在这里插入图片描述
再来一张图加深理解
在这里插入图片描述

2. 算法流程

看过上面的样本点分类,相信你聪明的脑瓜里已经有了算法的雏形。

  1. 随便找一个点作为起始点,根据NBHD(p,epsilon),判断点的类型
  2. 找到一个核心点,建立一个类,加入符合NBHD的样本点到该类中,直到该类的所有边缘点的NBHD都加入这个类中,则这个类结束
  3. 重复上述1,2。遍历所有的点
  4. 得到若干个类和离群点(噪音点)

例:(图片来自:博客园bonelee)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 算法的优缺点

3.1它哪里好?

  1. 不需要确定聚类的数量,而是根据不同的NBHD得出聚类的数量。不需要像KMeans那样预先确定集群的数量
  2. 可以产生任何形状的聚类,(kmeans聚类算法只能处理球形的簇)
  3. 异常值不敏感(噪音点)
    在这里插入图片描述

3.2 它哪里不好

  1. 难以聚类高维数据(也就是NBHD如何选取)
  2. 参数敏感

4.代码实现

码了再来补,哈哈

5. 一个算法可视化的网站

https://www.naftaliharris.com/blog/visualizing-dbscan-clustering/
码了再来补,哈哈

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值