数学建模社区-数学中国

标题: 聚类分析 [打印本页]

作者: I_know__!!!!    时间: 2012-2-12 23:37
标题: 聚类分析
§1 聚类分析
2 E2 G$ c. J3 V) V' L将认识对象进行分类是人类认识世界的一种重要方法,比如有关世界的时间进程. Y8 H% v) P9 p: O0 ?# Q
的研究,就形成了历史学,也有关世界空间地域的研究,则形成了地理学。又如在生物0 v0 I( S& `+ d
学中,为了研究生物的演变,需要对生物进行分类,生物学家根据各种生物的特征,将8 O! r/ a, o- ~1 f, ~1 {
它们归属于不同的界、门、纲、目、科、属、种之中。事实上,分门别类地对事物进行
9 ?7 B1 Q* K) i$ ]2 l研究,要远比在一个混杂多变的集合中更清晰、明了和细致,这是因为同一类事物会具
  v' l$ J! h* d有更多的近似特性。在企业的经营管理中,为了确定其目标市场,首先要进行市场细分。
0 a4 ~. n' j' a( J1 [7 ?$ c因为无论一个企业多么庞大和成功,它也无法满足整个市场的各种需求。而市场细分,0 X* w! M; f8 K) C2 F
可以帮助企业找到适合自己特色,并使企业具有竞争力的分市场,将其作为自己的重点
& ^( L1 i6 F! R, Y1 z开发目标。
; H/ ^- J7 ]% J/ g. g4 e& ^& i通常,人们可以凭经验和专业知识来实现分类。而聚类分析(cluster analyses)作
4 o( ~0 \. E7 w! S& u为一种定量方法,将从数据分析的角度,给出一个更准确、细致的分类工具。7 q, {8 _3 ~4 |1 r. \: K5 q- Y; [
1.1 相似性度量9 ]' B& x/ A6 e1 M
1.1.1 样本的相似性度量6 \+ ]2 z$ K5 B5 f% K
要用数量化的方法对事物进行分类,就必须用数量化的方法描述事物之间的相似& y7 z$ M  R! L" g" b. w9 J
程度。一个事物常常需要用多个变量来刻画。如果对于一群有待分类的样本点需用p 个9 j: y% Q; |% d& u
变量描述,则每个样本点可以看成是Rp空间中的一个点。因此,很自然地想到可以用
/ Y3 v: w$ o$ B+ D+ i" I距离来度量样本点间的相似程度。" c' j1 U/ @* N! U* S
记Ω是样本点集,距离d(⋅,⋅)是Ω×Ω→ R+的一个函数,满足条件:
* x% i6 X" T0 g3 `% l# k# X1)d(x, y) ≥ 0,x, y∈Ω;
1 y' c( l$ Y2 G* c8 p2)d(x, y) = 0当且仅当x = y;% w7 d  Q; V1 O* G
3)d(x, y) = d( y, x),x, y∈Ω;' S+ v6 b* Y- {5 x9 A+ F; G& |
4)d(x, y) ≤ d(x, z) + d(x, y),x, y, z∈Ω。6 B  P- K+ i* O
这一距离的定义是我们所熟知的,它满足正定性,对称性和三角不等式。在聚类
0 g. N( W% |5 g% X& v# k分析中,对于定量变量,最常用的是Minkowski 距离3 S1 f/ m* p- s0 o) e* F
-444-
4 J; D. d9 U& L) B" ]0 R2 }# y7 vp q& K, k+ }8 D1 E  Z& v
k% d" Z: l, N) J
q* Y. @: i  H) q6 Y! ]- a
q k k d x y x y2 j/ j( _' w# q9 s* m
1
& N& y4 W5 K5 e% }1
5 L+ q: d3 s. S$ m' Q0 U8 [) , ( ⎥⎦
2 q% j1 N# a2 g+ `+ ]) Y$ W0 L8 ]3 w% }( _7 l4 U1 i7 j: o
⎢⎣: Q" L; O- T0 B% T9 s
* y; G: i; ~1 a4 O  z, b3 r, H; B* r
− = Σ=
5 L* ?! J! Y, t, T4 j& |& k/ ?" p,q > 0
# D' [% [6 O, a4 ?: g当q = 1,2或q →+∞时,则分别得到) w- i8 J$ }' F( v9 G
1)绝对值距离: g4 |+ V' j% e3 A
Σ=; @6 Y* B1 n5 {: P* ~' R+ p% q% k
= −
& ?  _7 K1 u, K+ A* ^$ S# ^" [+ pq
* [2 n9 T! |' `2 [# G+ z; G5 K: kk
1 t5 ?3 M/ R  ^k k d x y x y' g0 ^" L( M6 W
1! \& L% o  d/ p
1 ( , ) , (1)
, T- q0 S2 q" a- w2)欧氏距离6 q0 [# F+ _+ u: K) \
22 \7 c, r' M) Q
18 P6 B- t& q% L+ J* ]
1
' j4 i9 |* N4 T# m' `, D. R20 w4 |: R# O; ]3 ~
2 ) , ( ⎥⎦8 u7 F" l1 b& h9 R6 j0 z* h
( I/ ]; l" F% i
⎢⎣$ r9 z7 d6 K1 k4 W
* e: Z6 x: H4 P, i# p, @5 b" ?
− = Σ=5 l( ^9 D* f, N
p% z. S* C/ H, r; x
k9 ?7 D: i: w- S% Y% Q. d& t; W
k k d x y x y , (2)8 {* h# Y! r( Q: {3 ?, U3 H
3)Chebyshev 距离
, D- F" T; E3 O. \7 |3 ~k p k k
8 D0 B- V! M+ G" ]( S" @d x y = x − y
. D- t5 }7 m: a) c∞ ≤ ≤ 1
; k$ n* B. T1 Y/ s+ y  V) }- ]( , ) max 。 (3), ~: }  k$ P6 P
在 Minkowski 距离中,最常用的是欧氏距离,它的主要优点是当坐标轴进行正交
3 F; J+ B5 f) w) z, v  T; `( D- z旋转时,欧氏距离是保持不变的。因此,如果对原坐标系进行平移和旋转变换,则变换5 t6 E+ I* Z7 M5 c2 {  e
后样本点间的距离和变换前完全相同。
% z" _1 V4 U$ r' m, v  L4 Z值得注意的是在采用 Minkowski 距离时,一定要采用相同量纲的变量。如果变量- G0 k1 G; P+ U' l  V- P* z* ]
的量纲不同,测量值变异范围相差悬殊时,建议首先进行数据的标准化处理,然后再计
" l  N3 i; n4 Y+ l算距离。在采用Minkowski 距离时, 还应尽可能地避免变量的多重相关性
# |4 J. u: h" u+ w; B, ?(multicollinearity)。多重相关性所造成的信息重叠,会片面强调某些变量的重要性。
! {1 |: r! q5 F  f由于Minkowski 距离的这些缺点,一种改进的距离就是马氏距离,定义如下
/ `! X" R0 s7 E4 Z4)马氏(Mahalanobis)距离9 S0 S: Q) n0 E5 {7 z8 o
d(x, y) = (x − y)T Σ−1(x − y) (4)
- x) b- h. I/ w其中x, y为来自p 维总体Z 的样本观测值,Σ为Z 的协方差矩阵,实际中Σ往往是不
1 U" R0 G6 P9 |1 r知道的,常常需要用样本协方差来估计。马氏距离对一切线性变换是不变的,故不受量% Q9 |! q% s# P- r
纲的影响。1 P$ }& d3 `5 |: [; Q9 I
此外,还可采用样本相关系数、夹角余弦和其它关联性度量作为相似性度量。近年
$ ?0 o4 j+ N' ?) f' Z, a来随着数据挖掘研究的深入,这方面的新方法层出不穷。! X' l$ I( S. _
1.1.2 类与类间的相似性度量) X8 Z/ {! ]* _- f4 D
如果有两个样本类 1 G 和2 G ,我们可以用下面的一系列方法度量它们间的距离:  H- J7 r2 ~# I' m
1)最短距离法(nearest neighbor or single linkage method)
8 p- b$ N1 T% J1 B7 j% F-445-
$ q5 Z" f& D0 Q& G: n# R( , ) min{ ( , )}
) D' |8 h$ Y/ f2
+ O/ N7 x- k* G6 ~1. E# ]& _7 t  Y$ u' h& ?0 C9 ]/ R
1 2 i j
' \+ V% k4 w4 i; t  V3 d& j" X+ Cy G& f" S# Y9 e% C5 m
x G
9 v) v  }$ T5 B3 y  ]6 W7 Y; z  WD G G d x y
7 b/ A  F/ G* Yj
( h+ ]( H% ~/ Hi
, s( k7 x9 |$ ]/ s! C- F5 n4 A- ?
. D4 i* Y5 B/ s4 W; C5 f- |5 b2 e+ E  ^9 v8 ^* _: |  C5 |
= , (5)
* \4 v% e/ d2 U  S9 E  \9 t% d" Z它的直观意义为两个类中最近两点间的距离。/ g+ F# H, I0 }5 H
2)最长距离法(farthest neighbor or complete linkage method)5 x/ j6 _$ g* e5 h1 j
( , ) max{ ( , )}& ]6 r3 }- L* u" E& ~; x
2' \* X$ x) L* X% i5 ?8 I
1
$ c( [( i/ m* l) c9 t$ v5 x9 A1 2 i j
+ N8 M+ R% F8 L8 L0 {3 h" cy G4 ]3 A( e" d0 }/ \& o. ~: ^; m3 H# a
x G
: J4 C' W6 M. ND G G d x y
' [( _4 g4 X8 _# R6 J# m$ ]j9 f# \( l: ?6 E
i
% v1 y) G. p+ X9 ^9 S
4 [* U) a5 l5 r$ M/ P: F8 H4 t, g/ r2 y) J
= , (6)* R: R! ^- S8 I5 `' m
它的直观意义为两个类中最远两点间的距离。- X7 \0 A! s3 R$ ^) g4 T$ b
3)重心法(centroid method)
' N. P( \: `& z' F/ B2 B; I" T( z, y; I( , ) ( , ) 1 2 D G G = d x y , (7)
! Z7 Q+ ?" G* Q% K- H" B  o其中x, y 分别为1 2 G ,G 的重心。6 ]# m" F  I4 [2 x# N) x
4)类平均法(group average method)
; K# j- M- X3 w% [) U0 `- XΣ Σ
0 q' k+ o/ z" y( u5 t∈ ∈+ d6 {  f) y* Y) Y
=
8 }, V  {* Z% R1 2
6 {9 _1 R& H7 ]3 e( X( , ) 1 ( , ). B. q# U1 D& U- i
1 2
/ }2 q  k! a" I0 \/ j1 21 u0 I% y+ N  _0 \. b
x G x G  O( Z% X9 a; b  }% E  N5 X
i j
/ N- ~' W2 g2 x+ V6 Si j
8 y* r# G& l: w: F, hd x x
2 ~( |1 N) V( c; b0 ]: e7 L+ ]n n! q* L& t6 R+ J- V( ]4 j
D G G , (8)) P! E8 S4 L/ L/ y
它等于 1 2 G ,G 中两两样本点距离的平均,式中1 2 n , n 分别为1 2 G ,G 中的样本点个数。- t( u) T- Y7 n! b
5)离差平方和法(sum of squares method)3 Q* E, D2 X( H, m* R2 W& R
若记
) }1 Q8 u% u- r/ b9 gΣ∈
# m5 X0 E# j0 U: O= − −
4 p0 R5 \# g' A- S( Q& \% J: w  J+ r1
' {% R# z) r" I& U4 w( ) ( ) 1 1 1
* Q5 R' y. S9 O/ ~x G
# }, u$ z  c" H; N& m% Gi
: \2 K  I% K2 S2 Z. LT
8 k1 z$ \: l( \8 r! l2 wi; ]/ k# s& Y' r) m7 a: X
i5 |0 \3 J) @& U- ^/ a) |
x x x x D , Σ∈/ a& k3 `; U; y5 E  _. K# O
= − −0 D$ {2 z$ o5 g: S  T8 g
2
' `# g: z  o5 e) ]" n( ) ( ) 2 2 28 N$ ]9 g  |( x0 W. e) G# b
x G
, L% c! u8 }1 o/ T* C: f: tj# W1 g& ^0 F# N4 N8 v* t) L3 q
T& P6 a7 j3 A( ]
j
: i1 N- W! U2 V- r  Zj
$ W$ T8 e4 ~' `; v, ^, r" {* a; d5 hD x x x x ,
' x! w3 \" k+ i8 i2 I  x. s/ JΣ( W4 g* a) y$ w3 [! y0 P4 z/ T/ u; V5 S
9 a- w# v  }+ p& Y# S0 V
= − −
; D+ o4 [; B: e1 2, `8 c  N0 D2 N- e+ Z
( ) ( ) 12
4 `7 D# C- T6 c8 e8 U. Cx G G* v( B1 D& S9 t$ O
k* E% \( O& n& }5 b+ C5 ~/ V: k
T' o) ^% x! U& I6 e- z( C# p& W- `
k
5 p7 h/ D' I4 L  ^( F3 X1 xk
; N* [/ G' _0 o9 C$ OD x x x x  N: s6 v4 X. Q

  h# ]: A0 w+ R+ M8 g/ P5 c1 n, O; ~$ R8 |; E: t, F. \
其中
) ~2 Q8 ~. p+ @2 X+ M& BΣ∈
1 A( U# N' h! |' g  V" ~! ^: `=
- S+ O8 g; C% r5 ]& t& V1 K1 1
5 l5 j( v) [+ i- F! g# ]11 }' K- T* X! X: {) s( I  }
1
: X* T0 P7 J9 y5 U* N, Ix G
& n/ `9 V$ d' Q6 D  Z3 Ui
0 ~, c, _) i8 Zi9 ~! n9 }: j5 x/ i
x$ P) c  g4 \) U* [$ V) P
n9 l) \+ O# e( Z4 Q+ P) j6 _' m* P$ T
x , Σ∈9 u: g2 O9 x- x
=
! H; b- w$ K3 q- Y! a+ q, H2 2
: Z0 ]# t$ X- R6 \2
% g$ {' x) S; m% w1
) z9 Z8 R/ {5 L2 Rx G
9 y9 e; j- l0 I7 v  o. _j
. b3 J. A8 B; G9 _" z; m4 r1 ]j2 t" P, D' |/ g* i
x
8 L5 o7 {" ~7 N+ w2 W, qn
2 V3 b/ ]+ {% Y- Sx , Σ
  d+ z. e0 O" z0 K0 D, z# O+ ∈
& H  D0 _/ B. H3 p4 X4 [% e: f, Q=+ @& [8 l+ \' N. G) f
1 2 1 2- ^* t0 ?* h; J( R- \8 B
1# y- e; E& r+ @) l
x G G
- w2 i( d7 O! C& T0 @k! u5 K' l5 [8 c. n1 d
k% v9 a) ?4 O- g& z! ~4 S
x
; |7 d% i  w3 r1 on n) M* k; z% c* k" l  ~1 ~
x- O: y6 n# p1 }

/ @  I' q3 d; ^3 R; V则定义1 l! M" M" ]0 F, O& z
1 2 12 1 2 D(G ,G ) = D − D − D (9)
7 @. I- d6 d- z' W* ?( b事实上,若1 2 G ,G 内部点与点距离很小,则它们能很好地各自聚为一类,并且这两类5 q: O: f' }8 M( x# N; T8 p/ o" `
又能够充分分离(即12 D 很大),这时必然有12 1 2 D = D − D − D 很大。因此,按定义可9 j6 p8 t8 n% `, }5 a! ?9 b
以认为,两类1 2 G ,G 之间的距离很大。离差平方和法最初是由Ward 在1936 年提出,% C7 r% Q/ m3 i4 l" Y3 J+ j' n
-446-
% I# p7 f4 O# W后经 Orloci 等人1976 年发展起来的,故又称为Ward 方法。# K! J& [; w0 J  g9 q
1.2 系统聚类法
: A; q6 Q7 ]: R8 t8 p2 z; x2 j1.2.1 系统聚类法的功能与特点8 ?- }* C' b/ ]& `
系统聚类法是聚类分析方法中最常用的一种方法。它的优点在于可以指出由粗到细# v# A: c; G: i9 R- A! y7 B- C8 w
的多种分类情况,典型的系统聚类结果可由一个聚类图展示出来。0 z& X! M$ v3 q9 x( W  d
例如,在平面上有7 个点1 2 7 w ,w ,􀀢,w (如图1(a)),可以用聚类图(如图1(b))1 U7 X, _) i# o; G  h
来表示聚类结果。* x/ {, o& L/ [* |
图1 聚类方法示意图) F4 p* J- ]5 O; Q! M$ p
记 { , , , } 1 2 7 Ω = w w 􀀢 w ,聚类结果如下:当距离值为5 f 时,分为一类% ?4 r; p* a9 l$ a% Q) \2 y
{ , , , , , , } 1 1 2 3 4 5 6 7 G = w w w w w w w ;, w. Y3 F. V3 ]2 j
距离值为 4 f 分为两类:
' D4 Q) {6 Y" l3 Q+ Z5 p" v{ , , } 1 1 2 3 G = w w w , { , , , } 2 4 5 6 7 G = w w w w ;4 ]- I! Z  V1 }! Y
距离值为 3 f 分为三类:
7 l: t' u; c$ B/ |  A# R) Y9 u{ , , } 1 1 2 3 G = w w w , { , , } 2 4 5 6 G = w w w , { } 3 7 G = w ;
+ N3 M/ ~5 D: ^$ v; D# ?距离值为 2 f 分为四类:
9 S! U4 O2 k# t8 @! F{ , , } 1 1 2 3 G = w w w , { , } 2 4 5 G = w w , { } 3 6 G = w , { } 4 7 G = w
5 D4 H7 {- T; b; \: m4 L距离值为 1 f 分为六类:
, Q  U6 k  A0 q( @- m! K* K8 z2 `{ , } 1 4 5 G = w w , { } 2 1 G = w , { } 3 2 G = w , { } 4 3 G = w , { } 5 6 G = w , { } 6 7 G = w
, z2 M5 N6 g" v' Z, Y距离小于 1 f 分为七类,每一个点自成一类。) ^( _6 R: n9 J& w0 n
-447-
2 C( w6 O/ B) B& b* v怎样才能生成这样的聚类图呢?步骤如下:设 { , , , } 1 2 7 Ω = w w 􀀢 w ,
* E9 x$ z+ e- z0 N% S/ C1)计算n个样本点两两之间的距离{ } ij d ,记为矩阵ij n n D d × = ( ) ;
' g. [: _5 y/ o( a3 S5 f2 o2)首先构造n 个类,每一个类中只包含一个样本点,每一类的平台高度均为零;) K) X4 A6 S, c
3)合并距离最近的两类为新类,并且以这两类间的距离值作为聚类图中的平台高
  O( ^4 ?9 H/ I度;
& y, a3 u' n/ }1 w2 _1 Z8 t4)计算新类与当前各类的距离,若类的个数已经等于1,转入步骤5),否则,回( ~" M$ L6 |6 O
到步骤3);
9 \1 C8 X. n# X9 w5)画聚类图;
5 F9 I, \! `' o) S5 Q7 V( p6)决定类的个数和类。* P7 b& K3 S5 K5 D7 F  t' F4 N
显而易见,这种系统归类过程与计算类和类之间的距离有关,采用不同的距离定
; V  |/ Y! g- b  c, @8 e( i! t义,有可能得出不同的聚类结果。
2 {+ V* T9 H- A( b- k* B8 E6 B. W1.2.2 最短距离法与最长距离法
5 X8 T+ o" k( q/ _如果使用最短距离法来测量类与类之间的距离,即称其为系统聚类法中的最短距离' o* i7 y, P* u) Y0 I
法(又称最近邻法),最先由Florek 等人1951 年和Sneath1957 年引入。下面举例说明! f: P9 h: c  B5 k, N
最短距离法的计算步骤。
+ |' H" o+ g' ~1 N5 \例1 设有5个销售员1 2 3 4 5 w ,w ,w ,w ,w ,他们的销售业绩由二维变量( , ) 1 2 v v 描述,; s" t) K& v- b
见表1。
+ k# ^* m3 \3 r! r. G, ?表1 销售员业绩表
2 R. I0 E' [' R3 z9 g销售员) s8 X8 w/ I9 X# f+ n! x
1 v (销售量)百件2 v (回收款项)万元
) `5 W/ F0 }+ ^1 c, @1 w 1 0
) L5 V' e3 R+ i, @2 w 1 12 Z0 x& D! @: r0 B5 M6 C7 B. Y& p# q
3 w 3 2
* T, e+ Y+ b# W2 G# x4 w 4 3: U6 ~/ z3 ]7 a- L8 S: Y
5 w 2 5" J# w7 G- z0 v+ C6 O4 ?% }9 f
记销售员w (i =1,2,3,4,5) i 的销售业绩为( , ) i1 i2 v v 。如果使用绝对值距离来测量点
- [8 {3 `% G, f与点之间的距离,使用最短距离法来测量类与类之间的距离,即
4 L+ }3 w% _* V* u6 UΣ=
6 e" y( A7 ^4 u* A$ u  x= −
4 y- q4 f+ x/ e+ [% A$ D28 F3 K! n  t$ Z1 r: M- ~
1( |; v2 a7 k. K* Y2 u$ @; j) n7 v
( , )
: ~4 N. r9 Z& Qk
  Q1 i- e  y; F5 Z4 hi j ik jk d w w v v , ( , ) min{ ( , )} i j
# e% _) a) s5 Jw G/ R9 v; s- g$ m$ `5 q  t
p q w G D G G d w w7 V! i2 T1 p* e* F8 G
j q
/ G- c/ Q4 j" F" B- i, |3 d( l- L1 Qi p
( S, l; `- }0 P/ a  N0 `: q2 ?! l
- ~$ F2 S+ G$ O( L2 L
( C- `  w) i2 O3 s' L; K=' b. w9 j( L/ E
-448-0 [0 a6 {  R. i0 S/ F9 {+ C
由距离公式d(⋅,⋅),可以算出距离矩阵。
4 k# o' A7 w$ {0 r9 [! E  u⎥ ⎥ ⎥ ⎥ ⎥ ⎥
/ g# i( s0 H6 |
  _  g" Q9 q" F# K) C& h9 L' x% x! i2 y( m' _
⎢ ⎢ ⎢ ⎢ ⎢ ⎢+ }0 l9 w, I0 O8 s" B+ U6 s, H) v- j! D

5 `- `; {7 e9 G7 U7 O, T
. u1 S# D' z! a- N0 d4' S! K2 R# o0 j" E6 s5 W  {
0 4
0 R# O& @0 {0 i2 \0 2 4
9 l' i. p! O* @( i& ]0 3 5 55 X3 j! ~" O# V
0 1 4 6 6' X+ E* b8 m# L( b
5
& d* L4 ?, h$ P4' c- G6 H! z; c/ D: Y& Y1 L
3$ i6 T. ~, G- Z3 g1 r
2# D# c% c8 t& ^$ m+ Z
1/ x3 d4 i# h2 X# h+ ]8 Z# ~
1 2 3 4 5
' }2 M) _, o: D% Xw
! u' d/ L' c7 U3 j0 I. @+ `w) i3 T; ^& v9 w# g2 T. r
w
- O4 Z/ S* [2 `6 r. L" V' n( \w
; Y- Z! D; K( W. ]w
3 O& J$ Q' ]3 J$ f) nw w w w w
* j9 s9 z2 y$ f- k+ N1 w; F第一步,所有的元素自成一类{ , , , , } 1 1 2 3 4 5 H = w w w w w 。每一个类的平台高度为, G9 d- c2 q& V  X/ [: Q
零,即f (w ) = 0(i = 1,2,3,4,5) i 。显然,这时( , ) ( , ) p q p q D G G = d w w 。1 `, q3 a9 Q7 I7 Z. T
第二步,取新类的平台高度为 1,把1 2 w ,w 合成一个新类6 h ,此时的分类情况是- x7 `% B2 k# Z" E
{ , , , } 2 6 3 4 5 H = h w w w+ b, p' ?1 w5 J& [
第三步,取新类的平台高度为 2,把3 4 w ,w 合成一个新类7 h ,此时的分类情况是3 w) ^4 a' |! f) v' X
{ , , } 3 6 7 5 H = h h w
' U. L  u7 I3 m9 ^6 @, ^* S第四步,取新类的平台高度为 3,把6 7 h , h 合成一个新类8 h ,此时的分类情况是
' c9 f* G# E9 O: D; w: h  V- b{ , } 4 8 5 H = h w
, u$ D' `$ y! m9 {+ p第五步,取新类的平台高度为4,把8 h 和5 w 合成一个新类9 h ,此时的分类情况是
% _* ]6 `7 T9 z  j5 m{ } 5 9 H = h
& z) V* y9 @4 w$ a5 G4 f图2 最短距离法
; e9 f' U3 N( }& {5 h& }; N这样, 9 h 已把所有的样本点聚为一类,因此,可以转到画聚类图步骤。画出聚类
- y6 @& }7 H3 c" k0 @8 t2 e0 }4 |-449-0 M# S( o8 H9 u" c% q  l
图(如图2(a))。这是一颗二叉树,如图2(b)。# F' s7 u1 g) j% n) l
有了聚类图,就可以按要求进行分类。可以看出,在这五个推销员中5 w 的工作成
. V3 n. s5 _. ~5 z5 g绩最佳, 3 4 w ,w 的工作成绩最好,而1 2 w ,w 的工作成绩较差。. N8 \+ i4 h! z. x. i
完全类似于以上步骤,但以最长距离法来计算类间距离,就称为系统聚类法中的' U" R, L' t, z& X) s
最长距离法。
. h, Q. p+ V* U! r; Y4 g2 i% I* j计算的 MATLAB 程序如下:
; \; M8 l# J* `0 p5 K! [2 |. eclc,clear
, b2 k( v' |. _% u0 N  r: ga=[1,0;1,1;3,2;4,3;2,5];
* `  {0 {8 Y8 k7 ~  P  U) h  `: }[m,n]=size(a);
3 a5 [$ R6 W% {5 a, D+ rd=zeros(m,m);% a: j( u) A9 O  ?
for i=1:m
+ }$ C" d2 u3 s8 d! L7 n, b* tfor j=i+1:m
: t& @! n/ d& u" p3 r% i+ \d(i,j)=mandist(a(i,,a(j,');
. u! }5 u2 d! {$ C7 R/ N0 i& Y" k1 |end
. f- v( w$ w3 P. S. @4 jend8 ]7 F8 M4 E, ?2 Y* f3 J
d% k: e' |8 \! p" o. D
nd=nonzeros(d);
8 W( o8 a" u' y1 A2 }9 wnd=union(nd,nd)
8 U4 R) ]! m: P# o% Gfor i=1:m-1
* H, ]! e6 n" @5 ?; Rnd_min=min(nd);
; L) G1 c+ b+ I9 s# `1 F( Z[row,col]=find(d==nd_min);tm=union(row,col);
  M, d0 a; p" z( \tm=reshape(tm,1,length(tm));6 B* {& H3 R" R
s(i)={char(['第',int2str(i),'次合成,平台高度为',num2str(nd_min),'
, {7 D: Y2 I& g" [1 M# V; V) E时的分类结果为:',int2str(tm)])};
8 u6 v/ v9 u5 g8 D1 U5 g%上面大括号{}代表建立数组+ E( ^. C1 O3 C9 {, Q/ c
nd(find(nd==nd_min))=[];, `( [# x" v: L+ v0 o6 q
if length(nd)==0! X# _' t: M, |- C" e- d* o
break5 k+ k1 h# {8 a/ O" R5 `8 z
end
+ Q* \6 t  F+ y) r6 Kend
7 ]. y  \# N: V0 f( f0 t5 xs(  X' R1 x5 s/ e/ `) U  u
或者使用MATLAB统计工具箱的相关命令,编写如下程序:3 i4 X2 \! W. e6 }! H
clc,clear# v% Q$ e6 I+ c; `6 O5 `
a=[1,0;1,1;3,2;4,3;2,5];
2 m: D5 ?$ g8 E) U+ Ky=pdist(a,'cityblock');yc=squareform(y)
5 f, x1 {* x" Hz=linkage(y)
  |0 ~9 G/ s, V- A6 }) B1 D[h,t]=dendrogram(z)
3 I+ c+ O( H) C3 M8 B5 i) J* N-450-( K/ C; z9 p0 H1 Q+ x8 A0 o/ H# E
MATLAB中相关命令的使用说明如下:
; O' C1 _$ u/ w% L2 o6 K1)pdist" A* p1 x7 w! J2 @/ c; l
Y=pdist(X)计算m× n矩阵X(被看作m个大小为n的向量)中两两对象间的欧氏( p4 N( {( k( w& J
距离。对于有m个对象组成的数据集,共有(m −1) ⋅m/ 2个两两对象组合。- m8 A" P* H% g( B+ n# V' M
输出Y是包含距离信息的长度为(m −1) ⋅m/ 2的向量。可用squareform函数将此向
* B8 y7 B# ?4 i! @0 T量转换为方阵,这样可使矩阵中的元素(i,j)对应原始数据集中对象i和j间的距离。
2 C+ ?) H  x3 N/ M* c& N$ u# a7 KY=pdist(X,’metric’)中用’metric’指定的方法计算矩阵X中对象间的距( k8 O- b. n7 p0 Q. n
离。’metric’可取表2中特征字符串值。! O; C. H7 ]8 K0 h" N5 S+ }
表2 ’metric’取值及含义0 z/ r* c7 \7 w2 b4 f
字符串 含 义
  l. A) Y$ Q7 \. m% q’Euclid’ 欧氏距离(缺省)" |; E: D3 F" R. E1 J
’SEuclid’ 标准欧氏距离5 M! N/ k; s: u# w  \, @9 S
’Mahal’ 马氏距离(Mahalanobis距离)
! Y* |4 V$ @$ F! d9 m* v; G’CityBlock’ 绝对值距离
  `% o( \% q8 Y- j0 }’Minkowski’ 闵氏距离(Minkowski距离)( u3 p! j1 E& I. ^+ L# k4 e' Y" M
Y=pdist(X,’minkowski’,p)用闵氏距离计算矩阵X中对象间的距离。P为闵氏距离
" m# a3 A/ w0 M$ p3 y计算用到的指数值,缺省为2。- j3 ~: C( z; C& t" W# E$ ]2 z
2)linkage# v: {3 C# O, P+ J( g/ P0 a. ?
Z=linkage(Y)使用最短距离算法生成具层次结构的聚类树。输入矩阵Y为pdist函数& ?% o, {" ]% f7 L6 _
输出的(m −1) ⋅m/ 2维距离行向量。
2 s" o/ ]# |9 U) e) J% L1 hZ=linkage(Y,’method’)使用由’method’指定的算法计算生成聚类0 |; p+ {# h. W7 h, E+ {
树。’method’可取表3中特征字符串值。# G8 ]/ c  F6 b* W# }
表3 ’method’取值及含义
  @* H; N) }* C" b- M7 R$ X* c8 G字符串 含 义# x+ P: J# Q# [5 Y' ?! z
’single’ 最短距离(缺省)+ `3 E2 t  a9 h% \6 q5 l# R: ]
’complete’ 最大距离6 n; T  O5 q1 m) h% J! s
’average’ 平均距离1 ^3 r: ^) f; B4 ~% r
’centroid’ 重心距离
$ b" x- R, L8 [' r8 y3 t& p’ward’ 离差平方和方法(Ward方法)4 ?1 Q; |* Q1 X* y) y- V9 o. h; e$ M
输出Z为包含聚类树信息的(m −1)×3矩阵。聚类树上的叶节点为原始数据集中的% j0 D8 ~$ F  A4 t
对象,由1到m 。它们是单元素的类,级别更高的类都由它们生成。对应于Z中行j 每
* A  F3 m2 w* m$ m1 k: I个新生成的类,其索引为m + j,其中m为初始叶节点的数量。
+ m  S& s! B5 _& S4 P+ M-451-
% u+ B: x/ u- I& E( s. I第1列和第2列,即Z(i,1:2)包含了被两两连接生成一个新类的所有对象的索引。生
& e. ?' d+ M6 p/ ?1 ]4 p/ ^成的新类索引为m + j。共有m −1个级别更高的类,它们对应于聚类树中的内部节点。
# n' y7 X7 N! R% \, `! j- G  e+ D' D第三列,Z(i,3)包含了相应的在类中的两两对象间的连接距离。
4 Y1 r! r$ r; P, F3)cluster( o  T/ U& N) g
T=cluster(Z,cutoff)从连接输出(linkage)中创建聚类。cutoff为定义cluster9 S& j5 D  Q$ v. }! V: F& a
函数如何生成聚类的阈值,其不同的值含义如表4所示。
6 P0 e2 Z, v1 x表4 cutoff取值及含义
  P9 g) {5 f3 g, Dcutoff取值 含 义4 o1 {7 O, W8 x, ^8 R$ `
0<cutoff<2
2 Z, q$ m' A) T* jcutoff作为不一致系数的阈值。不一致系数对聚类树中对象间的差
( L* _( M+ D; M异进行了量化。如果一个连接的不一致系数大于阈值,则cluster
* O7 L; K2 p* q7 b函数将其作为聚类分组的边界。& M0 x. b9 V0 X: Q
2<=cutoff cutoff作为包含在聚类树中的最大分类数
( W( S, V  j7 c0 J+ Y9 QT=cluster(Z,cutoff,depth,flag)从连接输出(linkage)中创建聚类。参数depth. _! y' ?8 d" z8 L, h4 j. p7 O
指定了聚类数中的层数,进行不一致系数计算时要用到。不一致系数将聚类树中两对象$ {1 c' C8 q+ F5 {& _+ C
的连接与相邻的连接进行比较。详细说明见函数inconsistent。当参数depth被指定时,
8 C4 V7 B" b/ Rcutoff通常作为不一致系数阈值。
8 B: a: a4 A1 o9 {/ U/ y+ P4 R参数flag重载参数cutoff的缺省含义。如flag为’inconsistent’,则cutoff作为
3 O3 ^% X9 W$ U& y不一致系数的阈值。如flag为’cluster’,则cutoff作为分类的最大数目。! J' m/ x0 Q5 G% k$ w
输出T为大小为m 的向量,它用数字对每个对象所属的类进行标识。为了找到包含
5 U5 u  N( [0 j) c0 r# [在类i中的来自原始数据集的对象,可用find(T==i)。  o+ F7 b4 B; c: n8 b5 Z4 I7 a
4)zsore(X)7 x1 s! n* B8 _- |$ y' P
对数据矩阵进行标准化处理,处理方式为, ^4 z5 x: H4 @! Z% r& @- Y6 T* m
j
8 I2 X  X- }  g4 _. ~ij j
  a9 h! ^1 g# C& `! v2 V' Z" ?1 X9 Xij s
% D3 z8 `6 b) ~x x6 r# z3 ~3 k$ R& R$ W
x
/ B4 p& k) I- J) v  j! A8 a5 s3 X2 f
~ =
0 E0 k$ ~3 B% Q0 B7 R其中矩阵ij m n X x × = ( ) 看作是m个大小为n的向量, j j x , s 是每一列的均值和标准差。
+ F7 R, E4 S, k8 ?5 q& I5)H=dendrogram(Z,P)
# i$ a: u( A, J+ d; ?0 V由linkage产生的数据矩阵Z画聚类树状图。P是结点数,默认值是30。4 f( g7 w: B3 G( }; |1 E( T' N; T
6)T=clusterdata(X,cutoff)
7 r8 h! y3 x/ M0 E7 w+ R将矩阵X的数据分类。X为m× n矩阵,被看作m个大小为n的向量。它与以下几个
0 B* Q, q, S2 m+ ~! X" ?命令等价:" c. p7 [% i* h' W8 ?: E6 q
Y=pdist(X,’euclid’)7 A. ?) l" r) ~/ c+ f
Z=linkage(Y,’single’)
& R& _/ c4 _9 ^T=cluster(Z,cutoff)  N! N+ o, Z3 I" v, h
7)squareform
: v; N5 a' M# ~$ {7 J将pdist的输出转换为方阵。
% A# R8 D* U1 t& v- i4 V: F1 ]2 U$ a-452-
1 r4 q* ?% e, u2 d8)cophenet' e7 D, l, A5 L( R; T' T0 n) T- k
c=cophenet(Z,Y) 计算相干系数,它是将Z中的距离信息(由linkage()函数产生)" D2 k, m2 x$ Z; S3 T# _/ X
和Y中的距离信息(由pdist())函数产生进行比较。Z为(m −1)×3矩阵,距离信息包/ w# `, h) O1 O& Q( p9 m7 O  A$ c
含在第三列。Y是(m −1) ⋅m/ 2维的行向量。! k. }% r: l: U0 I
例如,给定距离为Y的一组对象{1,2,&#1048610;,m},函数linkage()生成聚类树。cophenet()0 Q. ?3 V! v- t: ?4 Z9 I& \
函数用来度量这种分类的失真程度,即由分类所确定的结构与数据间的拟合程度。5 ]* u5 y4 O" M7 V7 _2 h- \! ]- G9 z
输出值c为相干系数。对于要求很高的解,该值的幅度应非常接近1。它也可用来比& j4 t/ \) f/ S2 I& i+ c3 ^  f
较两种由不同算法所生成的分类解。
8 u) m7 @8 _" ~5 SZ(:,3)和Y之间的相干系数定义为
4 L% L+ C4 I0 UΣ Σ! L9 |* i4 I& O3 R4 I
Σ0 H2 n% _( }; c8 A. i, [( t
< <% V* y  j3 U* {9 P" `& R
<
* {9 N# `. G1 L− −/ n5 L$ x9 E/ O2 ?
− −$ o9 a5 X+ s. Y) y; p  X, \9 P
=8 n* f( e/ C0 b/ d# y
i j
( R( P% f4 b6 ]ij
- N" R# O7 M2 }; r* K# {: Mi j
6 o5 Y6 _8 v& o) v4 Vij* h( a  @& Z& A; X* W2 o
i j7 j$ m% k( D2 [6 x7 B7 T# C
ij ij' D9 }4 m# Q. U$ G
y y z z; \8 z7 k. d! j  q
y y z z
5 u6 {1 U8 v! [- Sc
4 W% R% d0 |) T+ J) x, C# ]( )2 ( )2
; w8 ~2 _9 T; B( )( )
/ b' k) g9 C, ^3 H7 ]其中ij y 为Y中对象i 和j 间的距离; ij z 为Z(:,3)中对象i 和j 间的距离;y 和z 分别为Y8 b6 P  }; m* g
和Z(:,3)的平均距离。
! b, A, Q6 b1 W+ R: K9 y0 d7 S1.3 变量聚类法6 v/ x9 z% |+ O; m( B8 w
在实际工作中,变量聚类法的应用也是十分重要的。在系统分析或评估过程中,为9 p9 v9 _8 {" u
避免遗漏某些重要因素,往往在一开始选取指标时,尽可能多地考虑所有的相关因素。
* V2 P; y$ \9 B/ ^( c& Y; u) d/ o而这样做的结果,则是变量过多,变量间的相关度高,给系统分析与建模带来很大的不
: R& a( ]7 C" \! z9 N' Y3 ]1 r便。因此,人们常常希望能研究变量间的相似关系,按照变量的相似关系把它们聚合成
4 p2 }" O: k/ z  i, |若干类,进而找出影响系统的主要因素。$ K: J2 x7 i5 ]' z$ V1 P
1.3.1 变量相似性度量$ `2 c4 k$ ]) q& C3 i: q, x
在对变量进行聚类分析时,首先要确定变量的相似性度量,常用的变量相似性度量! d) r! x( h! Q5 X  A% L
有两种。; d; }$ l& M" U4 N% Q
1)相关系数5 X  i" F9 `# q% S( a2 h
记变量j x 的取值( , , , ) ( 1,2, , ) 1 2 x x x T Rn j m
$ N# W: |- a; Y0 Oj j &#1048610; nj ∈ = &#1048610; 。则可以用两变量j x 与k x
- O/ h+ s6 d; U: P( P4 t+ l( s9 P的样本相关系数作为它们的相似性度量
$ Y5 z3 z0 P1 e4 g5 |6 }6 u1 X& n2
% I% E+ f" n: Q0 k1
6 Y0 J, Z+ D8 p1 19 X6 n( }8 M  u8 J% s/ o
2 2
/ b4 j( G2 c1 P" @1 y6 o( p11 c  E9 W7 n/ ^+ u; E- @( M6 p
( ) ( )
/ ~- I8 D) A$ j( )( )
* {3 }( B$ _: f6 f# R/ D⎥⎦2 Q0 X. i% h! d, l# x

, B) P1 R  X1 I# h/ y& d⎢⎣
" V, h/ ]( ?% E# A6 h! l/ G  ?$ f
. j3 A  d) Y3 }$ G$ v' q8 b− −
) h% R0 {$ _& O. c4 d& s− −
) K1 G. c. @0 G=
1 F) d* H% g3 q- q% Q  S) P! p; OΣ Σ
+ c! Q3 `9 F7 B1 i( C' D- n: m  pΣ9 E8 Q! B6 g1 L! x( N
= =' Q- u; f7 D  }
=
1 x; c9 f' u" w' Z6 ]n7 c" |0 w: O: Y) R6 ^1 O4 e
i
  Z4 y" a1 J5 g6 w( ?* |8 [& ?n
0 ?8 m* [$ T: T6 O8 Z$ a, Z  ei
$ Z( j8 \3 d1 D$ ?ij j ik k* J! c: h7 P) q% X8 X# q; G
n
3 b' H5 Y& M7 N8 u4 a- i/ hi6 _& L4 q4 J" |+ s
ij j ik k
$ ^8 S. |$ i: F- U& hjk! s$ n. c1 s" o9 p# z, _5 b
x x x x( c/ l8 C/ [( i( e( B" ~
x x x x8 B4 @; b% a8 O
r , (10)% T  K4 \4 }0 D! }+ n+ ~/ C, j0 i
在对变量进行聚类分析时,利用相关系数矩阵是最多的。
( F! o" j' p! {0 L: M9 b3 T-453-: n" c! ^2 y+ P" ?! l% c# ~
2)夹角余弦3 e$ G5 J2 S, i; z: Z( N3 U7 {
也可以直接利用两变量j x 与k x 的夹角余弦jk r 来定义它们的相似性度量,有
- V. }! e  O7 U3 }27 e6 x% ~) k) c. ^. L* t5 n
12 A0 O. V# n! o* }% v$ V3 h
1
1 ?0 ]9 a& r' S( p25 d! r0 b; j9 b1 h) ]) Q
1
5 w- f) x+ q4 U  `( W2% f. `( F) G) j1 Z# t
1
# g% o/ k' l, f  R⎟⎠
4 Q& g/ o) W9 ~4 r& H  J" L2 K5 k- {$ H/ Y
⎜⎝
( k, v, X  E& X2 J3 ]! ^
4 K5 n+ `2 k% @, J2 }& s, {=
. O; F  N- G! d2 M" u" Y" n  dΣ Σ. f- ^( {6 X$ i4 b2 g
Σ- F( s$ p9 x, W# M1 D
= =
. w* m4 K) I" d' B=4 f: B2 b+ X  ?
n
, V3 O) K/ ~. y" Ui+ V$ u! b& R. P# ]
ik
+ t9 D  |5 X4 M( D0 @7 @( D" J) w+ `n2 J' z- d8 O' @
i
) h$ \0 B. k* I0 N1 cij1 t5 b( j* _8 z
n
1 v0 C+ R, J3 [5 a* D1 l4 r, ?i
. B4 v/ m/ p" eij ik/ J7 D- U  m5 s; k/ R
jk5 Z8 b  ?: b& T' u% Z  D: d
x x! U2 \$ `$ A  }% `. K  g' ]! l6 ^& `0 F
x x
" @% H: z, P' l& Or (11)* ^# z5 U6 o" R( Q! C
各种定义的相似度量均应具有以下两个性质:( z& U* o, \$ g7 O! M* t
a) ≤1 jk r ,对于一切j, k ;2 s2 s& N, a9 k
b) jk kj r = r ,对于一切j, k 。3 ~& V, K! z; a: e  E
jk r 越接近1, j x 与k x 越相关或越相似。jk r 越接近零, j x 与k x 的相似性越弱。$ G' W3 r0 ^2 |- E" \2 V7 P
1.3.2 变量聚类法6 B8 t# H8 l& [. X, y
类似于样本集合聚类分析中最常用的最短距离法、最长距离法等,变量聚类法采用
* L. s* Y: _* ]2 d* l2 }了与系统聚类法相同的思路和过程。在变量聚类问题中,常用的有最大系数法、最小系
6 b+ r) s% e" y  {数法等。- k- {- W3 d7 ?6 R6 \2 J
1)最大系数法
1 z& J6 g- x; z& t在最大系数法中,定义两类变量的距离为
' O, `3 e' }2 z" o( , ) max{ }
" M" P0 ?9 h- G20 c9 r; \& A  `& X2 S( G' q- n+ w
18 e- l! u6 b  |- }  m% W& p+ W2 x( ]; w
1 2 jk
7 i0 p( V  _5 D& hx G  Z5 g7 T1 N9 Y5 b5 D
x G# u9 I+ N- a+ p
R G G r! p4 M  c. w8 o% {& A7 H6 c8 w# S/ J
k
0 v( {. v; s: r( rj
1 g; A0 [0 M" n& f  i
- `: |8 j0 w* F" n6 k/ L2 F7 g1 R3 u/ O! x
= , (12)( _2 j& j& y, V  |& O3 i
这时, ( , ) 1 2 R G G 等于两类中最相似的两变量间的相似性度量值。& W, a: E! O2 O  \" z
2)最小系数法
9 ]. J: M' t, L4 B  T1 E在最小系数法中,定义两类变量的距离为
. T0 y+ N! C, H; }( , ) min{ }
0 \: f# g# v5 w9 R2' @/ O5 B/ V; @4 @. b! D1 d
1% J  i2 h& j! b" |9 O
1 2 jk! Z0 }2 T1 m" u' o, k. n
x G' `1 C+ P" {8 k( q2 Q
x G$ U% ]( {6 l* @3 {6 L
R G G r
5 x- ]- |. E$ ak
/ E. N2 C8 }! F4 e' q, Yj  x" m) Y$ e6 u2 A9 K4 q( c

9 T( I# t$ \& {: ?3 R( m! ?# ^0 x1 ]' o% f
= , (13)3 J" M0 Q# y+ s  \% E- Q
这时, ( , ) 1 2 R G G 等于两类中相似性最小的两个变量间的相似性度量值。& k- T3 _' S! z
例2 服装标准制定中的变量聚类法。
' ]. X7 t6 L6 ?. _  p8 i在服装标准制定中,对某地成年女子的各部位尺寸进行了统计,通过14个部位的测3 Y* ?' V, V7 o) R1 K
量资料,获得各因素之间的相关系数表(见表2)。
+ R, U8 o3 u) O) v( n* K3 j9 A9 G表5 成年女子各部位相关系数0 W8 g5 R0 Y1 p& r: T9 E, }" U
1 x 2 x 3 x, _: I+ `. h. |6 j
4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 x 13 x9 W3 z& b" o6 a; J7 V3 B
14 x$ H$ e% ?0 s' u' Z" H0 \
-454-% h. f; i& M2 q/ a  K2 }
1 x 17 C$ V8 @7 J3 s
2 x 0.366 1+ j+ E. {5 w: J/ Y
3 x 0.242 0.233 1
+ P4 r* l: a2 o2 O5 V4 x 0.28 0.194 0.59 1
! N) \- F1 V" T# o0 n9 y5 x 0.36 0.324 0.476 0.435 1) T- o9 X1 H! K; ^7 O
6 x 0.282 0.262 0.483 0.47 0.452 15 n# l4 y; F+ K  D" _
7 x 0.245 0.265 0.54 0.478 0.535 0.663 1
' D- a- W- G; n) Q* @) W8 x 0.448 0.345 0.452 0.404 0.431 0.322 0.266 1: y' d5 H0 k* b- d
9 x 0.486 0.367 0.365 0.357 0.429 0.283 0.287 0.82 1" R- z, Y+ ]  h. e+ N! o
10 x 0.648 0.662 0.216 0.032 0.429 0.283 0.263 0.527 0.547 1
( r- n0 y  p, I" G, G% ?11 x 0.689 0.671 0.243 0.313 0.43 0.302 0.294 0.52 0.558 0.957 1
, k4 B$ M1 H* j  ~7 c: q5 P! N12 x 0.486 0.636 0.174 0.243 0.375 0.296 0.255 0.403 0.417 0.857 0.852 18 B! Z- g) I1 h+ c
13 x 0.133 0.153 0.732 0.477 0.339 0.392 0.446 0.266 0.241 0.054 0.099 0.055 1
6 N2 v4 h. X7 ~. @# e# E14 x 0.376 0.252 0.676 0.581 0.441 0.447 0.44 0.424 0.372 0.363 0.376 0.321 0.627 1& f" F& |: e( T0 j2 t/ p& G
其中− 1 x 上体长, − 2 x 手臂长, − 3 x 胸围, − 4 x 颈围, − 5 x 总肩围, − 6 x 总胸宽, − 7 x4 O* o, I  s/ V1 r) N2 h
后背宽, − 8 x 前腰节高, − 9 x 后腰节高, − 10 x 总体长, − 11 x 身高, − 12 x 下体长, − 13 x+ @+ [4 k$ {! f% L
腰围, − 14 x 臀围。用最大系数法对这14个变量进行系统聚类,分类结果如图3。1 [- S! B6 p" Q4 c. J/ D% y3 J
10 11 12 2 1 8 9 3 13 14 4 5 6 7
' m& E: V. s- L* K0
9 S/ E4 h4 w% o6 a/ N( w  S: M0.12 g5 D: }: G8 X' K
0.2
8 g! V; R2 u, P5 q) A( U0.3
  B& X  A  t' W0 z$ o! l- p0.4
& _/ r2 Z0 `/ K, o* k/ p0.5  t# s! ^5 r: W+ g% L1 M% ~; \
0.64 G) p, k! N, w0 E$ B- _, k
0.7
$ i. W# m" T8 Y4 T# H0.8* o! k9 X  u/ K- Z. j, l0 Q
0.9
  T% ^& v  ]. t0 z) d) ^- C- w) s1, r/ I" b! a4 Q
