第十四章聚类方法.14.2聚合聚类 距离公式介绍


本课程来自深度之眼,部分截图来自课程视频以及李航老师的《统计学习方法》第二版。
公式输入请参考: 在线Latex公式

主要内容

聚合聚类的具体过程:距离或相似度、合并规则、停止条件
聚合聚类算法与案例:算法流程、基于欧式距离的层次聚类过程
系统聚类法基本思想:类间距离、对称表、递推公式
最短距离法与最长距离法:定义距离与递推公式
中间距离法:几何意义与递推公式
类平均法与可变类平均法:定义距离与递推公式
离差平方和法与可变法:定义距离与递推公式
重心法:定义距离与递推公式

聚合聚类的具体过程

对于给定的样本集合,开始将每个样本分到⼀个类;然后按照⼀定规则,例如类间距离最⼩,将最满⾜规则条件的两个类进⾏合并;如此反复进⾏,每次减少⼀个类,直到满⾜停⽌条件,如所有样本聚为⼀类。
聚合聚类需要预先确定下⾯三个要素
• 距离或相似度
闵可夫斯基距离
⻢哈拉诺⽐斯距离
相关系数
夹⻆余弦
• 合并规则阈值
类间距离最⼩
类间距离可以是最短距离、最⻓距离、中⼼距离、平均距离
• 停⽌条件
停⽌条件可以是类的个数达到阈值(极端情况类的个数是1)
类的直径超过阈值

聚合聚类算法与案例

输入:n个样本组成的样本集合及样本之间的距离;
输出:对样本集合的一个层次化聚类。
(1)计算 n n n个样本两两之间的欧氏距离 { d i } \{d_i\} {di},记作矩阵 D = [ d i j ] n × n D=[d_{ij}]_{n\times n} D=[dij]n×n
(2)构造 n n n个类,每个类只包含一个样本。
(3)合并类间距离最小的两个类,其中最短距离为类间距离,构建一个新类。
(4)计算新类与当前各类的距离。若类的个数为1,终止计算,否则回到步(3)。
可以看出聚合层次聚类算法的复杂度是 O ( n 3 m ) O(n^3m) O(n3m),其中 m m m是样本的维数, n n n是样本个数。
这里稍微推一下时间复杂度,第一次计算 n n n个样本两两之间的欧氏距离这里会产生 C n 2 C_n^2 Cn2个距离;
然后合并两个样本后,得到一个新类,剩下的 n − 2 n-2 n2个样本和新类的所有样本要计算一次距离,此时计算量为: ( n − 2 ) × 2 (n-2)\times2 (n2)×2
然后这个时候总类别数为 n − 2 + 1 n-2+1 n2+1,然后再合并两个类得到3个样本,然后和其他每个样本进行计算,计算量为: ( n − 3 ) × 3 (n-3)\times3 (n3)×3
以此类推,所有所有类合并后:
C n 2 + ( n − 2 ) × 2 + ( n − 3 ) × 3 + ⋯ + 1 × ( n − 1 ) C_n^2+(n-2)\times2+(n-3)\times3+\cdots+1\times(n-1) Cn2+(n2)×2+(n3)×3++1×(n1)
由于每个样本是m维的,因此每个维度上都要经过上面的计算,因此总计算量为:
m [ C n 2 + ( n − 2 ) × 2 + ( n − 3 ) × 3 + ⋯ + 1 × ( n − 1 ) ] ≈ O ( n 3 m ) m[C_n^2+(n-2)\times2+(n-3)\times3+\cdots+1\times(n-1)]\approx O(n^3m) m[Cn2+(n2)×2+(n3)×3++1×(n1)]O(n3m)

