基于密度的聚类算法:OPTICS(Ordering Points To Identify the Clustering Structure)的原理与实现过程
字数 1396 2025-11-27 01:41:48
基于密度的聚类算法:OPTICS(Ordering Points To Identify the Clustering Structure)的原理与实现过程
题目描述
OPTICS是一种基于密度的聚类算法,旨在克服DBSCAN对全局密度参数敏感的局限性。它通过分析样本的密度分布,生成一个可达距离图,从而揭示不同密度层次的聚类结构,适用于密度不均的数据集。
解题过程
1. 核心概念定义
- ε-邻域:以样本点 \(p\) 为中心、半径为 \(ε\) 的圆形区域。
- MinPts:邻域内最少样本数,用于定义核心点。
- 核心距离(Core Distance):
对于核心点 \(p\),使其成为核心点的最小半径 \(r\)(即邻域内包含至少 MinPts 个样本的最小半径)。
\[ \text{core-dist}(p) = \text{第 MinPts 近的样本到 } p \text{ 的距离} \]
- 可达距离(Reachability Distance):
点 \(p\) 关于另一个核心点 \(o\) 的可达距离,定义为:
\[ \text{reach-dist}(p, o) = \max(\text{core-dist}(o), \text{dist}(o, p)) \]
表示“通过核心点 \(o\) 到达 \(p\) 所需的最小半径”。
2. 算法流程
目标:生成一个有序点列表,并记录每个点的可达距离,通过分析可达距离的变化识别聚类。
步骤:
-
初始化:
- 所有点标记为未访问。
- 创建一个空的有序列表
OrderedList和优先队列Seeds(按可达距离排序)。
-
遍历未访问点:
- 随机选择一个未访问点 \(p\),计算其核心距离。
- 若 \(p\) 是核心点(即 \(ε\)-邻域内样本数 ≥ MinPts),将其邻域点加入
Seeds队列,并标记 \(p\) 为已访问。
-
扩展聚类:
- 从
Seeds中取出可达距离最小的点 \(q\)。 - 若 \(q\) 是核心点,将其邻域点按可达距离更新到
Seeds中(若点未访问或可达距离更小)。 - 将 \(q\) 加入
OrderedList,并记录其可达距离。
- 从
-
重复步骤 3 直到
Seeds为空,然后回到步骤 2 处理剩余未访问点。
3. 聚类提取
从生成的可达距离图中,通过以下规则提取聚类:
- 陡降点(Valley):可达距离突然变小的点,标志新聚类的开始。
- 阈值 ξ:设定一个可达距离阈值,低于 ξ 的连续区域视为同一聚类。
示例:
若有序点列表的可达距离序列为 [∞, 2, 1, 3, ∞, 1, 2, ∞],设定 ξ=2,则连续低于 2 的点 [1, 3](实际需看顺序)不属于同一聚类,而 [1, 2] 可能属于同一聚类(需结合陡降判断)。
关键点总结
- OPTICS不直接输出聚类结果,而是生成有序的可达距离序列,需通过后续分析提取聚类。
- 通过核心距离和可达距离的设计,适应不同密度的聚类结构。
- 参数 MinPts 仍需要设定,但 ε 可选择较大值(如数据集最大距离),避免影响结果。
通过以上步骤,OPTICS能够有效处理密度变化的数据,并可视化聚类层次(如通过可达距离图)。