图3 成年女子14个部位指标的聚类图7 E1 v) K( g2 P) t, S! E
-455-
, c7 s/ {5 }: v计算的MATLAB程序如下:5 P  q* ?' d6 y
%把下三角相关系数矩阵粘贴到纯文本文件ch.txt中1 r4 S/ T- _6 X; p; q9 o
a=textread('ch.txt');
( a$ _' z- v5 L: rfor i=1:14: k0 n$ N4 s3 L' ~( p
a(i,i)=0;
. b4 x* Q1 @; _& D* \end, u# e- _+ j" i; |# ?% Y$ X
b=a(;b=nonzeros(b);b=b';b=1-b;
. r" _% D+ L3 a. _4 u) c% L# Vz=linkage(b,'complete');3 G  r# g& Z( C8 i+ b
y=cluster(z,2)4 P1 v  x. \# S, r4 z3 U* d8 N9 I
dendrogram(z)
* L: X6 Z  y( A7 ]! n4 m. z4 s% xind1=find(y==2);ind1=ind1'+ m- T, \; e5 X: z
ind2=find(y==1);ind2=ind2'
. m; t  ]5 W, ~2 P. ]可以看出,人体的变量大体可以分为两类:一类反映人高、矮的变量,如上体长,+ @( M1 N; a; q  e
手臂长,前腰节高,后腰节高,总体长,身高,下体长;另一类是反映人体胖瘦的变量,7 {+ o0 W: A' @9 J1 V$ @4 y- I
如胸围,颈围,总肩围,总胸宽,后背宽,腰围,臀围。
# r4 w& @9 @/ U. e: `3 e§2 聚类分析案例—我国各地区普通高等教育发展状况分析* _9 f/ D7 d, R
聚类分析又称群分析,是对多个样本(或指标)进行定量分类的一种多元统计分析) T; F  L" `2 \0 L
方法。对样本进行分类称为Q型聚类分析,对指标进行分类称为R型聚类分析。本案例
( }- R, c+ H" v5 C- N运用Q型和R型聚类分析方法对我国各地区普通高等教育的发展状况进行分析。
' h0 j3 R- W' Y. g* Q1.案例研究背景
9 ^9 N, s# s( s5 a3 o近年来,我国普通高等教育得到了迅速发展,为国家培养了大批人才。但由于我国" l( o% C( {- M6 U
各地区经济发展水平不均衡,加之高等院校原有布局使各地区高等教育发展的起点不一4 I/ |. h) D  g6 ]
致,因而各地区普通高等教育的发展水平存在一定的差异, 不同的地区具有不同的特
! o/ v+ ~# e1 l8 ?' _点。对我国各地区普通高等教育的发展状况进行聚类分析,明确各类地区普通高等教育# S. s7 t  U9 w7 v1 J2 ?
发展状况的差异与特点,有利于管理和决策部门从宏观上把握我国普通高等教育的整体+ G" U4 P, Q8 N; {8 G7 U( e, m
发展现状,分类制定相关政策,更好的指导和规划我国高教事业的整体健康发展。2 \% c  ]. a7 C! i
2.案例研究过程: T+ |: }  ?: _/ l5 {
(1)建立综合评价指标体系
8 N. b5 `$ P2 ]/ k高等教育是依赖高等院校进行的,高等教育的发展状况主要体现在高等院校的相, `% a, A# [- E2 `3 n1 f) a4 F
关方面。遵循可比性原则,从高等教育的五个方面选取十项评价指标,具体如图4。3 R* C1 c; J0 M0 |
(2)数据资料" Z7 m$ c$ V  s
指标的原始数据取自《中国统计年鉴,1995》和《中国教育统计年鉴,1995》除以6 f/ n& H0 \& Q
各地区相应的人口数得到十项指标值见表6。其中: 1 x 为每百万人口高等院校数; 2 x 为+ \( U" ~- ~) f- d& v* o; l
每十万人口高等院校毕业生数; 3 x 为每十万人口高等院校招生数; 4 x 为每十万人口高3 _( M1 l# }8 b7 a' [' r
等院校在校生数; 5 x 为每十万人口高等院校教职工数; 6 x 为每十万人口高等院校专职5 i  [" E% o" f
-456-
' r: P$ A: p3 ?. [% e/ l% [2 y* r9 l教师数; 7 x 为高级职称占专职教师的比例; 8 x 为平均每所高等院校的在校生数; 9 x 为
. R2 w2 R' m, s" c+ F; c国家财政预算内普通高教经费占国内生产总值的比重; 10 x 为生均教育经费。
, w( O. B6 U+ ]$ j+ c& @9 Y/ T# T% y图4 高等教育的十项评价指标- e1 R. U3 A& ?  w* |4 ~
表6 我国各地区普通高等教育发展状况数据/ s4 Z" S+ T( P- Y5 Z  W
地区
% K5 u5 N1 @, k6 x- x' _7 @5 U1 x 2 x 3 x
: L& G6 E: @: g4 l4 x 5 x 6 x 7 x 8 x 9 x 10 x
) m2 |: o) u5 z! N* j8 ?: K& ^' K北京 5.96 310 461 1557 931 319 44.36 2615 2.20 13631
. T7 A4 ]3 H% f8 ?# w  q$ I4 v. p! }上海 3.39 234 308 1035 498 161 35.02 3052 .90 126651 r+ ?2 [8 A  V+ ]. u  n# ?
天津 2.35 157 229 713 295 109 38.40 3031 .86 93854 w( |3 u+ H8 p' p1 P% M  U
陕西 1.35 81 111 364 150 58 30.45 2699 1.22 7881
. W1 F8 }5 C2 C7 `2 o' D$ H辽宁 1.50 88 128 421 144 58 34.30 2808 .54 7733
- p: [' j& a; ^6 W% |吉林 1.67 86 120 370 153 58 33.53 2215 .76 7480
+ E+ V$ A# U& L7 H* ~8 h5 B1 l黑龙江 1.17 63 93 296 117 44 35.22 2528 .58 8570
; b. Z5 `( {  e: W湖北 1.05 67 92 297 115 43 32.89 2835 .66 7262
) }& u$ }: V) z- R4 f江苏 .95 64 94 287 102 39 31.54 3008 .39 7786
% x# o$ p- D- A) d$ H0 Q广东 .69 39 71 205 61 24 34.50 2988 .37 11355
; q, t2 |/ d* I5 I6 T7 G# ~' n四川 .56 40 57 177 61 23 32.62 3149 .55 7693" ]/ k+ a3 `2 |9 `
山东 .57 58 64 181 57 22 32.95 3202 .28 6805
! Z+ \  h* D7 j8 V2 r' o甘肃 .71 42 62 190 66 26 28.13 2657 .73 72820 G7 k" t9 }& Z+ H0 j1 @* P6 ?
湖南 .74 42 61 194 61 24 33.06 2618 .47 6477- ?* O7 X' B9 u( B
浙江 .86 42 71 204 66 26 29.94 2363 .25 7704
9 ~0 R, S3 d0 R: B新疆 1.29 47 73 265 114 46 25.93 2060 .37 57193 ?6 ^  B6 x$ d! A* N. C) U  L
福建 1.04 53 71 218 63 26 29.01 2099 .29 7106) x& G+ I0 M2 @4 K: r
山西 .85 53 65 218 76 30 25.63 2555 .43 5580
5 c5 j2 v- F( c- a河北 .81 43 66 188 61 23 29.82 2313 .31 5704
7 H  F$ E, z2 m2 o- f5 _-457-/ L1 i6 L7 S" E  ?+ N  X  g
安徽 .59 35 47 146 46 20 32.83 2488 .33 56286 e% L& L2 ^& m5 B% n' f$ [
云南 .66 36 40 130 44 19 28.55 1974 .48 91062 d* S3 F( y5 g
江西 .77 43 63 194 67 23 28.81 2515 .34 4085& M9 F+ S: i6 i! Z$ ?8 V1 Z. P
海南 .70 33 51 165 47 18 27.34 2344 .28 7928
; r( W: q' j) X7 d内蒙古 .84 43 48 171 65 29 27.65 2032 .32 55818 Q& e2 f% i9 y2 n' k5 _
西藏 1.69 26 45 137 75 33 12.10 810 1.00 141996 q& w1 ]7 r* q
河南 .55 32 46 130 44 17 28.41 2341 .30 5714
, ?! f  {* j+ |! X) c广西 .60 28 43 129 39 17 31.93 2146 .24 5139
; X, s( F+ d! B8 y# d8 l& |$ W% T8 `宁夏 1.39 48 62 208 77 34 22.70 1500 .42 5377
2 h( P8 o+ B7 y' E贵州 .64 23 32 93 37 16 28.12 1469 .34 5415
- A; I/ n, V8 u  ~4 B青海 1.48 38 46 151 63 30 17.87 1024 .38 7368
# R5 ~! X1 N$ {& y; m  q  }5 _(3)R型聚类分析
; |* A. Z4 k, ^定性考察反映高等教育发展状况的五个方面十项评价指标,可以看出,某些指标之
/ Y) m+ Z+ d4 A$ ^间可能存在较强的相关性。比如每十万人口高等院校毕业生数、每十万人口高等院校招
2 @- Y7 |/ S$ W) S7 J& i7 _: s生数与每十万人口高等院校在校生数之间可能存在较强的相关性, 每十万人口高等院; r8 c: c9 r/ N- u3 J+ }* |) O
校教职工数和每十万人口高等院校专职教师数之间可能存在较强的相关性。为了验证这
9 z4 ]1 k/ S0 j. Y( l; y$ k种想法,运用MATLAB软件计算十个指标之间的相关系数,相关系数矩阵如表6所示。
: Z8 C, n, ]* G. T% s8 d( N5 A表6 相关系数矩阵
: L' \) ~$ h$ h6 S3 y1 x 2 x 3 x# e0 O/ u* g4 V0 S' M
4 x 5 x 6 x 7 x 8 x 9 x 10 x; ?3 H5 f% l/ n/ h# b0 \9 ^
1 x 1.0000 0.9434 0.9528 0.9591 0.9746 0.9798 0.4065 0.0663 0.8680 0.6609
- r1 I7 U3 _4 p) Q$ n" v+ O2 x 0.9434 1.0000 0.9946 0.9946 0.9743 0.9702 0.6136 0.3500 0.8039 0.5998
0 l3 o1 X  u. I: a3 x 0.9528 0.9946 1.0000 0.9987 0.9831 0.9807 0.6261 0.3445 0.8231 0.6171
: W5 ~- ]9 d  U0 _0 k4 x 0.9591 0.9946 0.9987 1.0000 0.9878 0.9856 0.6096 0.3256 0.8276 0.6124
! S, a' a( j% C% \# o. V5 x 0.9746 0.9743 0.9831 0.9878 1.0000 0.9986 0.5599 0.2411 0.8590 0.6174
! s" {$ R: X6 F4 L4 Y, d6 x 0.9798 0.9702 0.9807 0.9856 0.9986 1.0000 0.5500 0.2222 0.8691 0.6164
% ~8 w: N3 M" u0 s2 X- i4 _7 x 0.4065 0.6136 0.6261 0.6096 0.5599 0.5500 1.0000 0.7789 0.3655 0.1510
. e, _8 c4 N7 w, P; G% s) N6 H) S8 x 0.0663 0.3500 0.3445 0.3256 0.2411 0.2222 0.7789 1.0000 0.1122 0.0482
) _. v+ a) y8 A+ R( j0 k9 x 0.8680 0.8039 0.8231 0.8276 0.8590 0.8691 0.3655 0.1122 1.0000 0.6833+ w+ K8 T8 Q) f) j& J. E
10 x 0.6609 0.5998 0.6171 0.6124 0.6174 0.6164 0.1510 0.0482 0.6833 1.0000% z* s- S  {: l' g. K8 t4 f8 m
可以看出某些指标之间确实存在很强的相关性,因此可以考虑从这些指标中选取
0 |; f4 b7 Z/ B$ M  ?& c" C-458-- V5 [8 {& a4 g4 c/ P) ^
几个有代表性的指标进行聚类分析。为此,把十个指标根据其相关性进行R型聚类,再
' L* C9 S- Q( {6 i: U* D* {从每个类中选取代表性的指标。首先对每个变量(指标)的数据分别进行标准化处理。
! r0 M# o+ {/ ~2 _/ P变量间相近性度量采用相关系数,类间相近性度量的计算选用类平均法。聚类树型图见
8 a& X, v2 d4 I0 Z( u图5。
/ l3 ?1 t) U! t3 4 2 5 6 1 9 10 7 8! `. ^% ^0 a; b
0
7 ~  l3 p, D- f) k2 y# V0.054 y$ W; L3 Q: N' N; v5 D
0.1
& O1 T6 O* J/ J/ x% V0.15
& R5 `, m8 z( O0.27 Z7 O$ E) {" U7 d6 ~
0.25! C1 u0 t) V0 a: p7 t+ c3 m
0.3
, ?' R6 B$ ^: b/ y0.35$ i4 ^, |0 Z" @' ]: i; w/ {
图5 指标聚类树型图
" F! m7 u$ h$ X计算的 MATLAB 程序如下:
* E/ q1 S0 X9 ?1 Tload gj.txt %把原始数据保存在纯文本文件gj.txt 中
6 v5 y4 G! t' }! X& C3 b5 G. Vr=corrcoef(gj); %计算相关系数矩阵
. a4 C5 M+ B! {3 Y/ j, ~d=tril(r); %取出相关系数矩阵的下三角元素
% P5 \: n" _" k. Vfor i=1:10 %对角线元素化成零
! z  y+ d' i9 U5 C5 Z+ q4 {' }% ^7 zd(i,i)=0;
; C& f% X% f1 X7 `" N  N0 @% M) P* Iend
; O' v0 z3 M! Md=d(;
6 p" l2 J1 j0 Q' Kd=nonzeros(d); %取出非零元素5 x6 D3 B, k# N! A+ x
d=d';d=1-d;. f; Z& T: h6 u8 }; F6 y) V
z=linkage(d)
( Q) X; u5 y0 H4 vdendrogram(z)/ D$ R5 c" l' w) M3 j
从聚类图中可以看出,每十万人口高等院校招生数、每十万人口高等院校在校生数、# [9 ?" R5 T3 F% z, i% w
每十万人口高等院校教职工数、每十万人口高等院校专职教师数、每十万人口高等院校
: \) q- i) i* t  O' v: n' a毕业生数5 个指标之间有较大的相关性,最先被聚到一起。如果将10 个指标分为6 类,
, R% f5 L/ r9 F" d9 o其它5 个指标各自为一类。这样就从十个指标中选定了六个分析指标:- t8 i$ u% f8 z2 \$ }
1 x :每百万人口高等院校数;* _& R8 }. @( K# f" r6 S7 a' K
2 x :每十万人口高等院校毕业生数;$ Y/ O  e- _' Q. r+ P6 O
7 x :高级职称占专职教师的比例;
+ m4 K$ Y+ S% q* W( i" a0 S2 T" b- P8 x :平均每所高等院校的在校生数;8 O  u! d- P  n8 ^
-459-3 ^+ u0 |$ j& y; V, O  H, L3 q( f
9 x :国家财政预算内普通高教经费占国内生产总值的比重;
. _4 o- f/ X1 \5 Y+ S% _: _10 x :生均教育经费。* I6 h7 {4 M: q1 r
可以根据这六个指标对30 个地区进行聚类分析。
# ~0 ]# N" \* H$ V0 B(4)Q 型聚类分析6 v$ I. ]; t( _9 g
根据这六个指标对30个地区进行聚类分析。首先对每个变量的数据分别进行标准化8 C: K6 Z" v  M0 x+ F/ X8 [
处理,样本间相近性采用欧氏距离度量,类间距离的计算选用类平均法。聚类树型图见
# P* Q6 R: |* O2 @1 E* O3 h" A图6。
: u' e3 f0 B- U+ z19 26 27 22 14 20 16 24 18 15 23 17 21 5 8 7 6 9 12 11 13 10 4 28 29 30 2 3 25 1
0 v" y7 E! s+ L+ ^4 _0
3 f/ e* c$ ^: d* |! e5 B2 V1
' K* ]! G/ J5 T  H2
$ m7 T- {+ F- a3 J1 l3
% Y* [' }% c0 U+ b1 C3 o5 z4
" S$ J. t, R0 V5 B! W+ }  S5% r( j6 \( v, V. W( \0 @4 J/ s8 E
6
: E' k  x+ R6 M( M3 k7) }/ x) z" v% ?
8
1 K, y, P9 g; G* ?' H0 T) V' G$ `图6 各地区聚类树型图
' J5 L. ~, ?; D- [4 w- x计算的MATLAB程序如下:' S$ n  K/ T/ e; ]
load gj.txt %把原始数据保存在纯文本文件gj.txt中/ B5 {  f8 z6 B1 N) i+ O
gj(:,3:6)=[];
' u- D, D6 R  e7 ^gj=zscore(gj);
6 @/ L- L1 e. D( G3 S/ ^y=pdist(gj);
5 I! h6 T! F6 zz=linkage(y)
2 A4 b; \# [6 {5 Z) J/ j( mdendrogram(z,'average')
. i& B7 _2 y$ K; U$ l9 p4.案例研究结果* _' R  M$ m7 F# A: G! {* y/ g
各地区高等教育发展状况存在较大的差异,高教资源的地区分布很不均衡。如果根
" p9 n6 A  U3 F7 o据各地区高等教育发展状况把30 个地区分为三类,结果为:4 _& y4 t5 ~  E
第一类:北京;第二类:西藏;第三类:其他地区。
: S, U8 @, @2 Z0 C! y$ J' i如果根据各地区高等教育发展状况把30个地区分为四类,结果为:
. K+ E! H- |6 p% z2 }第一类:北京;第二类:西藏;第三类:上海天津;第四类:其他地区。4 j8 y& l- Y7 W$ ?8 ^  q, A+ |
如果根据各地区高等教育发展状况把30个地区分为五类,结果为:
/ P4 C: n, `+ B0 ]+ u4 m: f第一类:北京;第二类:西藏;第三类:上海天津;第四类:宁夏、贵州、青海;4 z4 N* K, c, f- G  X
第五类:其他地区。. B; _& B2 Z9 M# U6 g# y9 B7 r
从以上结果结合聚类图中的合并距离可以看出,北京的高等教育状况与其它地区相' t- T6 a' m) C' f  T
比有非常大的不同,主要表现在每百万人口的学校数量和每十万人口的学生数量以及国  n& B+ ^3 T& i$ F
-460-
作者: shaox    时间: 2012-8-1 19:46
望尘莫及啊~~,我的聚类分析学的一团糟
作者: 变形金刚不流泪    时间: 2013-7-10 20:41

作者: happi    时间: 2013-8-9 17:12
那如果数据特别多,要怎么聚类?
作者: happi    时间: 2013-8-9 17:13
聚类分析跟主成分分析有什么不一样?
作者: 相约陪伴一生    时间: 2013-8-11 21:32
能分享下课件吗?




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5