例子:
给定5个样本的集合,样本之间的欧氏距离由如下矩阵D表示
D = [ d i j ] 5 × 5 = [ 0 7 2 9 3 7 0 5 4 6 2 5 0 8 1 9 4 8 0 5 3 6 1 5 0 ] D=[d_{ij}]_{5\times5}=\begin{bmatrix} 0 & 7& 2 & 9&3 \\ 7 & 0& 5 & 4&6 \\ 2 & 5& 0& 8 & 1\\ 9 & 4& 8 & 0 &5 \\ 3 & 6& 1& 5 & 0 \end{bmatrix} D=[dij]5×5=0729370546250819480536150
其中 d i j d_{ij} dij表示第 i i i个样本与第 j j j个样本之间的欧⽒距离。
• 显然 D D D为对称矩阵。应⽤聚合层次聚类法对这5个样本进⾏聚类。
1.最短类间距出现在第三行第五列,把这两个样本加入新类,记做:
G 6 = { x 3 , x 5 } G_6=\{x_3,x_5\} G6={x3,x5}
2.锁定第三列和第五列,从第一行到最后一行逐行找出最小距离:
d 1 G 6 = 2 d 2 G 6 = 5 d 4 G 6 = 5 d_{1G_6}=2\\ d_{2G_6}=5\\ d_{4G_6}=5 d1G6=2d2G6=5d4G6=5
我们可以看到出现最小距离在第一行,因此把第一个样本加进来,记为:
G 7 = { x 1 , x 3 , x 5 } G_7=\{x_1,x_3,x_5\} G7={x1,x3,x5}
3.观察 G 7 G_7 G7和剩下样本的距离:
d 2 G 7 = 5 d 4 G 7 = 5 d_{2G_7}=5\\ d_{4G_7}=5 d2G7=5d4G7=5
然后剩下样本之间也有距离:
d 24 = 4 d_{24}=4 d24=4
3.判断距离后合并剩下两个样本:
G 8 = { x 2 , x 4 } G_8=\{x_2,x_4\} G8={x2,x4}
4.合并得到最后结果:
G 9 = { G 7 , G 8 } G_9=\{G_7,G_8\} G9={G7,G8}
即将全部样本聚成1类,聚类终⽌
在这里插入图片描述

系统聚类法基本思想

1、根据样品的特征,规定样品之间的距离 d i j d_{ij} dij ,共有 C n 2 C_n^2 Cn2个。将所有列表,记为 D ( 0 ) D(0) D(0)表,该表是⼀张对称表。所有的样本点各⾃为⼀类
2、选择 D ( 0 ) D(0) D(0)表中最⼩的⾮零数,不妨假设为 d p q d_{pq} dpq,于是将 G p G_p Gp G q G_q Gq合并为⼀类,记为,
G r = { G p , G q } G_r=\{G_p,G_q\} Gr={Gp,Gq}
3、在 D ( i ) , i = 0 , 1 , ⋯   , n − 1 D(i),i=0,1,\cdots,n-1 D(i),i=0,1,,n1表中选择最⼩的⾮零数,其对应的两类有构成新类,利⽤递推公式(下面讲)计算新类与其他类间的距离。
4、分别删除 D ( i ) D(i) D(i)表的相应的⾏和列,并新增⼀⾏和⼀列添上的新类和旧类之间的距离,产⽣ D ( i + 1 ) D(i+1) D(i+1)表。类推直⾄所有的样本点归为⼀类为⽌。

八种距离方法

