【聚类算法】OPTICS基于密度聚类

every blog every motto: You can do more than you think.
https://blog.csdn.net/weixin_39190382?type=blog

0. 前言

对DBSCAN的补充,OPTICS聚类

1. 正文

1.0 DBSCAN的存在问题

前面我们介绍了DBSCAN,其能根据密度进行聚类。
但其存在这样一个问题:

  • 当eps较大时,会划分出A、B、C
  • 当eps较小时,会划分出C1、C2、C3 (A、B会被认为是噪声)
    无法得到A、B、C、C1、C2、C3

不同簇的密度大小可能不一样,二DBSCAN设置了一个固定了eps,会忽略掉其中的部分。

【聚类算法】OPTICS基于密度聚类_第1张图片

1.1 基础概念

核心点: 参考DBSCAN

核心距离: 使点p成为核心点的最小距离。

eg: 邻域半径为eps=2,最小样本数为min_samples=5
p点,在半径eps=2时,有8个样本点。那么p是核心点。
距离p点最近的第5个点,其核心点p的距离为0.8,那么p点的核心距离就是0.8。

注意: 计算min_samples时,包括核心点自身,所以上面只需要在邻域eps内找7个点,那么p就是核心点。


可达距离: 点p到核心点 o 的可达距离为,p 和o两点的距离和o的核心距离中的最大值。(和LOF算法中的可达距离类似,可参考)

说人话: 一个点可能在领域半径以内,也可能在领域半径以外。

eg1:

  • p点在核心点o1的核心距离之外,所以,可达距离reach-dist=d(p,o1)
  • p点在核心点02的核心距离之内,所以,可达距离reach-dist = d_5(o2)
    【聚类算法】OPTICS基于密度聚类_第2张图片

eg2:
点1、2、3在核心距离内,所以他们到核心点的可达距离=核心距离
【聚类算法】OPTICS基于密度聚类_第3张图片

1.2 算法流程

总的来说还是发展下线的套路,只有一个下线关系亲疏的区别

  1. 定义两个队列
    • 有序队列,存储核心点和密度直达点(核心点邻域内的点),按可达距离升序排列,待处理的样本
    • 结果队列,存储样本点输出,处理后的样本
  2. 选取未处理的核心点放入结果队列,计算邻域内样本的可达距离,按可达距离升序放入有序队列
  3. 从有序队列中提取第一个样本,如果为核心点计算可达距离,将可达距离最小的放入结果队列;如果不为核心点则跳过该点,选取新的核心,重复步骤2
  4. 迭代步骤2、3,直到处理了所有样本点,输出结果队列中的样本及可达距离。

1.3 结果

输出的是可达距离和样本点次序

  • 簇在图中表现为山谷,山谷越深,簇越紧密
  • 黄色的代表噪声,不形成谷

【聚类算法】OPTICS基于密度聚类_第4张图片

【聚类算法】OPTICS基于密度聚类_第5张图片

【聚类算法】OPTICS基于密度聚类_第6张图片

1.4 小结

OPTICS算法在特定参数情况下将每一个簇中的点按照可达距离排序从而输出,在计算样本点可达距离的过程中,从一个核心点开始并找出其 ϵ \epsilon ϵ中所有点,并依次计算这些点关于该核心点的核心距离,并且进行排序,如果其 ϵ \epsilon ϵ领域点中存在核心点,则找出新 ϵ \epsilon ϵ领域中所有样本点,并计算这些样本点关于新核心点的可达距离,而后进行排序。如果这些新 ϵ \epsilon ϵ领域内的某个样本点在旧 ϵ \epsilon ϵ领域中已经存在,则该样本点的可达距离定义为该样本点关于两个核心点的可达距离中较小的那个。以此类推,这样,在一个簇中,我们可以看到可达距离上升的排列。当第一个簇的某一个核心点的 ϵ \epsilon ϵ领域中不再存在核心点,则表明此时已经到达该簇的边界。下面就该选取下一个核心点,该核心点标志着另一个簇的开始,所以OPTICS输出结果的曲线中可以看到在到达最高点后又急速下降至较低点的趋势,这表明另一个密集簇的开始,和第一个簇的处理流程一样,处理完每一个簇,便可得到输出曲线。

参考

[1] https://zhuanlan.zhihu.com/p/408243818
[2] https://zhuanlan.zhihu.com/p/77052675
[3] https://blog.csdn.net/haveanybody/article/details/113782209
[4] https://zhuanlan.zhihu.com/p/395088759
[5] https://blog.csdn.net/PRINCE2327/article/details/110412944
[6] https://blog.csdn.net/markaustralia/article/details/120155061
[7] https://blog.csdn.net/m0_45411005/article/details/123251733#t1

你可能感兴趣的:(聚类算法,算法,聚类,数据挖掘)