聚类
聚类任务
- 目标:将数据样本划分为若干个通常不相交的“簇”(cluster)。即寻找数据内在的分布结构,也作为分类学习任务重提取特征判断类别的重要支撑
- 不相交的簇=硬聚类;可相交的簇=软聚类
性能度量(有效性指标valid index)
- 基本想法:簇内相似度(intra-cluster)高,簇间相似度(inter-cluster)低
- 外部指标:将聚类结果与某个"参考模型" (reference model) 进行比较
- 内部指标:直接考察聚类结果而不利用任何参考模型

外部距离
- Jaccard系数
- FM指数
- Rand指数
上述性能度量结果在[0,1]区间,值越大越好
内部距离

- DB指数(DBI)
- Dunn指数(DI)
DBI越小越好,DI越大越好
距离计算
“距离度量”需满足
- 非负性
- 同一性
- 对称性
- 三角不等式
Minkowski distance(\(L_p\)范数):
p=1时为Manhattan distance,p=2时为欧式距离
- 无序属性(不能直接在属性值上计算距离):采用VDM距离(Value Difference Metric):
令 \(m_{u,a}\) 表示在属性u上取值为a的样本数,\(m_{u,a,i}\) 表示在第i个样本簇中在属性u上取值为a的样本数,k为样本簇数,则属性u上两个离散值a,b间的VDM距离为
原型聚类(prototype-based clustering)
- 此类算法假设聚类结构能通过一组原型刻画
- 原型=簇中心,有簇中心的聚类方法
k均值聚类算法(K-means)
- 随机选k个样本点作为簇中心
- 将其他样本点根据其与簇中心的距离,划分给最近的簇
- 更新各簇的均值向量,将其作为新的簇中心
-
若所有簇中心未发生改变,则停止;否则执行 Step 2
-
随机选择的优化:k-means++
a. 随机选择第一个中心点。 b. 对于每个数据点,计算其与已选中心点的最短距离(即离已选中心点多远)。 c. 依据“距离越远,被选中的概率越大”的规则,随机选择下一个中心点。 d. 重复步骤b和c,直到选满K个中心点。
- 如何确定K:
- 绘制不同K值对应的总类内距离和(WCSS,或称Inertia) 的曲线图。WCSS会随着K增大而减小。
- 判断:寻找曲线上的“拐点”或“肘部”,即WCSS下降速度突然变缓的点,该点对应的K值通常是一个好选择。
学习向量量化
学习向量量化" (Learning Vector Quantization,简LVQ) 也是试图找到一组原型向量来刻画聚类结构,但与一般聚类算法不同的是, LVQ 假设数据样本带有类别标记,学习过程利用样本的这些监督信息辅助聚类
高斯混合聚类
- 思想:采用高斯概率分布来表达聚类原型,簇中心=均值,簇半径=方差
高斯分布函数:
假设样本由下面高斯混合分布函数生成:
- 首先根据 \(\alpha_1,\alpha_2,\dots,\alpha_k\) 定义的先验分布选择高斯混合成分,其中 \(\alpha_i\) 为选择第i个混合成分的概率
- 然后根据被选择的混合成分的概率密度函数进行采样,从而生成相应的样本
样本 \(x_j\) 由第i个高斯混合成分生成的后验概率为:
记为 \(\gamma_{ji}(i=1,2,\dots,k)\)
参数 \(\{(\alpha_i,\mu_i,\Sigma_i)|1 \leq i \leq k\}\) 估计可采用极大似然法,考虑极大化对数似然
由 \(\frac{\partial LL(D)}{\partial \mu_i}=0\),
即各混合成分的均值可通过样本加权平均来估计,样本权重是每个样本属于该成分的后验概率
同理,
即每个高斯成分的混合系数由样本属于该成分的平均后验概率确定
- E步:根据当前参数计算每个样本属于每个高斯成分的后验概率 \(\gamma_{ji}\)
- M步:更新模型参数\(\{(\alpha_i,\mu_i,\Sigma_i)|1 \leq i \leq k\}\)

思考:高斯->离散
- 核心思想总结:假设数据是由K个不同的高斯分布“混合”生成的。每个高斯分布代表一个潜在的簇,它有自己的均值(中心点)和方差(形状)。聚类的任务是找出这K个分布,并判断每个数据点最可能来自哪一个分布。
密度聚类
- 划成多个等价类,未必有簇中心
- 假设:聚类结构能通过样本分布的紧密程度确定
- 过程:从样本密度的角度来考察样本之间的可连接性,并基于可连接样本不断扩展聚类簇
DBSCAN
- 通过邻域建立样本的可达路径,形成等价类(连通分支)

层次聚类(hierarchical clustering)
- 聚类效果跟抽象的粒度有关,形成多层次聚类
- 假设:能够产生不同粒度的聚类结果·
- 过程:在不同层次对数据集进行划分,从而形成树形的聚类结构
AGNES
- 从最细的粒度开始(一个样本一个簇),逐渐合并相似的簇,直到最粗的粒度(所有样本一个簇)
过程:
- 将每个样本点作为一个簇
- 合并最近的两个簇
- 若所有样本点都存在与一个簇中,则停止;否则转到 Step2