一、 性能度量(如何评价聚类好坏)
聚类性能度量也称“有效性指标”,主要分为两类
- 外部指标:将聚类结果与某个“参考模型”(如人工标注的标签)进行比较
- 核心逻辑:将样本两两配对,看它们在“聚类结果”和“参考模型”中是否都被划归为同一类
- 常用指标:Jaccard系数(JC)、FM指数(FMI)、Rand指数(RI),其值都在区间,越大越好
- 内部指标:直接考察聚类结果的紧凑性与分离度,不利用参考模型
- DB指数 (DBI):越小越好。它衡量的是簇内距离与簇间中心距离的比值。比值小意味着簇内很挤(相似),簇间很远(差异大)
- Dunn指数 (DI):越大越好。它衡量的是任意两个簇之间最近样本的距离与任意簇内最远距离的比值。比值大说明簇间分得开,簇内聚得紧
二、 距离计算(相似性的量化)
距离是衡量样本相似程度的基础
1. 常用公式解析
- 闵可夫斯基距离 (Minkowski Distance):一个通用的距离框架
- 当 时:曼哈顿距离(街区距离),即各坐标轴差的绝对值之和
- 当 时:欧氏距离,即通常意义上的直线距离
- 马氏距离 (Mahalanobis Distance):
- 晦涩点解析:为什么要乘一个协方差矩阵的逆 ?
- 通俗解释:马氏距离排除了特征之间相关性的干扰,并进行了“归一化”。例如,身高(厘米)和体重(克)数值量级完全不同,马氏距离能自动消除这种单位(量纲)的影响,让距离计算更具实际意义
2. 非度量距离
有时我们需要不满足“直递性”(两边之和大于第三边)的相似度度量,这被称为非度量距离 。例如“人”与“马”不相似,但它们都与“人马”相似
三、 四大经典聚类算法
1. 原型聚类:k-means(k均值)
-
原理:假设聚类结构可以通过一组原型(中心点)刻画
-
流程:随机选k个初始中心 样本归类到最近中心 重新计算每簇的均值作为新中心 迭代直至中心不再变化
-
局限性:需要预设k值;对初始位置和异常值敏感;不适合处理非球形、密度不均或数据量极度不平衡的簇
2. 学习向量量化 (LVQ)
-
特殊性:这是一种带有监督信息的聚类
-
晦涩点解析:如果样本的真实标签与最近的原型向量标签一致,则让原型向量向该样本“靠近”;如果不一致,则“推开”。这利用了标签信息来精细化调整聚类的边界
3. 高斯混合聚类 (GMM)
- 原理:不再用一个点代表一簇,而是用一个概率模型(高斯分布)来描述一簇
- 核心逻辑:认为每个样本都是从k个高斯分布中按一定概率选出一个并生成的。算法通过迭代寻找每个高斯分布的最佳参数(均值、协方差和混合系数)
4. 密度聚类:DBSCAN
- 原理:基于样本分布的紧密程度。只要密度足够高(-邻域内样本数 MinPts),就不断向外扩张成簇
- 优势:不需要预设簇数;能发现任意形状(如环形、S型)的簇;能有效过滤噪声点
四、 层次聚类 (Hierarchical Clustering)
- 策略:通过不断合并(凝聚式,AGNES)或不断拆分(分裂式)样本来构建树状结构
- 类间距离计算:合并时如何定义两个“堆”的距离?
- 单链接:取两堆中最近点距离(容易产生细长条状簇)。
- 全链接:取两堆中最远点距离(倾向于得到紧凑的圆簇)。
- 均链接:取两堆点两两距离的平均值
- 特点:复杂度较高 (),但能恢复数据的层次结构,不要求预设聚类数量