最近在使用层次聚类时,简单了解了一下合并类簇时所使用的几种linkage方法,在这里作一下简单的总结。


1963年,Ward J H提出了使用离差平方(Error Sum of Square)和或者说是信息缺失量作为目标函数的思想来决定究竟应该怎么一步一步合并小类簇为一个大类簇,他在文献中指出,类簇合并后的离差平方和应当最小,即最好的目标函数就是使得类簇合并后的信息缺失最小。

但是,他没有提出具体的类簇合并计算公式
只是给出了离差平方和的公式:

ESS=∑i=1nx2i−12(∑i=1nxi)2

ESS=\sum_{i=1}^nx_i^2-\frac{1}{2}(\sum_{i=1}^nx_i)^2

(1)The first step in grouping is to select two of these n subsets                       which , when united , will reduce by one the number of subsets while producing the least impairment of the optimal value of the objective function .
(2)The n-1 resulting subsets then are examined to determine if a third member should be united with the first pair or another pairing made in order to secure the optional value of the objective function for n-2 groups.
(3)This procedure can be continued until all n members of original arraty are in one group.
(4)As each union is considered in turn, the value of the corresponding objective function is computed and hypothesized to be "equal to or better than" that of any preceding union.
(5)第一次合并需要计算n(n-1)/2次样本间的相似度,第二次合并需要计算(n-1)(n-2)/2次,以此类推;

1967年,G. N. Lance, W. T. Williams在ward的基础上,于文献中提出了5中计算类簇合并的方法,分别为:

1.Nearest−Neifgbour

1. Nearest-Neifgbour

2.Furthest−Neighbour

2. Furthest-Neighbour

3.Centroid

3. Centroid

4.Median

4. Median

5.Group−Average

5. Group-Average

作者在文献中提出了一种组合策略(combinatorial),并提出使用以下线性实例假设上述策略:

dhk=αpdhp+αqdhq+βdpq+γ|dhp−dhq|

d_{hk}=\alpha_pd_{hp}+\alpha_qd_{hq}+\beta d_{pq}+\gamma|d_{hp}-d_{hq}|
      其中 Sk=Sp⋃SqS_k=S_p\bigcup S_q,即是类簇 kk 为类簇 pp 和 qq 合并后的新类簇。
(1)Nearest-Neighbour
      两个类簇的距离即是两个类簇中距离最近的两个样本,即

d(u,v)=min(dist(u[i],v[j]))

d(u,v)=min(dist(u[i],v[j]))此时有:

αp=αq=12;β=0;γ=−12

\alpha_p=\alpha_q=\frac{1}{2};\beta=0;\gamma=-\frac{1}{2}
(2)Furthest-Neighbour
      两个类簇的距离即是两个类簇中距离最远的两个样本,即

d(u,v)=max(dist(u[i],v[j]))

d(u,v)=max(dist(u[i],v[j]))。此时有:

αp=αq=12;β=0;γ=12

\alpha_p=\alpha_q=\frac{1}{2};\beta=0;\gamma=\frac{1}{2}
(3)Centroid-Squared Euclidean Distance
      两个类簇的距离即是两个类簇中心之间的距离,即

d(u,v)=||cu−cv||2

d(u,v)=||c_u-c_v||_2
      其中 cu,cvc_u,c_v分别是类簇 u,vu,v的中心。

假设类簇Sk=Sp⋃SqS_k=S_p\bigcup S_q,p,q,kp,q,k的样本大小分别为np,nq,nkn_p,n_q,n_k则有np+nq=nkn_p+n_q=n_k,类簇pp的中心为xpx_p,类簇qq的中心为xqx_q,则有类簇kk的中心为(npxp+nqxq)/nk(n_px_p+n_qx_q)/n_k,则类簇kk与类簇hh之间的距离为:

dhk=[xh−(npxp+nqxq)/nk]2

d_{hk}=[x_h-(n_px_p+n_qx_q)/n_k]^2

=[np+nqnkxh−(npxp+nqxq)/nk]2

=[\frac{n_p+n_q}{n_k}x_h-(n_px_p+n_qx_q)/n_k]^2

