数学建模社区-数学中国

标题: 模糊聚类分析方法 [打印本页]

作者: 浅夏110    时间: 2020-5-26 15:29
标题: 模糊聚类分析方法
在工程技术和经济管理中,常常需要对某些指标按照一定的标准(相似的程度或亲 疏关系等)进行分类处理。例如,根据生物的某些性态对其进行分类,根据空气的性质 对空气质量进行分类,以及工业上对产品质量的分类、工程上对工程规模的分类、图像 识别中对图形的分类、地质学中对土壤的分类、水资源中的水质分类等等。这些对客观 事物按一定的标准进行分类的数学方法称为聚类分析,它是多元统计“物以聚类”的一种分类方法。然而,在科学技术、经济管理中有许多事物的类与类之间并无清晰的划分, 边界具有模糊性,它们之间的关系更多的是模糊关系。对于这类事物的分类,一般用模糊数学方法、我们把应用模糊数学方法进行的聚类分析,称为模糊聚类分析。9 z: R5 b& ~. R3 L# s5 d

) R1 k, w  P1 s1 预备知识
/ f4 P! |3 I5 Q% p" f2 z# `1.1 模糊等价矩阵
, l5 u' a. A; R$ K# ~+ V
) X6 y1 a- D6 ^8 @( W8 ?8 f# z! [% q: Y2 g- I7 G- B/ [
' }- D5 k; ?+ J' q

9 v: x/ L5 B( m) W1 @* }n 阶等价布尔矩阵
# n% |8 g. Z7 z: w0 \$ v7 _: i/ Q8 C
4 }/ C$ w% `7 B/ ~% L
: k# b- n* _) Q( ?- w. L3 b+ g3 [9 f3 g' ^0 _; i
模糊分类, \) X* V9 u6 Q& P# D
% a9 W; W2 C; W9 M1 X0 G9 P

* R' z, e! T; G$ [0 R  ^& N& ?$ Q+ j
7 Z' _3 N( C' K- c5 P
5 }2 c. U( k" {( _; J8 @6 C2 Z
6 b- N$ j; O6 E/ e1 E' i6 C0 B# l- n4 Z8 o

2 k! r5 |. Y5 L+ |$ d- e
. V8 [, B/ W- Y/ N$ p: l  n, s! z5 z" z/ }& B

/ _/ B0 A3 u! \  l+ C7 g1.2 模糊相似矩阵5 D5 ]% V- A! g4 T$ Y& Y
! z  `+ D* t, Y/ N# I/ y1 _

