第十四章聚类方法.14.2.4确定最佳聚类数


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

主要内容

确定最佳聚类数初步方法:理解给定阈值法,数据点散布图法
总离差平方和的分解:SST=SSA+SSE
聚类相关统计量: R 2 R^2 R2统计量定义与表达式理解
统计量法:半偏 R 2 R^2 R2统计量:半偏 R 2 R^2 R2统计量定义与表达式理解
统计量法:伪F统计量:伪F统计量定义与表达式理解
统计量法:伪 t 2 t^2 t2统计量:伪 t 2 t^2 t2统计量定义与表达式理解
谱系图法:根据谱系图进行分类的准则
伪F统计量案例分析:观察伪F统计量值与分类数的散点图,分析聚类树形图

确定最佳聚类数

选定某种聚类方法,按系统聚类的步骤并类后,得到谱系聚类图,反映样本(或变量)间的亲属关系。

1、给定阈值

给出合适的阀值 T T T,当类间距离 ≤ T \le T T时,形成的各个类中所包含的样品间关系密切,应属于同一类;反之不并类。

2、数据点散布图

a.若考察2个指标,可通过数据点的散布图直观确定类的个数。
b.若考察3个指标,可通过绘制三维散布图,旋转三维坐标轴,由数据点的分布确定应分为几个类。
c.若考察3个以上指标,可由这些指标综合出2个或3个综合变量,绘制数据点在综合变量上的散布图。

3、根据统计量分析聚类数量

预备知识

总离差平方和(Sum of Squares Total)
残差平方和(Sum of Squared Errors)
回归平方和(Sum of Squares Regression )
组间离差平方和 (Sum of Squares for factor A)

这里关于总离差平方和的分解简单推导一下:
∑ i = 1 n ( y i − y ˉ ) 2 = ∑ k = 1 K ∑ i = 1 n k ( y i ( k ) − y ˉ ( k ) ) 2 + ∑ k = 1 K ∑ i = 1 n k ( y ˉ ( k ) − y ˉ ) 2 \sum_{i=1}^n(y_i-\bar y)^2=\sum_{k=1}^K\sum_{i=1}^{n_k}(y_i^{(k)}-\bar y^{(k)})^2+\sum_{k=1}^K\sum_{i=1}^{n_k}(\bar y^{(k)}-\bar y)^2 i=1n(yiyˉ)2=k=1Ki=1nk(yi(k)yˉ(k))2+k=1Ki=1nk(yˉ(k)yˉ)2
右边第一项第k类里面的第i项 y i ( k ) y_i^{(k)} yi(k)减去该类平均值 y ˉ ( k ) \bar y^{(k)} yˉ(k),然后累加该类的 n k n_k nk项,累加K个类;第二项是第k类平均值 y ˉ ( k ) \bar y^{(k)} yˉ(k)减去总平均值 y ˉ \bar y yˉ,然后累加该类的 n k n_k nk项,累加K个类。
本来右边是:
∑ k = 1 K ∑ i = 1 n k ( y i ( k ) − y ˉ ( k ) + y ˉ ( k ) − y ˉ ) 2 \sum_{k=1}^K\sum_{i=1}^{n_k}(y_i^{(k)}-\bar y^{(k)}+\bar y^{(k)}-\bar y)^2 k=1Ki=1nk(yi(k)yˉ(k)+yˉ(k)yˉ)2
两两看成一项展开:
∑ k = 1 K ∑ i = 1 n k ( y i ( k ) − y ˉ ( k ) ) 2 + ∑ k = 1 K ∑ i = 1 n k ( y ˉ ( k ) − y ˉ ) 2 + 2 ∑ k = 1 K ∑ i = 1 n k ( y i ( k ) − y ˉ ( k ) ) ( y ˉ ( k ) − y ˉ ) \sum_{k=1}^K\sum_{i=1}^{n_k}(y_i^{(k)}-\bar y^{(k)})^2+\sum_{k=1}^K\sum_{i=1}^{n_k}(\bar y^{(k)}-\bar y)^2\\ +2\sum_{k=1}^K\sum_{i=1}^{n_k}(y_i^{(k)}-\bar y^{(k)})(\bar y^{(k)}-\bar y) k=1Ki=1nk(yi(k)yˉ(k))2+k=1Ki=1nk(yˉ(k)yˉ)2+2k=1Ki=1nk(yi(k)yˉ(k))(yˉ(k)yˉ)
在计算内层累加的时候 ( y ˉ ( k ) − y ˉ ) (\bar y^{(k)}-\bar y) (yˉ(k)yˉ)不用累加(没有i),只用算前面一项:
∑ i = 1 n k ( y i ( k ) − y ˉ ( k ) ) = ∑ i = 1 n k y i ( k ) − ∑ i = 1 n k y ˉ ( k ) = n k y ˉ ( k ) − n k y ˉ ( k ) = 0 \sum_{i=1}^{n_k}(y_i^{(k)}-\bar y^{(k)})=\sum_{i=1}^{n_k}y_i^{(k)}-\sum_{i=1}^{n_k}\bar y^{(k)}\\ =n_k\bar y^{(k)}-n_k\bar y^{(k)}=0 i=1nk(yi(k)yˉ(k))=i=1nkyi(k)i=1nkyˉ(k)=nkyˉ(k)nkyˉ(k)=0
所以交叉项为0.
有了这个结论,我们来看如果有一个矩阵,其每个列都是一个类:
[ x 11 x 12 ⋯ x 1 p x 21 x 22 ⋯ x 2 p ⋮ ⋮ ⋱ ⋮ x n 1 x n 2 ⋯ x n p ] x ˉ 1 x ˉ 2 ⋯ x ˉ p \begin{bmatrix} x_{11} & x_{12} &\cdots &x_{1p} \\ x_{21} & x_{22} & \cdots & x_{2p}\\ \vdots & \vdots & \ddots & \vdots\\ x_{n1} &x_{n2} &\cdots &x_{np} \end{bmatrix}\\\begin{matrix} \bar x_1 & \bar x_2 & \cdots& \bar x_p \end{matrix} x11x21xn1x12x22xn2x1px2pxnpxˉ1xˉ2xˉp
那么这个矩阵的总离差平方和的分解为(各个类减去该类均值):
( x 11 − x ˉ 1 ) 2 + ⋯ + ( x n 1 − x ˉ 1 ) 2 + ⋯ + ( x 1 p − x ˉ p ) 2 + ⋯ + ( x n p − x ˉ p ) 2 (x_{11}-\bar x_1)^2+\cdots+(x_{n1}-\bar x_1)^2+\cdots+(x_{1p}-\bar x_p)^2+\cdots+(x_{np}-\bar x_p)^2 (x11xˉ1)2++(xn1xˉ1)2++(x1pxˉp)2++(xnpxˉp)2