=[npnk(xh−xp)+nqnk(xh−xq)]

=[\frac{n_p}{n_k}(x_h-x_p)+\frac{n_q}{n_k}(x_h-x_q)]

=[npnk(xh−xp)]2+[nqnk(xh−xq)]2+2⋅npnqn2k(xh−xp)(xh−xq)

=[\frac{n_p}{n_k}(x_h-x_p)]^2+[\frac{n_q}{n_k}(x_h-x_q)]^2+2\cdot \frac{n_pn_q}{n_k^2}(x_h-x_p)(x_h-x_q)

=npnh(xh−xp)[npnk(xh−xp)+nqnk(xh−xq)]+nqnh(xh−xq)[npnk(xh−xq)+nqnk(xh−xp)]

=\frac{n_p}{n_h}(x_h-x_p)[\frac{n_p}{n_k}(x_h-x_p)+\frac{n_q}{n_k}(x_h-x_q)]+\frac{n_q}{n_h}(x_h-x_q)[\frac{n_p}{n_k}(x_h-x_q)+\frac{n_q}{n_k}(x_h-x_p)]

=npnh(xh−xp)[xh−npnkxp−nqnkxq]+nqnh(xh−xq)[xh−nqnkxq−npnkxp]

=\frac{n_p}{n_h}(x_h-x_p)[x_h-\frac{n_p}{n_k}x_p-\frac{n_q}{n_k}x_q]+\frac{n_q}{n_h}(x_h-x_q)[x_h-\frac{n_q}{n_k}x_q-\frac{n_p}{n_k}x_p]

=npnh(xh−xp)[xh−xp+nqnkxp−nqnkxq]+nqnh(xh−xq)[xh−xq+npnkxq−npnkxp]

=\frac{n_p}{n_h}(x_h-x_p)[x_h-x_p+\frac{n_q}{n_k}x_p-\frac{n_q}{n_k}x_q]+\frac{n_q}{n_h}(x_h-x_q)[x_h-x_q+\frac{n_p}{n_k}x_q-\frac{n_p}{n_k}x_p]

=npnh(xh−xp)[xh−xp+nqnk(xp−xq)]+nqnh(xh−xq)[xh−xq+npnk(xq−xp)]

=\frac{n_p}{n_h}(x_h-x_p)[x_h-x_p+\frac{n_q}{n_k}(x_p-x_q)]+\frac{n_q}{n_h}(x_h-x_q)[x_h-x_q+\frac{n_p}{n_k}(x_q-x_p)]

=npnk(xh−xp)2+npnk(xh−xp)⋅nqnk(xp−xq)+nqnk(xh−xq)2+nqnk(xh−xq)⋅npnk(xq−xp)

=\frac{n_p}{n_k}(x_h-x_p)^2+\frac{n_p}{n_k}(x_h-x_p)\cdot \frac{n_q}{n_k}(x_p-x_q)+\frac{n_q}{n_k}(x_h-x_q)^2+\frac{n_q}{n_k}(x_h-x_q)\cdot \frac{n_p}{n_k}(x_q-x_p)

=npnk(xh−xp)2+npnk(xh−xp)⋅nqnk(xp−xq)+nqnk(xh−xq)2−nqnk(xh−xq)⋅npnk(xp−xq)

=\frac{n_p}{n_k}(x_h-x_p)^2+\frac{n_p}{n_k}(x_h-x_p)\cdot \frac{n_q}{n_k}(x_p-x_q)+\frac{n_q}{n_k}(x_h-x_q)^2-\frac{n_q}{n_k}(x_h-x_q)\cdot \frac{n_p}{n_k}(x_p-x_q)

=npnk(xh−xp)2+nqnk(xh−xq)2+npnk⋅nqnk(xp−xq)[(xh−xp)−(xh−xq)]

=\frac{n_p}{n_k}(x_h-x_p)^2+\frac{n_q}{n_k}(x_h-x_q)^2+\frac{n_p}{n_k}\cdot \frac{n_q}{n_k}(x_p-x_q)[(x_h-x_p)-(x_h-x_q)]

