周志华《机器学习---西瓜书》九
九、聚类
以下是按顺序整理的内容:
1、聚类(Clustering)
无监督学习中研究最多、应用最广的任务。

-
目标:将数据样本划分为若干不相交的"簇" 。
-
作用:
- 单独过程:探寻数据内在的分布结构;
- 前驱过程:辅助分类等其他学习任务。
2、 聚类的性能度量
亦称为聚类"有效性指标"
-
核心思路:簇内相似度高、簇间相似度低。
-
有效性指标分类:
- 外部指标:将聚类结果与"参考模型"比较(如Jaccard系数、FM指数、Rand指数);
- 内部指标:直接考察聚类结果(如DB指数、Dunn指数)。
3、 距离计算
常用形式
-
距离度量的基本性质:
- 非负性:dist(xi,xj)≥0\text{dist}(\boldsymbol{x}_i, \boldsymbol{x}_j) \geq 0dist(xi,xj)≥0;
- 同一性:dist(xi,xj)=0 ⟺ xi=xj\text{dist}(\boldsymbol{x}_i, \boldsymbol{x}_j) = 0 \iff \boldsymbol{x}_i = \boldsymbol{x}_jdist(xi,xj)=0⟺xi=xj;
- 对称性:dist(xi,xj)=dist(xj,xi)\text{dist}(\boldsymbol{x}_i, \boldsymbol{x}_j) = \text{dist}(\boldsymbol{x}_j, \boldsymbol{x}_i)dist(xi,xj)=dist(xj,xi);
- 直递性:dist(xi,xj)≤dist(xi,xk)+dist(xk,xj)\text{dist}(\boldsymbol{x}_i, \boldsymbol{x}_j) \leq \text{dist}(\boldsymbol{x}_i, \boldsymbol{x}_k) + \text{dist}(\boldsymbol{x}_k, \boldsymbol{x}_j)dist(xi,xj)≤dist(xi,xk)+dist(xk,xj)。
-
常用距离:
-
闵可夫斯基距离:distmk(xi,xj)=(∑u=1n∣xiu−xju∣p)1p\text{dist}{\text{mk}}(\boldsymbol{x}i, \boldsymbol{x}j) = \left( \sum{u=1}^n |x{iu} - x{ju}|^p \right)^{\frac{1}{p}}distmk(xi,xj)=(∑u=1n∣xiu−xju∣p)p1;
- p=2p=2p=2:欧氏距离;
- p=1p=1p=1:曼哈顿距离。
-
特殊属性的距离计算
-
无序属性:用VDM(Value Difference Metric):
VDMp(a,b)=∑i=1k∣mu,a,imu,a−mu,b,imu,b∣p VDM_p(a, b) = \sum_{i=1}^k \left| \frac{m_{u,a,i}}{m_{u,a}} - \frac{m_{u,b,i}}{m_{u,b}} \right|^p VDMp(a,b)=i=1∑k mu,amu,a,i−mu,bmu,b,i p
(mu,am_{u,a}mu,a是属性uuu取aaa的样本数,mu,a,im_{u,a,i}mu,a,i是簇iii中属性uuu取aaa的样本数,k为样本簇数,则属性u上两个离散值 a 与 b 之间的VDM距离为上述公式)
-
混合属性:用MinkovDM(结合闵可夫斯基距离与VDM):(可以证明满足距离公式的四个基本性质)
MinkovDMp(xi,xj)=(∑u=1nc∣xiu−xju∣p+∑u=nc+1nVDMp(xiu,xju))1p \text{MinkovDM}p(\boldsymbol{x}i, \boldsymbol{x}j) = \left( \sum{u=1}^{n_c} |x{iu} - x{ju}|^p + \sum_{u=n_c+1}^n VDM_p(x_{iu}, x_{ju}) \right)^{\frac{1}{p}} MinkovDMp(xi,xj)=(u=1∑nc∣xiu−xju∣p+u=nc+1∑nVDMp(xiu,xju))p1
4、聚类方法概述
聚类的核心认知
- 聚类的"好坏"无绝对标准,取决于用户的需求(即聚类的"标准"由任务场景决定)。
- 聚类是新算法出现最多的领域之一,总能通过新的"标准"拓展算法边界。
- 对于聚类,先确定自己的标准,再选择算法
故事一则
聚类的故事:
老师拿来苹果和梨,让小朋友分成两份。
小明把大苹果大梨放一起,小个头的放一起,老师点头,恩,体量感。
小芳把红苹果挑出来,剩下的放一起,老师点头,颜色感。
小武的结果?不明白。小武掏出眼镜:最新款,能看到水果里有几个籽,左边这堆单数,右边双数。
老师很高兴:新的聚类算法诞生了。
聚类也许是机器学习中中"新算法"出现最多、最快的领域,总能找到一个新的"标准",使以往算法对它无能为力
常见聚类方法
-
原型聚类:
- 假设:聚类结构由一组"原型"刻画;
- 过程:初始化原型→迭代更新;
- 代表:k均值聚类、LVQ、高斯混合聚类。
-
密度聚类:
- 假设:聚类由样本分布的紧密程度决定;
- 过程:基于样本密度扩展簇;
- 代表:DBSCAN、OPTICS、DENCLUE。
-
层次聚类:
- 假设:产生不同粒度的树形聚类结构;
- 过程:分层划分数据集;
- 代表:AGNES(自底向上)、DIANA(自顶向下)。