& D% [, H0 l; \9 \& i* v7 a! ~' N7 a0 A2 C8 b  a
* z( c$ n6 f8 Z7 q, }7 [

# `; `9 u1 W* }+ q' [* L& I6 Z% d# x7 R1 J, C. H

+ U7 ]; v; y; Q# x
4 }, }1 Z' J# ~+ ]- J$ K7 h4 I2 模糊聚类分析法的基本步骤2 F1 _2 M/ N( e
Step1: 数据标准化
0 L' o+ C4 l3 C  [9 p) `+ [
, U; ?9 t9 X4 M: y' o  _$ P(1) 获取数据
9 P! O! ]: M: n( h
9 _: K- D. W* i( e9 g4 C- J  l* c% q
0 E' C; P5 J2 B7 X+ _$ c' ^+ q$ u4 Q3 L) Z
(2) 数据的标准化处理0 w2 J% L1 V% G
在实际问题中,不同的数据可能有不同的性质和不同的量纲,为了使原始数据能够 适合模糊聚类的要求,需要将原始数据矩阵 A 作标准化处理,即通过适当的数据变换,将其转化为模糊矩阵。常用的方法有以下两种:
- b5 B. r/ {5 ^4 M
% k9 r9 B! M0 U; C0 X3 H; H4 ]4 G① 平移—标准差变换7 Z$ i$ W% W- X' [3 P1 ~! @  H. e
8 y, |! X- W4 ~8 |6 L
  E. E, C4 B+ N! p( z
5 |- `  g) M: V0 v0 W
② 平移—极差变换, Y' k  a' R: H! A

5 I3 C3 [9 U) W3 ~4 u% |2 [2 ]- b  J1 W! `

" Q5 C2 e' `# \Step2: 建立模糊相似矩阵9 z& |. G- n, [- D
6 H! q# J) s$ E1 v& D

0 T- T( }* E# Y; M) T- G" e
: ?( L1 ?# @3 A- _7 |; @0 X(1) 数量积法
# }. E% }* c$ I" W1 A, C( G8 `/ ~" ?
8 k; {! m$ S$ L6 j" H5 \
! i6 t9 ?4 ~% O+ R7 c8 h) ^2 @
, X4 k) E# n% P& T1 Z
(2) 夹角余弦法
* Q; t7 T$ ^! K: O
1 A: x( y" @1 L; k6 Q2 q
5 m9 y  Q, P( Q' ]/ I8 |9 c9 x: H; X+ H- i
(3) 相关系数法4 j& j, P/ [6 w
3 P% G0 A6 s7 p: u" L
" H) x7 G, F/ {

. S' [7 F; m: A3 R3 ?- m(4) 指数相似系数法5 Y  _8 H- p% f

4 e4 K/ `3 T  A! g5 r9 u0 J- S" f- C6 l4 G" P# W

( p1 B% R/ _3 s$ r# u/ u(5) 最大最小值法! @8 Q9 X: M# I; a! L" G2 |0 C
                  式中 ∧ 为取小运算min,∨ 代表取大运算max* Y+ i& n3 _( R8 s, |
3 z9 h5 C7 ], T& \& I) n

0 l1 q0 M8 B7 F' n3 E7 u& c/ Q# k  Z/ [: \  |" j# [
(6) 算术平均值法1 P5 T/ l* j+ I# r/ ]! x+ J! v

; t- N# N# c% Z* g* H# o+ u9 @3 W) `# ^
/ P* T6 _5 q8 k6 ~. e6 [" ~; s/ ?- H/ \7 F$ ]$ l) n1 B+ Y
(7) 几何平均值法
5 p, i8 ~0 ?' a% R
! W/ s# Q4 k% X: C* o5 a/ f4 w  {1 H2 y
( e8 Y/ ~  X, T* x/ Y- F: `. ?# \
(8) 绝对值倒数法5 E4 Y" B2 D# h" C4 ?/ ?# b

- }/ C1 ~* x9 g% T, D& s$ x1 ]# g& F4 O; `' W  F) f
6 Y- u1 t' u3 F( T1 E
(9) 绝对值指数法
3 ^+ ^( E# y  t) n8 I& Z
& g0 A1 _# B) I  n6 h) N5 ]4 y
/ \  W( [3 r: Y
$ {4 M0 S# ?/ _+ s(10) 海明距离法
' t) A5 ~( A7 Y' a( U* n
1 C0 P! w( u$ c0 Y; n7 S
% J. |6 A3 Q; N+ L4 L1 m/ S& {, E3 k( c4 e( R- v+ w
(11) 欧氏距离法1 Y2 T" S, Z6 _3 r' u$ Z" g

, Q$ A9 X3 ]9 ^6 E6 i
& y% `* }% V* `9 D! i
" @5 E8 c+ `/ o. c; h(12) 切比雪夫距离法( W; A6 P: S  _
4 l  _+ o% U& V  G; H" I

% T1 M1 Q- h# N, F1 T" c) A; t4 J. r* U4 W4 y
(13) 主观评分法
" N$ W+ A, Z9 q: `
6 V/ D5 X+ p- K9 O8 @! a; s4 A- k% M; t6 i: D* r7 ~

7 F' Y9 E% C0 _4 c. Z2 S9 sStep3: 聚类
7 C! ^! K! Z- y8 R5 T3 f所谓聚类方法就是依据模糊矩阵将所研究的对象进行分类的方法。对于不同的置信 水平λ ∈[0,1],可以得到不同的分类结果,从而形成动态聚类图。常用的方法如下:5 t3 s/ I4 n8 p# l& X
8 I7 ~' ~" t+ H6 o8 z4 m. I
(1) 传递闭包法
! _: L; S8 K5 h' D从 Step2 中求出的模糊相似矩阵 R 出发,来构造一个模糊等价矩阵  。其方法就 是用平方法求出 R 的传递闭包t(R) ,则  t(R) =  ;然后,由大到小取一组λ ∈[0,1] , 确定相应的λ 截矩阵,则可以将其分类,同时也可以构成动态聚类图。  Y0 L. |; V( t7 z, P9 w

& I# X" i# r$ z3 m, W(2) 布尔矩阵法
$ P' N; {* r' E5 h; F
6 ]9 `* T9 ^" h/ g/ o( M, M2 s" N5 ], c$ m; x6 q. w# u

4 Z! e- ^. S5 ~$ o: N6 ?2 t& a+ {5 T0 z: W) w
6 X4 \5 k# Y" z) z% G
(3) 直接聚类法
* Y$ P% i# @* X4 P9 D: ~此方法是直接由模糊相似矩阵求出聚类图的方法,具体步骤如下:" n! x5 i3 l4 c0 q3 z1 ?5 T  K

8 q: C& F- A$ b9 J3 k+ H& X7 }6 Y. m8 f$ r

, z6 c9 g$ @& h" A3 c3 模糊聚类分析应用案例: q/ w) g6 m9 ]8 O( g. d4 d4 a! s2 I, f- h
例 15 某地区内有 12 个气象观测站,10 年来各站测得的年降水量如表 3 所示。 为了节省开支,想要适当减少气象观测站,试问减少哪些观察站可以使所得到的降水量 信息仍然足够大?
2 G* ]) v/ p" H! x2 l; P2 M. ~1 f) i# F; Q1 R3 j

; r3 m# R" U! C, N, {8 ]$ p% B7 P4 I2 n2 Y6 P8 Q; T! v4 {" s; M7 I
4 \" Z. l0 `* x5 [

5 i  l3 l% ^* }. l* X2 a; \. ~4 r! Z解 我们把 12 个气象观测站的观测值看成 12 个向量组,由于本题只给出了 10 年 的观测数据,根据线性代数的理论可知,若向量组所含向量的个数大于向量的维数,则 该向量组必然线性相关。于是只要求出该向量组的秩就可确定该向量组的最大无关组所 含向量的个数,也就是需保留的气象观测站的个数。由于向量组中的其余向量都可由极 大线性无关组线性表示,因此,可以使所得到的降水信息量足够大。
1 J# o1 e- q: Q: T+ b# P2 t4 a' E3 G! K+ x- i6 b( N) H

; e, Y% T! w) S$ `
% q' v: I2 P+ B: f+ p% w- z. _到目前为止,问题似乎已经完全解决了,可其实不然,因为如果上述观测站的数 据不是 10 年,而是超过 12 年,则此时向量的维数大于向量组所含的向量个数,这样的 向量组未必线性相关。故上述的解法不具有一般性,下面我们考虑一般的解法,首先, 我们利用已有的 12 个气象观测站的数据进行模糊聚类分析,最后确定从哪几类中去掉 几个观测站。* {/ r0 l3 A" r* k1 c  o; y
* v4 F; l5 p7 A! E" l$ T* Q. k
(1)建立模糊集合! G0 Z7 B, `  e4 }

: \& b2 Z, n3 K" p: |4 @
2 }  T* M' J. \2 U7 B! o, G
0 J, Q; X3 e" ]
# ?! @7 Q) [% {( p- @. o) y% W  U
. `$ D3 n& D8 ^1 A/ E8 y& _2 S
1 @  |2 l& o) g$ e- w$ U(2)利用格贴近度建立模糊相似矩阵
3 s! |6 p) m& m1 `  \' S- q
, V" @; G" m) y! q7 N. s& R+ k# P; ^/ i* B
- p5 v  u; j' O! Q
(3)求 R 的传递闭包" ]; N& a9 k$ \" c5 R% c

. \: E9 B+ p$ C% ], X% f  j" v, x3 X* K1 ^
7 p  k+ z! P9 C6 k5 S0 u( ]
其余观测站属于中间水平。
' e- X/ ?9 D+ w9 F) m8 B# O  V5 C/ n. B' w2 N3 P  P5 N
(4)选择保留观测站的准则
+ V2 L, i) ^  I! \: m+ l显然,去掉的观测站越少,则保留的信息量越大。为此,我们考虑在去掉的观测 站数目确定的条件下,使得信息量最大的准则。由于该地区的观测站分为 4 类,且第 4 类只含有一个观测站,因此,我们从前 3 类中各去掉一个观测站,我们的准则如下:
# B; C9 `, p, |8 B! B) A0 I
1 d2 Y3 p9 o0 w
; C, y, H  A6 h5 q
2 u, ?) O; j3 t; `( Z$ ]: d. b2 z& y4 |. Y% \/ {( @+ A9 V, M

& A- H8 V7 G0 ?. \$ K5 a# L: k  x; V: R4 e0 M2 @3 f4 b

2 V% ^% M3 J2 ?9 ^0 ]% i(5)求解的 MATLAB 程序如下:
& m1 p, Z5 V( G  b) l4 P. k; g. w  ]1 ~! l& P3 p( D
i)求模糊相似矩阵的 MATLAB 程序& U) U4 ?8 \& k  r) N" n! n' ^+ s% {4 F3 B

8 j6 o# o6 E4 W; _& J9 ^9 }a=[276.2 324.5 158.6 412.5 292.8 258.4 334.1 303.2 292.9 243.2 159.7 331.2
- p% i% H4 m& a& q$ A9 y7 s0 v( a251.5 287.3 349.5 297.4 227.8 453.6 321.5 451.0 466.2 307.5 421.1 455.1
& |1 i) Z! F9 D  @. M192.7 433.2 289.9 366.3 466.2 239.1 357.4 219.7 245.7 411.1 357.0 353.2) y! C, n+ I' o( g3 M
246.2 232.4 243.7 372.5 460.4 158.9 298.7 314.5 256.6 327.0 296.5 423.0% Y4 w/ Q' M2 g6 `
291.7 311.0 502.4 254.0 245.6 324.8 401.0 266.5 251.3 289.9 255.4 362.1
2 n& X1 N8 e  c: @) ~1 k466.5 158.9 223.5 425.1 251.4 321.0 315.4 317.4 246.2 277.5 304.2 410.72 A- b0 V/ E  g9 p- V3 Z- A
258.6 327.4 432.1 403.9 256.6 282.9 389.7 413.2 466.5 199.3 282.1 387.6# K3 Q  {" ~2 k
453.4 365.5 357.6 258.1 278.8 467.2 355.2 228.5 453.6 315.6 456.3 407.2$ L4 k  g$ J* F- m( f
158.2 271.0 410.2 344.2 250.0 360.7 376.4 179.4 159.2 342.4 331.2 377.7
6 G' _) i+ P$ F( J4 X324.8 406.5 235.7 288.8 192.6 284.9 290.5 343.7 283.4 281.2 243.7 411.1];7 T: ^! ~; d2 C
mu=mean(a),sigma=std(a)# c- Q3 u. h" Z( L8 j2 s' F
for i=1:12& ]. d4 I& L& q$ L% Z
    for j=1:124 J; y4 V2 _9 [
        r(i,j)=exp(-(mu(j)-mu(i))^2/(sigma(i)+sigma(j))^2);
5 `) C$ d+ R4 l% }1 A9 j; ]    end
6 Z# h4 u: _$ k" y6 Oend# V; U$ |2 G8 k) y3 l& v; R  g
r" p9 I6 \. |1 n7 L, w3 {: w  _) r
save data1 r a
* v( @8 u6 t1 k% ^4 I
3 d4 x7 d& ]' Tii)矩阵合成的 MATLAB 函数% ?/ J: ~2 F  @* ^" _
; F6 I( |# o5 ?& m- v
function rhat=hecheng(r);
  ~8 P- H1 U5 \) Z; I4 E/ x9 un=length(r);* P( E4 D( \7 Y
for i=1:n
0 ?3 @: l5 I7 w# b+ c: S' M    for j=1:n
/ p: q* d2 }7 j; X0 `6 e        rhat(i,j)=max(min([r(i,;r(:,j)']));
5 L1 f7 E9 p$ ^    end7 ^5 s* N2 {# ?2 c5 V! I
end+ t% f! O9 u7 B( ^. H4 `7 ~: A1 u

2 Z0 |# \$ h, }/ D! t6 q2 ziii)求模糊等价矩阵和聚类的程序4 X9 p4 [; h8 k! E+ r2 x1 B; E

' B: W  L8 z! V$ h* K" iload data1
3 @% @  u7 r1 r6 \r1=hecheng(r)
4 y  }( R2 d: V4 g  c4 Vr2=hecheng(r1)
; _( h0 u& P7 }% C, K5 q. P$ l# Jr3=hecheng(r2)
/ _) ~  y5 O8 B' Q1 ~- pbh=zeros(12);
! S( q6 r9 K4 Obh(find(r2>0.998))=1 * x+ D$ ]2 {& E. I$ A

/ X1 h& D; c) b: Wiv)计算表6的程序  编写计算误差平方和的函数如下:
: I* _3 K+ j  V  p: n. t/ N' w# B7 e8 q9 X
function err=wucha(a,t);
! z7 s0 J+ r9 |2 r2 Hb=a;b(:,t)=[];
+ X1 `% d; J! c* K- M8 xmu1=mean(a,2);mu2=mean(b,2);4 j( g7 `! l: x% C% r' s' t
err=sum((mu1-mu2).^2);. A. d$ R) s4 m# m5 e9 c

1 h* {- O  c3 @+ b4 K/ {  {# \. o" }/ Q7 w
! c5 L7 Y: Y( X. I9 {. ~; Y# R计算28个方案的主程序如下:
4 g: h) r+ K! E0 F* e. s2 p* |3 F6 E  b' H6 Q- |
load data1
% K( p7 E& R6 E8 J- j% w! ~ind1=[1,5];ind2=[2:3,6,8:11];ind3=[4,7];
, s* ?; h. _  J( I# nso=[];& Q( J1 _3 ?. v6 @/ J* j+ y) B6 |
for i=1:length(ind1)' n7 e$ \% T$ E# T2 t5 ]
    for j=1:length(ind3)5 ~8 ]- W- D3 ~) M3 ?
        for k=1:length(ind2)
7 Y& x6 b7 x8 c6 D. E: c" G            t=[ind1(i),ind3(j),ind2(k)];4 [2 C/ |( Y0 B% r. G  k
            err=wucha(a,t);
, J- P5 I2 r- a& J$ y            so=[so;[t,err]];
0 |( p9 X5 u  L( q) h7 J        end2 V, O/ q% K0 c- n; V0 d
    end) H% T# V- a) \
end9 J6 P# _# l+ L+ w7 ^/ _6 \9 r
so* y' I. w6 m' N8 ]' n5 E( l
tm=find(so(:,4)==min(so(:,4)));
$ ]9 E) [5 i7 [, Lshanchu=so(tm,1:3)* N/ N/ x# u  a8 A- F
0 b* L3 h9 g1 ^5 o

1 M+ q- I; M: U. n0 a0 @
) y7 X# [& f+ t) q- {( N" ~" S# N1 P————————————————/ W/ m: s" H3 J6 O, h
版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
. ]& _2 `' H; b, j& u: O原文链接:https://blog.csdn.net/qq_29831163/article/details/898939083 ~' N9 U% L7 u( L8 c
# D& s* S! l" T. a; K2 t- i

) ~% c7 y1 W, @7 @3 t, y) Y6 |




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