=npnk(xh−xp)2+nqnk(xh−xq)2+npnk⋅nqnk(xp−xq)(xq−xp)

=\frac{n_p}{n_k}(x_h-x_p)^2+\frac{n_q}{n_k}(x_h-x_q)^2+\frac{n_p}{n_k}\cdot \frac{n_q}{n_k}(x_p-x_q)(x_q-x_p)

=npnk(xh−xp)2+nqnk(xh−xq)2−npnk⋅nqnk(xp−xq)2

=\frac{n_p}{n_k}(x_h-x_p)^2+\frac{n_q}{n_k}(x_h-x_q)^2-\frac{n_p}{n_k}\cdot \frac{n_q}{n_k}(x_p-x_q)^2

=npnkdhp+nqnkdhq−npnk⋅nqnkdpq

=\frac{n_p}{n_k}d_{hp}+\frac{n_q}{n_k}d_{hq}-\frac{n_p}{n_k}\cdot \frac{n_q}{n_k}d_{pq}
      有上式可以看出:

αp=npnk;αq=nqnk;β=−αpαq;γ=0

\alpha_p=\frac{n_p}{n_k};\alpha_q=\frac{n_q}{n_k};\beta=-\alpha_p\alpha_q;\gamma=0
(4)Median
      假如类簇 p,q,kp,q,k分别为三角形的三条边,则 pp和qq组成的类簇 kk为最短边的中点,而类簇kk与类簇 hh的距离为三角形的中心:

αp=αq=12;β=−14;γ=0

\alpha_p=\alpha_q=\frac{1}{2};\beta=-\frac{1}{4};\gamma=0
(5)Group-Average
      两个簇内所有元素之间距离的均值假设两个单个元素之间的距离为 SpqS_{pq}:

dhk=1nknk∑h,kShk

d_{hk}=\frac{1}{n_kn_k}\sum_{h,k}S_{hk}

=npnk⋅1nhnp⋅∑h,pShp+nqnk⋅1nhnq⋅∑h,qShq

=\frac{n_p}{n_k}\cdot \frac{1}{n_hn_p}\cdot \sum_{h,p}S_{hp}+\frac{n_q}{n_k}\cdot \frac{1}{n_hn_q}\cdot \sum_{h,q}S_{hq}

=npnk⋅dhq+nqnk⋅dhq

=\frac{n_p}{n_k}\cdot d_{hq}+\frac{n_q}{n_k}\cdot d_{hq}
      根据上式可得:

αp=npnk;αq=nqnk;β=γ=0

\alpha_p=\frac{n_p}{n_k};\alpha_q=\frac{n_q}{n_k};\beta=\gamma=0


1969年,Wishart D在上述基础上,结合信息增益的概念又提出了ward′smethodward's\,method,即是现在的linkage=“ward”linkage=“ward”。该方法的基本思想是:
      首先,计算样本两两之间的距离,构成矩阵距离,此时每个样本均为一个类簇,那么每个样本构成的类簇的ESS即离差平方和均为0;
      然后,找出距离矩阵中最小的值并将其对应的两个样本合并为一个新类簇;
      在接下来的合并类簇中步骤中,依次计算类簇两两结合后ESS的增量(任何两个类簇合并后均会导致新类别的离差平方和较之之前的两个类簇有所增加),新的类簇合并原则是:选择ESS增加最小的那两个类簇进行合并,直到所有的样本合并为一个大类簇为止。
      假设数据属于n×mn\times m的二维矩阵:

The two clusters whose fusion results in the minimum increase in the error sum of squares are combined.
The first fusion clearly involves those two points which are closest.

假设XijtX_{i\,j\,t}表示包含 ktk_t个样本的类簇 StS_t 的第 jj 样本的第 ii 个变量的值,X^jt\hat{X}_{j\,t} 表示 StS_t的第 jj个属性的均值,那么 StS_t 的误差平方和为:

Et=∑i=1kt∑j=1m(Xijt−X^jt)2

E_t=\sum_{i=1}^{k_{\,t}}\sum_{j=1}^{m}(X_{i\,j\,t}-\hat{X}_{j\,t})^2

Et=∑i=1kt∑j=1mX2ijt−ktU2t(1)

