聚类分析(理论知识篇)


这是我学习数学建模的学习笔记,有来自教材的摘抄也有自己的一些理解,主要是为了方便学习而用;参考教材:《数学建模算法与应用(第二版)》;

Q型聚类分析(样本聚类)

样本的相似性度量

引言:要用数量化的方法对事物进行分类,就必须用数量化的方法描述事物之间的相似程度。一个事物常常需要用多个变量来刻画;若一个事物Z需要用p个变量来刻画,有Z∈Rp。对Z进行一次观测就会得到一组静态(quiet)的数据(样本点),很自然的可以想到利用空间中的距离来度量样本点之间的相似程度;
Ω是样本点集,距离d( · , · )是Ω×Ω→R+的一个函数,满足条件:
①正定性:d( x , y )≥0,x,y∈Ω
②对称性:d( x , y )=d( y , x ),x,y∈Ω
③三角不等式:d( x , y )≤d( x , z )+d( y , z ),x,y,z∈Ω
d( x , y )=0 当且仅当 x=y

假设事物Z有两个样本点x,y,则有样本点之间的距离(d)的定义;

  1. 闵氏(Minkowski)距离:
    d q ( x → , y → ) = [ ∑ k = 1 p ∣ x k − y k ∣ q ] 1 q , q > 0 , d_{q}(\overset{\rightarrow}x,\overset{\rightarrow}y) = [\sum_{k=1}^p|x_{k}-y_{k}|_{}^{q}]_{}^{\frac {1}{q}},q>0, dq(x,y)=[k=1pxkykq]q1,q>0,
  • 绝对值距离
    d 1 ( x → , y → ) = ∑ k = 1 p ∣ x k − y k ∣ , ( q = 1 ) d_{1}(\overset{\rightarrow}x,\overset{\rightarrow}y) = \sum_{k=1}^p|x_{k}-y_{k}|,(q=1) d1(x,y)=k=1pxkyk,(q=1)
  • 欧几里得(Euclid)距离
    d 2 ( x → , y → ) = [ ∑ k = 1 p ∣ x k − y k ∣ 2 ] 1 2 , ( q = 2 ) d_{2}(\overset{\rightarrow}x,\overset{\rightarrow}y) = [\sum_{k=1}^p|x_{k}-y_{k}|_{}^{2}]_{}^{\frac {1}{2}},(q=2) d2(x,y)=[k=1pxkyk2]21,(q=2)
  • 切比雪夫(Chebyshev)距离
    d ∞ ( x → , y → ) = m 1 ≤ k ≤ p a x ∣ x k − y k ∣ , ( q → + ∞ ) d_{\infty}(\overset{\rightarrow}x,\overset{\rightarrow}y) = \underset{1\leq k \leq p}max|x_{k}-y_{k}|,(q \rightarrow +\infty) d(x,y)=1kpmaxxkyk,(q+)
    式中:x,y为来自p维总体Z的样本观测值;
    缺点
    ①数据要采用相同的量纲。(标准化处理)
    ②避免变量的多重相关性
  • 多重相关性
  1. 马氏(Mahalanobis)距离:
    d 1 ( x → , y → ) = ( x → , y → ) T Σ − 1 ( x → , y → ) d_{1}(\overset{\rightarrow}x,\overset{\rightarrow}y) = \sqrt{(\overset{\rightarrow}x,\overset{\rightarrow}y)_{}^{T}\Sigma_{}^{-1}(\overset{\rightarrow}x,\overset{\rightarrow}y) } d1(x,y)=(x,y)TΣ1(x,y)
    式中:x,y为来自p维总体Z的样本观测值;ΣZ的协方差矩阵,实际中Σ往往未知的,常需要用样本协方差来估计。

样本聚类