1、 最短距离法
假设第 p p p类和第 q q q类合并成第 r r r类,第 r r r类与其它各旧类的距离按最短距离法为:
定义距离:
D p q = min ⁡ { d i j : x i ∈ G p , x j ∈ G q } D_{pq}=\min\{d_{ij}:x_i\in G_p,x_j\in G_q\} Dpq=min{dij:xiGp,xjGq}
递推公式:
D r l = min ⁡ { D p l , D q l } l ≠ p , q D_{rl}=\min\{D_{pl},D_{ql}\}\quad l\ne p,q Drl=min{Dpl,Dql}l=p,q
2、 最⻓距离法
假设第 p p p类和第 q q q类合并成第 r r r类,第 r r r类与其它各旧类的距离按最⻓距离法为:
定义距离:
D p q = max ⁡ { d i j : x i ∈ G p , x j ∈ G q } D_{pq}=\max\{d_{ij}:x_i\in G_p,x_j\in G_q\} Dpq=max{dij:xiGp,xjGq}
递推公式:
D r l = max ⁡ { D p l , D q l } l ≠ p , q D_{rl}=\max\{D_{pl},D_{ql}\}\quad l\ne p,q Drl=max{Dpl,Dql}l=p,q
3、中间距离法
假设第 p p p类和第 q q q类合并成第 r r r类,第 r r r类与其它各旧类的距离按中间距离法的递归公式为:
D r l 2 = 1 2 D p l 2 + 1 2 D q l 2 − 1 4 D p q 2 D_{rl}^2=\cfrac{1}{2}D_{pl}^2+\cfrac{1}{2}D_{ql}^2-\cfrac{1}{4}D_{pq}^2 Drl2=21Dpl2+21Dql241Dpq2
这里利用了平行四边形的对角线性质,对角线平方等于四边平方和。下节要证明。。。
4、 类平均法
类平均法定义类间的距离是两类间样品距离的平均数。假设第 p p p类和第 q q q类合并成第 r r r类,第 r r r类与其它各旧类的距离按类平均法为:
D p q 2 = 1 n p n q ∑ x i ∈ G p ∑ x j ∈ G q D i j 2 = n p D p l + n q D l q n p + n q D_{pq}^2=\cfrac{1}{n_pn_q}\sum_{x_i\in G_p}\sum_{x_j\in G_q}D_{ij}^2=\cfrac{n_pD_{pl}+n_qD_{lq}}{n_p+n_q} Dpq2=npnq1xiGpxjGqDij2=np+nqnpDpl+nqDlq
5、 可变类平均法
类平均法的递推公式中,没有反映 G p G_p Gp类和 G q G_q Gq类距离的影响,进⼀步调整,加⼊ D p q 2 D^2_{pq} Dpq2,并给定系数 β < 1 \beta<1 β<1,则类平均法的递推公式改为:
D p q 2 = ( 1 − β ) n p D p l + n q D l q n p + n q + β D p q 2 D_{pq}^2=(1-\beta)\cfrac{n_pD_{pl}+n_qD_{lq}}{n_p+n_q}+\beta D^2_{pq} Dpq2=(1β)np+nqnpDpl+nqDlq+βDpq2
β \beta β的⼤⼩根据两项间相对重要性决定。
6、 离差平⽅和法
类似于⽅差分析的想法,如果类分得恰当,同类内的样品之间的离差平⽅和应较⼩,⽽类间的离差平⽅和应当较⼤。定义距离为离差平方和的增量:
D p q 2 = S r 2 − S p 2 − S q 2 D_{pq}^2=S^2_r-S^2_p-S^2_q Dpq2=Sr2Sp2Sq2
其中 S r 2 S^2_r Sr2是由 G p G_p Gp G q G_q Gq合并成的 G r G_r Gr类的类内离差平⽅和。可以证明离差平⽅和的聚类公式为
D r k 2 = n k + n p n r + n k D p k 2 + n k + n q n r + n k D q k 2 + n k n r + n k D p q 2 D^2_{rk}=\cfrac{n_k+n_p}{n_r+n_k}D^2_{pk}+\cfrac{n_k+n_q}{n_r+n_k}D^2_{qk}+\cfrac{n_k}{n_r+n_k}D^2_{pq} Drk2=nr+nknk+npDpk2+nr+nknk+nqDqk2+nr+nknkDpq2
7、 可变⽅法
如果让中间距离法的递推公式前两项的系数也依赖于 β \beta β,则递推公式为:
D r k 2 = 1 − β 2 ( D k p 2 + D k q 2 ) + β D p q 2 , β < 1 D^2_{rk}=\cfrac{1-\beta}{2}(D^2_{kp}+D^2_{kq})+\beta D^2_{pq},\beta<1 Drk2=21β(Dkp2+Dkq2)+βDpq2,β<1
⽤上式作为递推公式的系统聚类法称为可变法。
8、 重⼼法
重⼼法,也称样品均值法。设 G p G_p Gp G q G_q Gq为两个类:
X ˉ p = 1 n p ∑ x i ∈ G p n p x i , X ˉ q = 1 n q ∑ x i ∈ G q n q x i \bar X_p=\cfrac{1}{n_p}\sum_{x_i\in G_p}^{n_p}x_i,\bar X_q=\cfrac{1}{n_q}\sum_{x_i\in G_q}^{n_q}x_i Xˉp=np1xiGpnpxi,Xˉq=nq1xiGqnqxi
分别是 G p G_p Gp G q G_q Gq的重⼼,类与类之间的距离定义为两个类重⼼(类内样品平均值)间的平⽅距离。
假设第 p p p类和第 q q q类合并成第 r r r类,第 r r r类与其它各旧类的距离按重心法的递归公式为:
D r l = ∣ ∣ x ˉ r − x ˉ l ∣ ∣ = ∥ 1 n p + n q ∑ x i ∈ ( G p + G q ) x i − 1 n l ∑ x i ∈ G l x i ∥ = n p n r D p l 2 + n q n r D q l 2 − n p n q n r 2 D p q 2 D_{rl}=||\bar x_r-\bar x_l||=\left \|\cfrac{1}{n_p+n_q}\sum_{x_i\in(G_p+G_q)}x_i-\cfrac{1}{n_l}\sum_{x_i\in G_l}x_i\right\|\\ =\cfrac{n_p}{n_r}D_{pl}^2+\cfrac{n_q}{n_r}D_{ql}^2-\cfrac{n_pn_q}{n_r^2}D_{pq}^2 Drl=xˉrxˉl=np+nq1xi(Gp+Gq)xinl1xiGlxi=nrnpDpl2+nrnqDql2nr2npnqDpq2

  • 2
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oldmao_2000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值