把总的影响平方和记为SST,它分为两个部分,一部分是由控制变量引起的离差,记为SSA(组间离差平方和),另一部分是由随机变量引起的SSE(组内离差平方和)。
即SST=SSA+SSE。
F记为
F = S S A / ( k − 1 ) S S E / ( n − k ) F=\cfrac{SSA/(k-1)}{SSE/(n-k)} F=SSE/(nk)SSA/(k1)
那么它是服从分布 F ( k − 1 , n − k ) F(k-1,n-k) F(k1,nk)
当数据集的F大于上面的 F α F_\alpha Fα表明组间离差平方和较大(k个类的差异较大)。反之类间的差异不明显。

R 2 R^2 R2统计量

R 2 = S S R S S T = ∑ i = 1 n ( y ^ i − y ˉ ) 2 ∑ i = 1 n ( y i − y ˉ ) 2 R^2=\cfrac{SSR}{SST}=\cfrac{\sum_{i=1}^n(\hat y_i-\bar y)^2}{\sum_{i=1}^n(y_i-\bar y)^2} R2=SSTSSR=i=1n(yiyˉ)2i=1n(y^iyˉ)2
y ^ i , y i \hat y_i,y_i y^i,yi分别是估计值和真实值,如果预测准确,二者非常接近,则 R 2 R^2 R2趋近于1。
假定数据集已将样本分为k类, G 1 , G 2 , ⋯   , G k G_1,G_2,\cdots,G_k G1,G2,,Gk,第i类含样品数 n i n_i ni,且有: n 1 + n 2 + ⋯ + n k = n n_1+n_2+\cdots+n_k=n n1+n2++nk=n,记 G t G_t Gt重心为 X ˉ ( t ) \bar X^{(t)} Xˉ(t) G t G_t Gt中第i个样本为: X ˉ ( i ) ( t ) , ( i = 1 , 2 , ⋯   , n t ) \bar X^{(t)}_{(i)},(i=1,2,\cdots,n_t) Xˉ(i)(t),(i=1,2,,nt),所有样本的重心为 X ˉ \bar X Xˉ,则 G t G_t Gt类中 n t n_t nt个样本的离差平方和为:
W t = ∑ i = 1 n t ( X ˉ ( i ) ( t ) − X ˉ ( t ) ) T ( X ˉ ( i ) ( t ) − X ˉ ( t ) ) W_t=\sum_{i=1}^{n_t}(\bar X^{(t)}_{(i)}-\bar X^{(t)})^T(\bar X^{(t)}_{(i)}-\bar X^{(t)}) Wt=i=1nt(Xˉ(i)(t)Xˉ(t))T(Xˉ(i)(t)Xˉ(t))
所有样本SST:
S S T = ∑ t = 1 k ∑ i = 1 n t ( X ˉ ( i ) ( t ) − X ˉ ( t ) ) T ( X ˉ ( i ) ( t ) − X ˉ ( t ) ) SST=\sum_{t=1}^k\sum_{i=1}^{n_t}(\bar X^{(t)}_{(i)}-\bar X^{(t)})^T(\bar X^{(t)}_{(i)}-\bar X^{(t)}) SST=t=1ki=1nt(Xˉ(i)(t)Xˉ(t))T(Xˉ(i)(t)Xˉ(t))
SST可以分解(上面的形式是:SST=SSA+SSE):
S S T = ∑ t = 1 k W t + B k = P k + B k SST=\sum_{t=1}^kW_t+B_k=P_k+B_k SST=t=1kWt+Bk=Pk+Bk
R k 2 = B k S S T = 1 − P k S S T R^2_k=\cfrac{B_k}{SST}=1-\cfrac{P_k}{SST} Rk2=SSTBk=1SSTPk
R 2 R^2 R2越大,则类间差异越明显。