如果有两个样本类G1G2,可以用下面的一系列方法度量样本类之间的距离(D);

  1. 最短距离法 D ( G 1 , G 2 ) = min ⁡ x i ∈ G 1 , y i ∈ G 2 { d ( x → i , y → i ) } D(G1,G2)= \min_{xi\in G1,yi\in G2}\{d(\overset{\rightarrow}x_{i},\overset{\rightarrow}y_{i})\} D(G1,G2)=xiG1,yiG2min{d(xi,yi)}
    直观意义:两个类中最近两点的距离;
  2. 最长距离法 D ( G 1 , G 2 ) = max ⁡ x i ∈ G 1 , y i ∈ G 2 { d ( x → i , y → i ) } D(G1,G2)= \max_{xi\in G1, yi\in G2}\{d(\overset{\rightarrow}x_{i},\overset{\rightarrow}y_{i})\} D(G1,G2)=xiG1,yiG2max{d(xi,yi)}
    直观意义:两个类中最长两点的距离;
  3. 重心法 D ( G 1 , G 2 ) = d ( x → — , y → — ) , ( x → — , y → — 分 别 为 G 1 , G 2 的 均 值 ) D(G1,G2)=d(\overset{\overset{—}{\rightarrow}}x,\overset{\overset{—}{\rightarrow}}y),(\overset{\overset{—}{\rightarrow}}x,\overset{\overset{—}{\rightarrow}}y分别为G1,G2的均值) D(G1,G2)=d(x,y),(x,yG1,G2)
    直观意义:两个类重心(均值)的距离;
  4. 类平均法
    D ( G 1 , G 2 ) = 1 n 1 n 2 ∑ x i ∈ G 1 ∑ y i ∈ G 2 d ( x → i , y → i ) D(G1,G2)=\frac{1}{n_{1}n_{2}}\sum_{xi\in G1} \sum_{yi\in G2}d(\overset{\rightarrow}x_{i},\overset{\rightarrow}y_{i}) D(G1,G2)=n1n21xiG1yiG2d(xi,yi)
    直观意义:两个类之间样本点距离的平均,n1,n2分别为G1,G2中的样本点个数;
  5. 离差平方和(ward)法 G 1 : D 1 = ∑ x i ∈ G 1 ( x → i − x → — 1 ) T ( x → i − x → — 1 ) , G 2 : D 2 = ∑ x j ∈ G 2 ( x → j − x → — 2 ) T ( x → j − x → — 2 ) , G 1 ∪ G 2 : D 12 = ∑ x k ∈ G 1 ∪ G 2 ( x → k − x → — ) T ( x → k − x → — ) D = D 12 − D 1 − D 2 ( x → — 1 , x → — 2 , x → — 分 别 为 G 1 , G 2 , G 1 ∪ G 2 的 均 值 ) G_{1}:D_{1}=\sum_{x_{i}\in G_{1}}(\overset{\rightarrow}x_{i}-\overset{\overset{—}{\rightarrow}}x_{1})_{}^{T}(\overset{\rightarrow}x_{i}-\overset{\overset{—}{\rightarrow}}x_{1}), G_{2}:D_{2}=\sum_{x_{j}\in G_{2}}(\overset{\rightarrow}x_{j}-\overset{\overset{—}{\rightarrow}}x_{2})_{}^{T}(\overset{\rightarrow}x_{j}-\overset{\overset{—}{\rightarrow}}x_{2}),\\ G_{1}\cup G_{2}:D_{12}=\sum_{x_{k}\in G_{1}\cup G_{2}}(\overset{\rightarrow}x_{k}-\overset{\overset{—}{\rightarrow}}x)_{}^{T}(\overset{\rightarrow}x_{k}-\overset{\overset{—}{\rightarrow}}x)\\D=D_{12}-D_{1}-D_{2}\\ {(\overset{\overset{—}{\rightarrow}}x_{1},\overset{\overset{—}{\rightarrow}}x_{2},\overset{\overset{—}{\rightarrow}}x分别为G_{1},G_{2},G_{1}\cup G_{2}的均值)} G1:D1=xiG1(xix1)T(xix1),G2:D2=xjG2(xjx2)T(xjx2),G1G2:D12=xkG1G2(xkx)T(xkx)D=D12D1D2(x1,x2,xG1,G2,G1G2)

直观意义:D1,D2小,则它们能很好的各自聚成一类;D12很大,则这两类能充分分离,这时必然有D很大;则可认为G1G2之间的距离很大;

  • matlab代码实现

R型聚类分析(变量聚类)

