HDBScan
简述
DBScan可以识别噪声,但是由于MinPts簇最少数目和Eps邻域半径变量是全局的, DBScan无法发现不同密度的簇。
OPTICS
核心思想是记录每个点的核心距离和可达距离,以一种可视化方式展示不同的簇. OPTICS不需要固定Eps参数,但是对参数MinPts敏感,可达距离有局限性(一点到另一点,不对称)
- 核心距离:到第MinPts的距离 (临域点 >= MinPts),无穷大(临域点 < MinPts)
- 点B相对于点A可达距离:Max(ab欧式距离,a核心距离)
然后画图查看簇的密度与个数 (波谷越低密度越高,波谷越高密度越低)

HDBScan
HDBScan结合了密度类和层次类的思想,其核心在于一个密度分层树,来表征数据的聚类结构。
- HDBSCan考虑相对密度,而非绝对密度Eps
- 通过计算互达距离来定义点之间的连接关系
- HDBscan 通过对密度的降低进行跟踪,生成一个密度分层树
- 叶子结点代表高密度的簇,根节点代表整个数据集
- 通过定义稳定性指标来评估每个簇的持久性,并自动选择最稳定的簇作为最终聚类结果
核心距离&互达距离
针对点x参数为k的核心距离 (当前点到第k近点的距离):
![]()
互达距离。(放大了稀疏区域, 高密度区域不受影响)


建立最小生成树
基于所有数据点间的互达距离生成最小生成树。Prime算法
构建层次聚类树
- 将MST中每条边按照权重进行排序
- 构建层次结构,1)该边连接的两个点属于不同的簇则合并到一个新簇 2)该边连接的两个点在在同一个簇内,则不进行合并

上图是简单的画了一条直线,将树分为了不同的簇。这种画法存在一些问题,比如将噪声画进了簇内等
压缩层次聚类树
- 自顶向下,顶点时一个大的簇
- 对于当前簇,如果其包含的数据点数量小于min_cluster_size, 则认为是噪声点不考虑
- 1)如果所有子簇都 < min_cluster_size, 则认为当前簇是稳定的保留下来, 2)如果存在一个子簇大小 >= min_cluster_size,则递归 2,3
- 重复步骤2,3,直到没有可拆分的簇为止
- 最终,层次树被拆为多个不相交的子树,每个子树的根节点都 < min_cluster_size。
簇的稳定性
- r = 1 / distance.
- r_birth, 当前簇作为独立簇,最大的r 值
- r_death, 当前簇不再作为一个,开始分裂为更小子簇的 r 值
- r_p, 簇中数据点p脱离簇时的 r值,r_death <= r_p <= r_birth
- s = sum(r_p - r_birth)
- 计算该点稳定性总和
- 计算直接子簇稳定性总和
- 子簇 > 该簇稳定性总和,保留子簇,放弃本簇,
- 该簇 >= 子簇稳定性总和,则保留父放弃子
- 遍历完之后,稳定簇为选定簇
参数:
- min_cluster_size: 形成一个簇所需要的最小样本数
- min_samples:一个点周围有多少邻居才认为是密集的
- 等。。。
参考:
https://www.biaodianfu.com/hdbscan.html
谢谢!

浙公网安备 33010602011771号