E\,_t=\sum_{i=1}^{k_{\,t}}\sum_{j=1}^{m}X_{i\,j\,t}^2-k_{\,t}U_t^2\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,(1)
       U2tU_t^2表示 U′UU^\prime U, U′t=(X^1t,X^2t,...,X^mt)U^\prime_t=(\hat X_{1t},\hat X_{2t},...,\hat X_{mt})表示均值向量
      根据以上表述,所有类簇的误差平方和的总和即是整个目标函数 EE的的值:

E=∑t=1TEt

E=\sum_{t=1}^{T}E_t
      在有两个类簇 SqS_q和 SpS_p合并后,即 Sk=Sp⋃SqS_k=S_p\bigcup S_q,目标函数 EE的增量为:

Ipq=Ek−Ep−Eq

I_{pq}=E_k-E_p-E_q
      通过公式(1),可得:

Ipq=∑i=1nk∑j=1mX2ijk−nkU2k−∑i=1np∑j=1mX2ijp+npU2p−∑i=1nq∑j=1mX2ijq+nqU2q

I_{pq}=\sum_{i=1}^{n_{k}}\sum_{j=1}^{m}X_{ijk}^2-n_{k}U_k^2-\sum_{i=1}^{n_{p}}\sum_{j=1}^{m}X_{ijp}^2+n_{p}U_p^2-\sum_{i=1}^{n_{q}}\sum_{j=1}^{m}X_{ijq}^2+n_{q}U_q^2
由于 nk=np+nqn_k=n_p+n_q,所以平方项 X2ijX_{ij}^2的和相消,得:

Ipq=npU2p+nqU2q−nkU2k(2)

I_{pq}=n_{p}U_p^2+n_{q}U_q^2-n_{k}U_k^2\,\,\,\,\,\,\,\,\,(2)
但是:

n2kU2k=(npUp+nqUq)2

n_{\,k}^2U_k^2=(n_{\,p}U_p+n_{\,q}U_q)^2

=n2pU2p+n2qU2q+2npnqU′pUq

=n_{\,p}^2U_p^2+n_{\,q}^2U_q^2+2n_pn_qU_p^\prime U_q

=n2pU2p+n2qU2q+npnq(U2p+U2q−(Up−Uq)2)

=n_{p}^2U_p^2+n_{\,q}^2U_q^2+n_pn_q\left(U_p^2+U_q^2-(U_p-U_q)^2\right)
化简后得:

U2k=npnkU2p+nqnkU2q−npnqn2k(Up−Uq)2(3)

U_k^2=\frac{n_p}{n_k}U_p^2+\frac{n_q}{n_k}U_q^2-\frac{n_pn_q}{n_k^2}(U_p-U_q)^2\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,(3)
结合公式(3),公式(2)可以变为:

Ipq=npnqnk(Up−Uq)2

I_{pq}=\frac{n_pn_q}{n_k}(U_p-U_q)^2
由于 (Up−Uq)2=d2pq(U_p-U_q)^2=d_{pq}^2,又可得:

Ipq=npnqnkd2pq(4)

I_{pq}=\frac{n_pn_q}{n_k}d_{pq}^2\,\,\,\,\,\,\,\,\,\,\,\,(4)
当 ppqp_{pq}获得最小值时,类簇 SqS_q和 SpS_p才会合并。

当SqS_q和SpS_p合并为SkS_k后,SkS_k与其他的任一个类簇ShS_h的新合并会使得目标函数有一个增加:

Ihk=nhnknh+nkd2hk(5)

I_{hk}=\frac{n_hn_k}{n_h+n_k}d_{hk}^2\,\,\,\,\,\,\,\,\,\,(5)
类簇 ShS_h和 SkS_k中心之间的距离为:

d2hk=(Uh−Uk)2

d_{hk}^2=(U_h-U_k)^2
以与(3)相同的方式化简后得:

d2hk=npnkd2hp+nqnkd2hq−npnqn2kd2pq(6)