变量的相似性度量

  1. 相关系数
    记变量xj的取值(x1j,x2j,···,xnj)T∈(j=1,2,···,m)。则可以用变量xjxk的样本相关系数作为它们的相似性度量,即:
    r j k = ∑ i = 1 n ( x i j − x j — ) ( x i k − x k — ) [ ∑ i = 1 n ( x i j − x j — ) 2 ∑ i = 1 n ( x i k − x k — ) 2 ] 1 2 = ∑ i = 1 n x ~ i j x ~ i k n − 1 r_{jk}=\frac{\sum\limits_{i=1}^{n}(x_{ij}-\overset{—}{x_{j}})(x_{ik}-\overset{—}{x_{k}})}{[\sum\limits_{i=1}^{n}(x_{ij}-\overset{—}{x_{j}})_{}^{2}\sum\limits_{i=1}^{n}(x_{ik}-\overset{—}{x_{k}})_{}^{2}]_{}^{\frac{1}{2}}}=\frac{\sum\limits_{i=1}^{n}\overset{~}x_{ij}\overset{~}x_{ik}}{n-1} rjk=[i=1n(xijxj)2i=1n(xikxk)2]21i=1n(xijxj)(xikxk)=n1i=1nxijxik
    在对变量进行聚类分析时,利用相关系数矩阵是最多的。
  2. 夹角余弦
    也可以直接利用两变量xjxk的夹角余弦rjk来定义它们的相似性度量,即:
    r j k = ∑ i = 1 n x i j x i k ( ∑ i = 1 n x i j 2 ∑ i = 1 n x i k 2 ) 1 2 r_{jk}=\frac{\sum\limits_{i=1}^{n}x_{ij}x_{ik}}{(\sum\limits_{i=1}^{n}x_{ij}^{2}\sum\limits_{i=1}^{n}x_{ik}^{2})_{}^{\frac{1}{2}}} rjk=(i=1nxij2i=1nxik2)21i=1nxijxik
    各种定义的相似度量均应具有以下两个性质:
    ①|rjk|≤1,对于一切jk
    ②rjk=rkj,对于一切jk
    |rjk|越接近1,xjxk相关性越强;反之,|rjk|越接近0,xjxk相关越弱;

变量聚类法

类似于样本集合聚类分析利用距离来度量相似程度。可以用下面的一系列方法度量变量之间的距离(R);

  1. 最长距离法
    定义距离两变量的距离为:
    R ( G 1 , G 2 ) = m a x { d j k } x j ∈ G 1 , x k ∈ G 2 d j k = 1 − ∣ r j k ∣ 或 d j k 2 = 1 − r j k 2 R(G_{1},G_{2})=\underset{x_{j}\in G_{1},x_{k}\in G_{2}}{max\{d_{jk}\}}\\ d_{jk}=1-|r_{jk}|或d_{jk}^{2}=1-r_{jk}^{2} R(G1,G2)=xjG1,xkG2max{djk}djk=1rjkdjk2=1rjk2
  2. 最短距离法
    定义距离两变量的距离为:
    R ( G 1 , G 2 ) = m i n { d j k } x j ∈ G 1 , x k ∈ G 2 d j k = 1 − ∣ r j k ∣ 或 d j k 2 = 1 − r j k 2 R(G_{1},G_{2})=\underset{x_{j}\in G_{1},x_{k}\in G_{2}}{min\{d_{jk}\}}\\ d_{jk}=1-|r_{jk}|或d_{jk}^{2}=1-r_{jk}^{2} R(G1,G2)=xjG1,xkG2min{djk}djk=1rjkdjk2=1rjk2
  • matlab代码实现

聚类图

不管是样本聚类还是变量聚类都是通过选定距离算法来度量样本(变量)之间的相似程度;生成聚类图的步骤如下:
①选定距离算法来度量样本(变量)之间的相似程度;
②首先构造集合U1包含n个基本的子集(类),每个子集(类)只包含一个样本(变量),每一个子集(类)的平台高度为0;
③合并距离最近的两子集(类)为一个新子集(类),并且以这两子集(类)之间的距离值作为新子集(类)的平台高度;生成U2包含新的n-1个基本的子集(类);
④反复进行③最终Un-1只有1个基本子集(类)时,聚类图生成;
⑤画出聚类图;
显然采用不同的距离算法有可能得到不同的聚类图;
生成聚类图的过程,每一步融合两个距离最近的子集(类),得到一个新的子集(类),这其实也是以集合U1包含n个基本的子集(类)作为二叉树的初始节点,根据距离算法,生成的一颗二叉树;
假设根据距离算法,刚好按顺序融合;

步骤初始集合(类)/(节点)融合的集合(类)/(节点)生成的新集合(类)/(节点)平台高度h
1x1,x2,x3…xnx1,x2x12hi=0(i=1,2,…,n)
2x12,x3…xnx12,x3x123hi=0(i=1,2,…,n),h12=d12
n-1x12…(n-1)x12…(n-1),xnx12…nhi=0(i=1,2,…,n),h12=d12,h123=d123,…,h12…n=d12…n
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值