半偏 R 2 R^2 R2统计量

半 偏 R 2 = B K L 2 S S T = R k + 1 2 − R k 2 半偏R^2=\cfrac{B_{KL}^2}{SST}=R^2_{k+1}-R^2_{k} R2=SSTBKL2=Rk+12Rk2
如果某一个步骤的半偏 R 2 R^2 R2越大,说明这一步取消一个分类后(从k+1分类变成k类)的类间差异变小了,因此上一个步骤分为k+1个分类聚类效果好。

伪F统计量

伪 F k = ( S S T − P k ) / ( k − 1 ) P k / ( n − k ) = B k P k n − k k − 1 伪F_k=\cfrac{(SST-P_k)/(k-1)}{P_k/(n-k)}=\cfrac{B_k}{P_k}\cfrac{n-k}{k-1} Fk=Pk/(nk)(SSTPk)/(k1)=PkBkk1nk
因为我们不知道原总体理论分布是否为正态分布,因此 F k F_k Fk统计量并不精确服从F分布,若某步骤伪 F k F_k Fk统计量较⼤,则表明这n个样品可显著地分为k个类

t 2 t^2 t2统计量

伪 t 2 = B K L 2 ( W K + W L ) / ( n K + n L − 2 ) 伪t^2=\cfrac{B^2_{KL}}{(W_K+W_L)/(n_K+n_L-2)} t2=(WK+WL)/(nK+nL2)BKL2
若某步骤伪 t 2 t^2 t2统计量值较大,则表明 G K G_K GK G L G_L GL合并为 G K L G_{KL} GKL后类内离差平方和增量 B K L 2 B^2_{KL} BKL2 G K G_K GK G L G_L GL合并前的类内离差平方和大,那么就说明上一步没有合并前的 G K G_K GK G L G_L GL两个类的类间差异较大,不应该合并为 G K L G_{KL} GKL

谱系图

Bermirmen(1972)提出根据谱系图进⾏分类的准则:
a.各类重心间距离较远
b.确定的类中各类包含元素不宜多
c.分类数符合研究目的
d.若运⽤集中不同的聚类方法处理,则应在各自的聚类图中发现相同的类

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 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、付费专栏及课程。

余额充值