d_{hk}^2=\frac{n_p}{n_k}d_{hp}^2+\frac{n_q}{n_k}d_{hq}^2-\frac{n_pn_q}{n_k^2}d_{pq}^2\,\,\,\,\,\,\,\,\,\,\,\,\,\,(6)
结合公式(5),公式(6)可以转变为:

Ihk=1nk+nh[(nh+np)Ihp+(nh+nq)Ihq−nhIpq](7)

I_{hk}=\frac{1}{n_k+n_h}\left[(n_h+n_p)I_{hp}+(n_h+n_q)I_{hq}-n_hI_{pq}\right]\,\,\,\,\,\,\,\,\,\,\,\,(7)

由公式(4)得,当两个单个元素进行合并时有:

Ipq=12d2pq

I_{pq}=\frac{1}{2}d_{pq}^2
如果记 Sp=Sp⋃SqS_p=S_p\bigcup S_q,则距离矩阵 DD的元素

d2hp=2Ihp;h=1,2,...,n;h≠p,q(8)

d_{hp}^2=2I_{hp};h=1,2,...,n;h\neq p,q\,\,\,\,\,\,\,\,(8)
Sp⋃SqS_p\bigcup S_q合并为 SpS_p之后变为一个新的元素,那么距离矩阵 DD中的第qq列就成为多余的列。

将公式(7)和(8)结合,可以得到:

d2hp=2nk+nh[(nh+np)Ihp+(nh+nq)Ihq−nhIpq]

d_{hp}^2=\frac{2}{n_k+n_h}\left[(n_h+n_p)I_{hp}+(n_h+n_q)I_{hq}-n_hI_{pq}\right]

=1nk+nh[(nh+np)d2hp+(nh+nq)d2hq−nhd2pq](9)

=\frac{1}{n_k+n_h}\left[(n_h+n_p)d_{hp}^2+(n_h+n_q)d_{hq}^2-n_hd_{pq}^2\right]\,\,\,\,\,\,\,\,\,(9)
此时有:

αp=nh+npnh+nk;αq=nh+nqnh+nk;β=−nhnh+nk;γ=0

\alpha_p=\frac{n_h+n_p}{n_h+n_k};\alpha_q=\frac{n_h+n_q}{n_h+n_k};\beta=-\frac{n_h}{n_h+n_k};\gamma=0

综上所述:以上6种均可由dhk=αpdhp+αqdhq+βdpq+γ|dhp−dhq|d_{hk}=\alpha_pd_{hp}+\alpha_qd_{hq}+\beta d_{pq}+\gamma|d_{hp}-d_{hq}|改变不同的系数而得到。


参考文献:

  1. Wakd q H. Hpekakchpcal Gkouppng to Optpmpze an Obqectpve Functpon[q]. Publpcatpons of the Amekpcan Statpstpcal Assocpatpon, 1963, 58(301):236-244.

  2. G. N. Lance, W. T. Wpllpams. A Genekal Theoky of Classpfpcatoky Soktpng Stkategpes 1. Hpekakchpcal Systems[q]. Computek qouknal, 1967, 9(4):373.

  3. Wpshakt D. 256. Note: An Algokpthm fok Hpekakchpcal Classpfpcatpons[q]. Bpometkpcs, 1969, 25(1):165-170.

