Matlab数据分析方法
其中 WK ,WL 分别表示第 k 类和第 L 类的离差平方和,
2 BKL =WM (WK WL ) 表示合并类 GK和 GL 为新类 GL
后类内离差平方和的增值.
(4)不一致系数
不一致系数: Y (k ,4)
Z (k ,3) Y (k ,1) Y (k ,2) 第k合并距离 前k次合并平均距离 前k次合并标准差
财产性收入 (元/人) 452.75
369.12 293.92 65.33 141.75
转移性收入 (元/人) 7707.87
6199.77 3603.72 2610.61 1976.49
北 京
上 海 安 徽 陕 西 新 疆
为了研究上述5个省、区、市的城镇居民收入差异,进行 谱系聚类时,选用哪种类间距离好?
7
例6.4.1 2008年我国5省、区、市城镇居民人均年家庭 收入如下表
表6.1 5省(区、市)城镇居民人均家庭收入
省(市)
工薪收入 (元/人) 18738.96
21791.11 9302.38 8354.63 9422.22
经营净收入 (元/人) 778.36
1399.14 959.43 638.76 938.15
Bk nt ( x t x )T ( x t x )
t 1 i 1 k nt
x (1p ) x (3p )
x( p)
x (1q )
x(q)
x (2p )
np nq
x (2q )
(p ) (p ) (q ) (q ) Bk 3(x x )T ( x x) 2(x x )T ( x x) i 1 i 1
程序:
x=[18738.96 778.36 452.75 7707.87 21791.11 1399.14 369.12 6199.77 9302.38 959.43 293.92 3603.72 8354.63 638.76 65.33 2610.61 9422.22 938.15 141.75 1976.49]; d=pdist(x); %计算出各行之间的欧氏距离
R=[cophenet(z1,d),cophenet(z2,d),cophenet(z3,d),co phenet(z4,d),cophenet(z5,d)] %计算cophenet相关系 数
输出结果: R =0.9809
0.9811
0.9812最大
0.9812最大 0.9803
由于最大值为0.9812, 所以类间距离为类平均距离和重心 距离效果最好.
第六章 聚类分析
Clustering analysis
1
6.4 聚类的有效性
谱系聚类的有效性
1
2
模糊聚类的有效性
2
6.4 .1 谱系聚类的有效性
样品之间和两个总体(类)之间究竟采 用何种距离为好? 先假定样品之间的距离已定,例如选取 欧氏距离. 对于类间五种不同距离, 哪种 距离使得聚类效果最好? 聚类树的cophenet距离与生成该聚类 树的原始距离之间的线性相关系数定义为 聚类树的cophenet相关, 它度量了个体间 的不相似性, 若该系数越接近于1,则聚 类效果越好.
说明:如果要找到最理想的分类方法,可对每一种样 品之间的距离,都计算上述的复合相关系数,这样就可 找到最理想的样品距离与对应的类间距离.
2.样品之间距离与类间距离搭配评价准则(自学):
(1) R 2 统计量:
Bk Pk R 1 T T
2 k
越大,聚类效果越好
Rk2 表明 k 个类的类间偏差平方总和 Bk 和在总离差平方
1. cophenet相关系数 会用
x1 x11 x 2 x21 X x x n n1 x12 x1 p x22 x2 p xn 2 xnp
T
---样本观测矩阵
d (d1 , d2 , dn(n1) / 2 )
T Pk Bk
k nt t 1 i 1
nt
T (xi(t ) x )T (xi(t ) x)--总离差平方和
第t类样品总 离差平方和
Pk (x x ) (x x -) 类内偏差差平方和
t 1 i 1 (t ) i (t ) T (t ) i (t )
z1= linkage(d) z2= linkage(d,'complete') z3= linkage(d,'average') z4= linkage(d,'centroid') z5= linkage(d,'ward') %最短距离法系统聚类 %最长距离 %类平均距离 %重心距离 %离差平方和
H=dendrogram(z1) H =为树形图中线条句柄值向量, 可控制线条属性。 173.0011 175.0011 176.0011 177.0011
9000 8000 7000 6000 5000 4000 3000 2000 1000 4 5 3 1 2
Y =不一致系数
1.0e+03 * 1.2796 1.3539 3.4616 5.0610 0 0.0010 0.0020 0 0.0007 0 0.0011
Y=inconsistent(z1)
的链接的不一致系数
%计算聚类树矩阵z1每次并类得到
z1 =系统聚类树矩阵 1.0e+04 * 0.0004 0.0005 0.0003 0.0006 0.0001 0.0002 0.0007 0.0008
0.1280 0.1428 0.3462 1.0293
24
10000
---样本间距离,(n,1),(3,2),…,(n,2),…,(n,n-1)的距
离,即用距离命令d=pdist(X)得到的距离向量。
4
z ( z1 , z2 , zn(n1) / 2 )
分量依次为样品
T
---cophenetic距离向量
(2,1),(3,1),…,(n,1),(3,2),…,(n,2),…,(n,n-1)初 次并为一个类中时的距离,称为cophenetic距离(和聚类 树产生的距离相关)。
x (3p )
x (2p )
x
x (1q )
x(q)
x (2q )
类内偏差平方和
Pk (xi(t ) x (t ) )T (xi(t ) x (t ) )
t 1 i 1 k nt
x (1p ) x (3p )
x( p)
x (1q )
x (2p )
x(q)
x (2q )
类内偏差平方和
解:以样品间的距离为欧氏距离为例,考虑类间的五 种不同距离:
最短距离:
最长距离:
z1= linkage(d)
z2= linkage(d,'complete')
类平均距离:z3= linkage(d,'average') 重心距离: z4= linkage(d,'centroid')
离差平方和:z5= linkage(d,'ward') 其中d=pdist(x), x为原始矩阵.
0.1050 0
0.0010 0.0030
4.6439
第4次不一致系数0.0011较第3次0提升 较大,故第3次1和2号样品聚类,并类 好; 第2次并类效果不如第1次,好于第4次; 最后选项第3次聚合结果,453一类,12 类.
%计算类间距离
R=cophenet(z, d) %求Z和d的cophenet相关系数
[R,copd]=cophenet(z, d)
输入d是样品之间的某种距离,z 是用某种类间距离 linkage后的结果.
输出R为cophene相关系数,copd为cophene距离向量. 判断:R越接近于1,聚类效果越好。
和 T 中占比例,比例越大说明 k 个类能够分开。
Rk2 可用于评价合并为类时聚类效果, Rk2 越大, 效果越好。
当样品类数 k 由 n 到 1 类变化时,Rk2 由 1 变到 0, 可从 Rk2 变 化来确定分为几个类合适。
样本总离差平方和分解:
Pk小,Bk大,分类效果好
第t类样品距离总类 重心总离差平方和
k=1; if k<=j b=find(c==k); l=length(b)-1; if b>0 a=x(b,:); c(j)=sum(l*var(a))+c(j); end end end R=1-c/sum(n1*var(x));
z1=linkage(d,'complete'); c=cluster(z1,j); %分类数j
(2)伪F统计量
(T Pk ) (k 1) Bk n k F Pk (n k ) Pk k 1
伪F统计量用于评价分为k类的效果. 伪F统计量的值越 大表示这n个样品可显著地分为k类。
(3)伪
2
t 统计量
2
2 BKL t (WK WL ) (nK nL 2)
k=1;
if k<=j b=find(c==k); l=length(b)-1; if b>0 a=x(b,:); c(j)=sum(l*var(a))+c(j); end end end R=1-c/sum(n1*var(x)); optimaln=find(R==max(R))
输出结果为: optimaln=8 分8类效果好
t 1 i 1 k t 1 i 1
k
ni
Wt nt ( x t x )T ( x t x ) Pk Bk
t 1 t 1 i 1