层次聚类——linkage方法相关推荐

  1. 聚类算法(五)——层次聚类 linkage (含代码)

    聚类算法相关: 聚类算法(一)--DBSCAN 聚类算法(二)-- 优缺点对比 聚类算法(三)-- 评测方法1 聚类算法(三)-- 评测方法2 聚类算法(三)-- 评测方法3(代码) 聚类算法(四)- ...

  2. 层次聚类优化方法BIRCH(聚类特征树的多阶段聚类)

    class sklearn.cluster.Birch(threshold = 0.5,branching_factor = 50,n_clusters = 3,compute_labels = Tr ...

  3. 【数据挖掘】基于层次的聚类方法 ( 聚合层次聚类 | 划分层次聚类 | 族间距离 | 最小距离 | 最大距离 | 中心距离 | 平均距离 | 基于层次聚类步骤 | 族半径 )

    文章目录 基于层次的聚类方法 简介 基于层次的聚类方法 概念 聚合层次聚类 图示 划分层次聚类 图示 基于层次的聚类方法 切割点选取 族间距离 概念 族间距离 使用到的变量 族间距离 最小距离 族间距 ...

  4. 针对天气预报集合数据的时间层次聚类和可视化

    集合(ensemble)模拟数据可视化是科学可视化的一个重要研究方向,特别是针对气象学这一特定领域.通过扰动初始条件或者使用不同的预测模型公式,集合方法会生成代表大气未来可能状态的一些数据成员.分析集 ...

  5. 使用层次聚类在结构点云中进行平面的快速提取

    在许多机器人应用的领域,能够实时在三维点云中进行平面提取是非常困难的.在论文中提出了一个算法,能够在类似Kinect 传感器采集到的点云进行实时可靠的多平面的检测. 具体的算法一共有三个步骤: 第一步 ...

  6. 【机器学习算法】聚类分析-2 聚类算法的分类,层次聚类算法的选择

    目录 聚类算法的分类 层次聚类的算法, 单一聚类法(single link) 完全链结法 平均链结法 中心链结法 Ward's法 我的主页:晴天qt01的博客_CSDN博客-数据分析师领域博主 目前进 ...

  7. 【数据挖掘知识点五】层次聚类方法的理解

    对于同是基于距离的原型聚类和层次聚类,层次聚类具有更好的解释性,同时对于先验簇类数k的超参设定,更有利于数据分布的探索.不过基于距离的聚类,面临同样的问题是距离选择,实际上我更想拓展的是多属性下,单个 ...

  8. 聚类算法之层次聚类方法

    目录 AGNES算法 DIANA算法 类间距离的不同定义 层次聚类算法的优缺点 层次聚类方法对给定的数据集进行层次的分解,直到满足某种条件为止.具体又可分为:凝聚的层次聚类AGNES算法和分裂的层次聚 ...

  9. Python层次聚类sci.cluster.hierarchy.linkage函数详解

    1 函数原型: scipy.cluster.hierarchy.linkage(y, method='single', metric='euclidean', optimal_ordering=Fal ...

最新文章

  1. 针对 AlloyFinger 中 currentTarget为空的解决方案
  2. 每日一皮:最适合编程写代码的键盘!
  3. PKI/CA (2)核心说明
  4. Catalan Numbers 卡特兰数
  5. RAX,eax,ax,ah,al 关系
  6. 浙大PAT甲级1019. General Palindromic Number (20)
  7. Javascript第五章document对象获取标签节点-第六课
  8. nvm for window 开源资源(免费下载)
  9. wav转mp3 c语言源码,C/C++知识点之mp3格式转wav格式 附完整C++算法实现代码
  10. 计算机word打开,电脑word打不开怎么办
  11. 三极管、MOSE管的作用总结
  12. 树莓派4B连接PCF8591模块
  13. 用HTML+CSS简单做了张简历表格
  14. 基于iOS 10封装的下载器(支持存储读取、断点续传、后台下载、杀死APP重启后的断点续传等功能)
  15. 使用 easyExcel 生成多个 excel 并打包成zip压缩包
  16. html5作品展示的动效,10款绚丽实用的HTML5图表动画应用
  17. 深入浅出JS—20 生成器控制函数执行
  18. ctf show-web入门 php特性篇部分题解
  19. c语言资料大全收集,C语言库函数大全(收集资料).pdf
  20. 提高复杂网络分析效率!中国科学家研发强化学习新框架

热门文章

  1. TFTP服务器与客户端的安装
  2. 乱象?真象!——中国公有云服务市场大起底
  3. 2019云计算公司排名 哪家的云服务器最好用?
  4. Python基础:文件和异常
  5. vue 判断字符串是否是英文_vue rules以及原生js判断字符串是否为正整数(正小数)...
  6. AI时代-人工智能入学指南
  7. 运动世界校园 校园跑 不想跑步人的福利
  8. esp8266保存html文件,八,ESP8266 文件保存数据(基于Lua脚本语言)
  9. 网页前端监控系统(错误日志,接口监控)的使用
  10. 服务器的虚拟机网速如何分配,管理ESXi主机网络与虚拟机网络