数学建模社区-数学中国

标题: 【数据聚类】第八章第二节:谱聚类算法之切图聚类、算法流程及其实现 [打印本页]

作者: 杨利霞    时间: 2022-9-12 18:41
标题: 【数据聚类】第八章第二节:谱聚类算法之切图聚类、算法流程及其实现
【数据聚类】第八章第二节:谱聚类算法之切图聚类、算法流程及其实现
3 e4 u2 P/ I/ b1 e# j7 B0 ~0 f) o
本文部分内容源自刘建平博客,在此基础上进行总结拓展7 j: d) v- e% Q0 M7 d$ G+ b( g
4 j6 B) y3 @) t8 I* W; Z1 O6 O% \
原文链接
: ]9 D, o' k3 F; C文章目录
& E! ]# X( d- X% r; d8 e0 C一:谱聚类与图划分; a% L8 d( O8 u
(1)比例割! C. u# |, R- N
(2)规范割(常用)
( U5 \! I; e/ U2 u3 n二:谱聚类算法流程
/ [8 N! B8 Y: x9 X1 ^三:Python实现/ A: c/ @# c+ z4 z  \' S7 y
四:谱聚类算法优缺点% a4 V! T2 V. e) I- N3 Y0 a% A0 |
(1)优点( P6 I7 l  }  T
(2)缺点
9 I% a) ^' y* C$ _- X一:谱聚类与图划分- ^% Z- z; @% e$ t% f; d3 Z5 U
无向图切图:谱聚类算法根据数据点之间的相似度将数据点划分到不同簇中,因此将数据点映射到无向图之后,可以转化为图划分的问题。对于无向图G GG,切图的目标是将图G ( V , E ) G(V,E)G(V,E)切分成互相无连接k kk个子图,其中
- s6 @9 {  H% H0 L% h) }! H' S" t( {; F) L' n3 B' r6 g  y
每个子图点的集合为{ A 1 , A 2 , . . . , A k } \{A_{1},A_{2},...,A_{k}\}{A
9 ]5 \) ?6 N7 w1
1 E- t% j2 T& c( r  h" [& F& `! U. A
,A 4 W7 \$ `1 d- }
2
* M$ G% Q4 @; M! ?: ]
& N2 V# F4 i  Y+ F) J ,...,A
. N; S* J4 l, n* |( O% Uk
" M) m7 j( K$ C  {* g1 ~! E2 ]( I- `
},且满足A i ∩ A j = ∅ A_{i}\cap A_{j}=\emptyA ' ~8 T0 Y% d- Z3 l6 }( w* G3 C
i
+ u; q0 o. f. K% d, |
# m; [/ V5 b& H1 N  k( v- `' ` ∩A ! u8 K# f4 `; Q6 ~7 U
j/ w6 `- Y& `! R
( A  }4 k( B1 o, O0 d( v5 g
=∅、A 1 ∪ A 2 ∪ . . . ∪ A k = V A_{1}\cup A_{2}\cup ... \cup A_{k}=VA 1 P( T; C/ S6 L1 k! M7 g
1
+ O0 M: z8 J2 g- L7 j0 m' ~$ J! V$ Q: k
∪A 6 E" `5 m6 u7 ]) {$ ]6 w
23 `, `8 M+ `1 u8 p8 Y

: c$ ^$ p' E7 z ∪...∪A 4 C7 y+ c% n; {( u, C, d) v% X+ k
k$ b$ o/ }: _+ P+ [5 ?9 z
3 }6 N4 {; i9 h# c1 w- F! [! i7 M
=V
, x  C% x; j8 `3 D; {: M% q对于任意两个子图点的集合A AA、B BB,我们定义A AA和B BB之间的切图权重为W ( A , B ) = ∑ i ∈ A , j ∈ B w i j W(A,B)=\sum\limits_{i\in A,j \in B} w_{ij}W(A,B)= & L1 d- G' \" Z1 [% X
i∈A,j∈B
* U; |; Y4 q3 q
2 k* w/ H2 h4 x1 E1 c2 w% B  c! s
6 j$ F! `% Q$ Z w
. c7 S# U4 B; v, f3 Z% A' @; U' @ij
( X* ?4 k1 @  M% N  {+ Y; e/ |/ q7 X8 }% p% g
! S; O. r2 ?& ^' Z1 h* M: X
对于k kk个子图点的集合{ A 1 , A 2 , . . . , A k } \{A_{1},A_{2},...,A_{k}\}{A
+ B% l0 O1 V0 T0 j$ M12 J' k' X. v* ^. i5 Z  o
! i  ^0 H6 k# y0 t9 p. L
,A 4 P/ Z: D% |) c3 ]0 X* H
2
. [& A6 E, D. Y' B& r7 z
$ f+ b* J/ a+ @# o# G6 w7 \ ,...,A ; [4 W' b, G# z( {) \
k+ f# A  X) Z( t% ?

. x; n9 e" p3 L; D; ?  B },定义切图c u t ( A 1 , A 2 , . . . , A k ) = 1 2 ∑ i = 1 k W ( A i , A ˉ i ) cut(A_{1},A_{2},...,A_{k})=\frac{1}{2}\sum\limits_{i=1}^{k}W(A_{i},\bar A_{i})cut(A
; d( p% g7 G. R% J% C6 M4 \% J1+ W% k$ u% k5 b$ ^3 g  P2 ?
. W: q2 D" {6 @) O: i
,A
$ T& W( a; K. T8 P/ r6 F$ I27 t8 j# ?$ ~* v( c' O

: a, `: X" |' v0 W7 F* ?' w+ h9 E+ w ,...,A
7 I- O1 ?$ J# u) ^( Hk
9 W) ^8 \: ]- f, M' t; \# i7 j
9 X; [+ |2 `! a )= + ?7 y/ d2 n& h; f. Q
2$ A9 h6 m$ v2 I. k: L# ?! U% k
1
: k* {/ A% w7 v$ S: A5 K+ u% l  I0 d; ~1 b$ @( A

3 ~) P+ D9 f% b/ |$ f( |1 C/ di=1" o8 D, L( ^$ M/ |: M

$ L6 }) R  I& u0 ik
, W( \8 g2 Q0 A) j' ^; J" n2 t8 q9 ?3 F- j' ~+ [# g
W(A
4 d3 u0 B2 H& X; a( ji7 ?# m. O2 r, b8 R, L' c  R

! [/ a* L- M2 m& _ ,
0 A3 i  m4 m5 v% z$ T6 Y# EA
9 o: X) ?! W: _( N! p/ m$ \ˉ
" v8 U% l- k# b- z  R5 K) T, o0 A1 }& W, G
i
# u$ W: A! H& i2 {" O
( ~, J7 l$ R* ~3 E( H ) (其中A ˉ i \bar A_{i}
# G% ]) q# {$ h. ZA) w, j8 Q% R8 P& d! M0 J  {
ˉ
9 `3 ]+ K" Q' j0 |  X& S. b" N/ o
i
0 R; j2 P7 L5 ^/ P% D
+ d( K+ o- ~; Q7 Q  @* C 为A i A_{i}A 9 ]' d9 }$ V9 ]' \$ q
i: I- f# X# ]" B( }' y" A

/ P" x3 x; c% a1 D  H+ p2 b 的补集)& i" _1 b$ l" k5 j5 o, X9 g
可以看出,c u t cutcut描述了子图之间的相似性,c u t cutcut越小那么子图的差异性就越大。但是c u t ( A 1 , A 2 , . . . , A k ) = 1 2 ∑ i = 1 k W ( A i , A ˉ i ) cut(A_{1},A_{2},...,A_{k})=\frac{1}{2}\sum\limits_{i=1}^{k}W(A_{i},\bar A_{i})cut(A 2 M/ G1 N  T( i2 \& G6 v
1
: }  Z5 Q( y: J; i/ q8 X+ f7 J, I
  {7 ]/ E; ?1 a! F- K ,A 5 N9 M( T; o) U3 G4 F
2
; {) G: \+ C+ ]/ J9 s: H5 K. O. G
( b* c4 s0 y8 H9 C3 C1 s ,...,A
% j% |- }: M0 A. g! l2 ]k
8 D/ {8 m" u( m) T' h! K8 d3 k( n# S9 J, d
)=
6 o2 J9 }: t0 ]2
/ v$ K- ]" O" ]7 J3 E& w$ |7 g16 X  ~( e) N' r

$ M8 J3 y1 ]0 p; {& @6 l
1 m/ H( x! d( @0 Wi=1* s8 w. z, A7 H1 X8 r8 U/ j

" V9 {$ Z7 Y5 O; D) ~# Kk
' ?" J- i4 j+ V& j+ ~0 l
0 X0 l. b4 }9 ]0 _' Z5 A W(A
3 _) {/ V  ~7 d; \4 {' S' Z4 J5 c* ai& p: d/ u& m. r! Q

# s) `. P. O4 K" ` ,
2 Q3 |, H. ]& ^& R* `5 GA. |" y$ ~; b* s
ˉ& X; s+ @( ~, G* _$ @
5 h0 R, t' r# R2 A' J' q! k' q
i
% g4 [0 x4 _# b' \" I+ h) z; |9 a1 s) a" C' B" D+ X& t1 T6 O- n
)在划分子图时并没有考虑每个子图中节点的个数。所以在某些情况下,最小化c u t ( A 1 , A 2 , . . . , A k ) cut(A_{1},A_{2},...,A_{k})cut(A ' l' J9 V: N/ c2 O
17 K5 E& _9 Z7 \) {  j7 |* n
, P9 p' P5 {/ R% l4 F3 H( C8 |
,A & N2 f# b9 }7 v$ {. d5 @  t
27 f6 m6 e  h- v( ]3 q' R; Q- F6 ]
$ p  [; T- L* L& ^9 P4 R
,...,A ; t: j8 b3 G$ P1 b
k
% X) z9 `; Q4 e- S5 `) j% ~7 [8 |
, Y2 c' ~+ `1 |8 U& ? )可能会把一个数据点或是很少数据点看做一个子图,导致子图划分结果不平衡
' g. i) q* i5 T7 N6 o3 \2 a4 B
  m/ x1 u8 U, g) S; {" v  U例如下图,选择一个权重最小的边缘的点,比如C CC和H HH之间进行c u t cutcut,这样可以最小化c u t ( A 1 , A 2 , . . . , A k ) cut(A_{1},A_{2},...,A_{k})cut(A + W5 ^# l5 `' c% e) Z' n
1
( c" Y! v; l# P+ W: C
' C+ C6 T$ _1 y3 S& N% L: g% U ,A
2 H: v7 o( I* d0 \$ w( s2
$ ^" m2 ~; S. Y+ C; `! V, G, f
6 v* z) p2 w' a7 N7 ^- W ,...,A
1 S2 g+ G, O" m% ^6 Kk
$ Z( Z7 f6 B0 N
4 A( S7 ?4 F6 E6 r4 q( r) ?7 u6 S. ` )但是却不是最优的切图
! b0 P0 d$ t8 i) U) O1 Q- I! g$ g# M; a3 v. I' L7 Y$ Q0 S6 G
为了解决这个问题,会引入一些正则化方法。最常用的两种方法为比例割和规范割4 Z( k, L, e1 ?4 Q  S2 \7 E

& F( L5 z+ K# V- |$ ?- j& |比例割:R a t i o c u t ( A 1 , A 2 , . . . , A k ) = 1 2 ∑ i = 1 k W ( A i , A ˉ i ) ∣ A i ∣ Ratiocut(A_{1},A_{2},...,A_{k})=\frac{1}{2}\sum\limits_{i=1}^{k}\frac{W(A_{i},\bar A_{i})}{|A_{i}|}Ratiocut(A
. @: b' i8 j5 I& O7 J+ T/ R: V; j. z1
) x; k) b7 {! ]# B! O- T
9 k* g  U; I6 S% [9 k2 z( R ,A
% m, J: s; R+ z1 r5 K2
0 R" A* x& u8 @- _  }2 s4 w6 W9 v5 i- w- o/ M
,...,A
9 L0 f% {( s; Qk% k3 O% V. N* k+ Y* n$ y$ ]2 b

! \' t# T* F: ]+ I$ ` )= + d; o$ t  M6 X( i
26 |) G7 m: V$ }. @, R
16 w" J5 p6 F% R# c$ a' `

  z( h5 Q( C: C. E( Y1 t" z! z) a$ K
, w+ D% q! L) ?: _3 N0 @i=1% C3 k/ p: G5 ~9 f" `" s9 n/ @

; R' f" J6 v% ]- e/ e8 {k8 q% z; B4 S% d( b  V

# G- o' y2 E6 v
2 [' n. E% E4 l- u4 [! M∣A
5 X7 |1 K1 l. z- w; _. g5 b/ K6 yi
0 a/ |0 i' }+ ~& ?8 `
6 C& G4 P) Z, P2 e+ W8 j/ O% M$ H9 _$ ~! ?1 t1 W2 U7 h; s
W(A
' B3 z/ O, N* D3 O5 Fi
$ S7 q: u2 {  `* {1 C0 }' {& J( n$ @* Y3 Y: i2 ]; o
, * `& O1 \' ]) J" t/ i) ?, N% i
A
1 L& l' B. c: p/ [" ?" w  w+ c7 wˉ" G( {3 ]1 M1 D& A6 L/ F' `" I
- E) f. n+ G+ w# T& B: @! M% P4 }
i! m+ S# N% H: J9 d2 X/ p- P

% x, C6 _# }$ t4 z! i" ^ )
. a3 e) N5 W3 F$ V: |/ c: [
0 b6 T' I5 W3 ^$ @& r3 d& ~. X
规范割:N C u t ( A 1 , A 2 , . . . , A k ) = 1 2 ∑ i = 1 k W ( A i , A ˉ i ) v o l ( A i ) NCut(A_{1},A_{2},...,A_{k})=\frac{1}{2}\sum\limits_{i=1}^{k}\frac{W(A_{i},\bar A_{i})}{vol(A _{i})}NCut(A * ]0 o% d) ^7 v1 w$ p( d, h
19 l" |+ _: m3 Q' _& I* e4 G, }. x, H
6 I, I. g1 S+ r0 x0 X  _
,A
+ k% j3 r1 H6 Z/ F0 i1 Z1 I* i22 a7 n. j  o6 }9 H$ t2 C. t

' x2 E9 X5 y6 C4 e. q+ f1 \ ,...,A
8 D$ I8 T( r! Z4 F+ N" F$ [. Jk
( C$ _" y, p: z6 v2 u9 V1 `  l7 M) Z' }9 x6 u, K
)=
- [7 s+ Y" w3 f' z2
% |' _$ B4 m- G1 _) Y- O) d  X; k19 ?8 D1 _6 F3 _; d8 c2 E* L3 C; L! i
/ U) W+ D! g1 R$ x& k- t
- F8 v: c: x& C% t; G  Z( r+ R' n
i=1" v! d, K. j( M% x
2 x, n  S. T' O, V3 n
k
! E4 l+ S9 x0 J! w* S+ j+ I# G: M9 f6 X" k
5 _9 E( @) J  t/ r. g- t
vol(A * b/ b+ n1 b  \4 Z
i" v: U+ n4 D7 E0 l1 ^( G  O
! |' D: i4 F+ o4 o  N
)
, M' x& R. L  i5 A% w) }W(A
' r/ c; `% D+ a; ?3 H; Zi; \: x2 n; c: d: M; L" h
# m  I- e$ j2 J; ]9 l
,
( e0 x! H' u+ t  \. g* VA) W7 I- f( U; h) l* ^4 X3 P! R. t
ˉ! k/ Z/ m/ a) s* a! B3 `% A

0 Z9 K+ u* F7 p3 m8 j9 P' Yi
) t( X1 a  y/ G- |5 H5 L' i' d! r' N5 e
)
* L# Q( S+ M" T8 R/ A6 l' o/ B
( p) U! |% J4 n+ y8 G% d" d* `7 s5 R2 o- h4 X; s" G
(1)比例割
' J6 ~8 |' d1 I* r' }' t" k引入指示向量(点击可查看指示向量定义)h j ∈ { h 1 , h 2 , . . . , h k } h_{j}\in\{h_{1},h_{2},...,h_{k}\}h
- o4 o# f4 E7 H8 B  bj
9 e5 l! ~3 }9 ]
! o( ~; \0 U/ ?+ ] ∈{h
! q# k  Y$ u* Q  f0 T7 \1
& D" a, e# k! v  R! X( ~/ ~: t; R- v) y. A+ o$ `
,h
% p: X4 K( ?" p5 ~$ \4 s$ z2
/ b  a! r% W4 J
6 a  e2 [) v( L3 X  C. h ,...,h # `4 s! ~5 M$ T
k+ v& h6 Z) p! B5 R7 M
* {4 {  S9 h9 u
},j = 1 , 2 , . . . , k j=1,2,...,kj=1,2,...,k。对于任意一个向量h j h_{j}h
7 I/ c" p' |( Z# Rj
# @$ i  H+ p: k
4 Y4 g4 t# S- h5 Q' `  S ,它是一个n nn维向量(n nn表示样本数),定义h i j h_{ij}h 1 t" F5 M+ V7 j7 [3 B
ij
* s4 ^( a8 B; \: r' p5 h, u  \
- p+ r( `* U. D 如下
$ d3 q3 n7 m8 i% `1 g5 o; ~5 a+ H/ N/ I. X0 B
h i j = { 0 , v i ∉ A j ∣ A j ∣ , v i ∈ A j h_{ij}=
9 A0 q7 ?- C, D: E  c{0,vi∉Aj|Aj|−−−√,vi∈Aj
' m% W4 e# K' e7 W3 B+ ^{0,vi∉Aj|Aj|,vi∈Aj
& O$ l, }; \+ ?7 S# Ah
2 t( f  i4 b4 m- Q, U# v! [( Gij
) Y. f$ F- ]: p* e( l, A1 h
1 c3 D5 R4 r  T/ l% c& S) d  T ={ 5 m$ Z0 f+ f2 e- J, [8 c3 |
0,v
$ r2 I9 w0 ^7 p" H$ W, ]5 bi
$ x% L  \: w5 |& P: o7 F. t" ?  F) m$ `
7 g% A3 M( A# ^& ~
/
! W. o! @' ^$ {4 Q; H  ^A . S' s% M( }/ t1 A6 t$ n; v( k8 U
j4 n* z: r* \$ t8 ?2 ]; X

1 e1 z1 B2 `1 @* d# d! y6 ]7 q3 H5 {# J: o1 z
∣A 3 u7 W7 E. C9 R1 M6 S! @2 K  X- z
j, p. Q8 S7 ], Z' w/ U

+ v: L' h+ v% v( v. ~4 }2 @; {; t1 w# Z% d7 O; C
, g7 X3 ^% M5 W0 A* B* }2 p7 e
,v ! a+ f& y! s4 e4 s
i- }8 j8 T" y6 @6 Q2 X

9 T/ s6 w: d8 j! h/ d ∈A ! {: ?* q% j9 @6 H8 h' e/ m* e
j
. Q6 b% \: L. [7 {& T7 z4 Y
; s( y' J& h" f6 d
/ M1 ?7 w( _6 ~' p0 Y& [4 q# [& p+ |/ I. A

4 O( h+ D. o0 _) t2 }) V  {
2 k7 v9 f; F* j3 u9 j于是,对于h i T L h i h_{i}^{T}Lh_{i}h * S+ _# A# t9 |% v6 e' f
i7 Y) z. Q( U( p, y3 e' D/ I" H
T
! `- R/ ^2 |& G5 h7 u" q2 ~. V+ E8 e& F; K
Lh
: F. R" B7 Y/ D% \1 si
) w# I0 _$ I0 J4 ~  ^* P+ G* h. P( Z/ h
,根据拉普拉斯矩阵性质可知" l: j" _* S7 F' ~

1 v! w# u, Z8 i' i- t对于任意向量f = ( f 1 , . . . , f n ) T ∈ R n f=(f_{1},...,f_{n})^{T} \in R^{n}f=(f % h  B, m2 L* s+ [  L) U; k2 ~
10 Z% r) I+ m/ n# m1 N' R/ l
5 o# q6 U4 ^& X) N5 r1 w% d' d4 `
,...,f / Q4 L' a5 o8 [0 D2 j# j
n/ g5 i9 t+ G" g5 l5 I

( c! B/ o! }+ y6 k )
7 f  T. z1 U. A9 b2 Y- T8 KT# T- n. d' _7 {* J* S8 ]
∈R
# n" @6 c! m, i5 ^# \/ r# n" ^, pn! B; v# }; y+ R% D# m  g
,有f T L f = 1 2 ∑ i , j = 1 n w i j ( f i − f j ) 2 f^{T}Lf=\frac{1}{2}\sum\limits_{i,j=1}^{n}w_{ij}(f_{i}-f_{j})^{2}f 7 {3 g1 h; q0 a: n9 \3 d
T# Y' v! {) D+ ~/ p, ^
Lf=
3 n% n$ v+ N  s( e' w20 R- \. H! ~. ]" y1 a/ b
1
9 ~9 b" _1 s7 p+ n* y" `
1 g0 Z  ?: I" \  D1 H6 `
- R; f% c- x4 v# @5 {$ @3 R* ]i,j=1
4 J% p+ w2 t4 \5 P! k; \2 N# A3 a: v: ~+ [$ Z; X; q! U
n9 j) I7 D9 ?5 r1 [& x
/ \- ^* d; m. ?
w
* k" n. N, W' Fij
& e, d  W' Z8 e- S8 I5 W' E
1 m, l5 n3 F1 ~- F7 H6 U (f
6 c# W2 F$ Z/ `8 D; F4 Li/ T% P  f# ?4 a" e$ B% o& U

5 ^4 `- t$ W' N) e/ [0 J  T* f  M6 S −f 0 z9 D2 W0 s+ K
j. e! n. {$ E$ h* o

7 f0 m) N; J, v( A. B! B. G )
( P( w) z1 `  \: D9 U0 a0 X# Y* j2& k# C3 |) h; f5 B8 v2 D; [, i
; }2 z# b- S3 W
h i T L h i = 1 2 ∑ m = 1 ∑ n = 1 w m n ( h i m − h i n ) 2 = c u t ( A i , A ˉ i ) ∣ A i ∣ h_{i}^{T}Lh_{i}=\frac{1}{2}\sum\limits_{m=1}\sum\limits_{n=1}w_{mn}(h_{im}-h_{in})^{2}=\frac{cut(A_{i},\bar A_{i})}{|A_{i}|}& e8 n2 ?  r# f# Q
h
. h9 N+ F7 V* B! Gi' P7 a( Z9 T1 M9 s7 M) k9 i
T
+ O1 N8 ]6 R/ r' N5 Q/ r8 ~# z0 B* }, A9 i$ w3 I, t
Lh
9 l5 |  ^# j  S( B" B9 Ii
# ~! [1 V7 v9 x& h5 E* d  _, T. C" m. d
=
1 L+ ~, l# \3 I& N2 r3 h27 e2 S3 P! E+ w5 [" C
1$ u. Q5 i) x+ b
0 W! S% l% F% C# r$ Y" O6 c$ t

# t' s, T/ U8 q6 Um=1! [$ c5 k2 X% H' a

/ w) t# b& p% J+ C
3 J% i7 q' Z: M- _6 k% |" S: U
7 G; a! }; g5 ]0 K9 n5 cn=1
6 e# e% m) e$ _; z* C0 K- T: ]" F9 w# I. n) ^

* {( g; s" Y% y0 J w
' W, P. {- r: i1 l7 `+ P1 {mn
8 f- t3 P0 n, ?8 t* T7 `/ v
( p/ h. A# ?$ k+ i( I0 ?1 b (h ) p6 ~( z% E" ~0 {. \
im
! j  p( h) E. Y# a  X+ s, P! ?9 S- v  w0 k
−h # ]3 T1 }" n9 E+ _/ n  H; Y* q2 B' j
in! j: j2 g* v9 P/ }5 X

  m$ `! j+ j8 O+ Y2 o% ]% | ) 6 z7 h: i* |4 r! H: G: g2 [7 y7 L
27 J# }& M! ^; L
= ) K! y6 S/ K- y9 z; E" J5 B
∣A
2 `: o" q8 D. ^2 I+ Bi
+ p, D1 W5 U) y6 }* e
, C- F+ \4 a( _/ j- f5 \' X  k. U: J$ o2 `
cut(A 9 t) H. q" k) S4 t1 S$ G
i# F+ y2 A% X4 o, _9 q* s

9 K/ n2 U9 k" X , " f" {5 J5 x  h) l1 R4 S
A  H( z8 `' Z( S% k
ˉ
1 G' q% ^. [1 M4 e1 t8 u/ o& ~' k: H: ^2 ?6 y
i
2 r4 v  r9 h2 O" ~' d' _7 O0 a' L
* E% u6 U3 b6 [ )
& e; j% `2 m' Q' M& @  f
% ~+ d6 b+ i: |6 a6 P0 s, q& W" b7 F
( z; K! p' y6 M# j
严格证明过程请看刘建平博客:链接
0 |! A( O- @2 ^9 j$ ?可以看到,对于某一个子图i ii,R a t i o n C u t RationCutRationCut就对应于h i T L h i h_{i}^{T}Lh_{i}h ' p- f( z- x+ z* e+ L; J
i& I5 v; g! v- c- S4 s! b4 P: P
T
2 A0 A, u% c& U  `9 {/ O  K; x! H8 G5 h! u  r8 E
Lh 7 v8 d" b1 ?  w
i2 m  o2 t0 N, x+ g- x/ y  v. k3 p

2 g. k0 _/ q, T0 c ,那么对于k kk个子图
& U# N: \8 z- g" x. o1 E6 `
5 [, a5 J1 [* e! C/ QR a t i o C u t ( A 1 , A 2 , . . . , A k ) = ∑ i = 1 k h i T L h i = ∑ i = 1 k ( H T L H ) i i = t r ( H T L H ) RatioCut(A_{1},A_{2},...,A_{k})=\sum\limits_{i=1}^{k}h_{i}^{T}Lh_{i}=\sum\limits_{i=1}^{k}(H^{T}LH)_{ii}=tr(H^{T}LH)
! ?3 `$ E( {9 h, J& ?RatioCut(A
1 y: \+ J; z$ z0 |1) j1 V7 P+ |0 z) d. [
, S5 M5 G& g* R' Q5 _2 G
,A - P4 _$ j  Q& x2 E# m
23 L6 u5 {2 I7 ~" ]8 |8 }  A$ k

: r& `) Z) t4 [ ,...,A
1 ~3 l0 X+ U" m+ A6 hk6 R; l: k  F( I2 E

& Y: A' g9 H; D )= + L' o. `4 W( T7 q9 n
i=17 Z7 Y- C1 Q1 O% f
0 t0 p$ f. m1 h! X9 I7 ~/ ]
k6 ~9 e, o2 b0 T- \5 X
" Y6 w4 g% w/ O3 l5 _
h
; m8 m7 a7 |# e  m) hi
' s# ~; Q  l/ aT
" ~: r( V* y( \3 w( x- n8 b* T! F0 o
Lh ( E) M% B, V( y5 ^" D
i) ~9 H' _% A/ `# K6 `
% C3 [- ]- z, o, E; R% P- j# v
= - [$ x( ?5 {+ j2 L* o4 J
i=1
/ b* J( o: l% L% i
& q8 m" T% f$ ]3 R- }# @6 ?k4 I# B4 F5 @% Q7 P1 e9 J

& t% j) z. m$ F! n! y/ w5 d (H
" r: ~; |' M# M5 i, f& j7 ST$ Z3 S( e7 z2 \# F
LH) + W- Z, _  C  g" @( `; p  _% R
ii) K+ J0 X" P' ~5 I1 [
* {( [& [: x0 C% `. M& m# l
=tr(H $ w# o0 S  \9 C0 O% {1 C% U
T
9 a" e% m7 P9 C+ Y8 P6 B LH)
4 v# f% @+ }& I8 i0 y
$ Q- F7 e) X" ?) ?) S因此,R a t i o n C u t RationCutRationCut切图本质就是最小化t r ( H T L H ) tr(H^{T}LH)tr(H
$ C: F, P0 Y' fT0 ]% t* ~/ X9 @
LH)。又因为H T H = I H^{T}H=IH . ~0 P- o: w5 h* \1 V+ M
T4 s  y. n, l$ s1 G
H=I(单位矩阵),则切图优化目标为3 O' I1 o7 d& u7 N- I

& j5 X0 z! W+ d9 c! f$ La r g m i n ⏟ H t r ( H T L H ) s . t . H T H = I \underbrace{argmin}_{H} tr(H^{T}LH) s.t.H^{T}H=I. Y0 r* n$ j. t
H; I& p2 G5 ?1 j  l4 f( z
argmin8 h- i5 g# r  Q2 `7 w" w# h

3 L9 Y- Z% {$ b8 |8 K" x4 Z: R' d2 ~! ]+ B5 Z
( Q: c/ P* ^1 b9 l2 u
tr(H * K: M8 E4 h; l5 F
T
- n7 {( \0 }" B, u1 Z% P8 i3 W( ], Z2 k LH)s.t.H
- A3 Q; {( m+ A* p- fT4 [% ]3 o. {/ ]$ Q/ t
H=I* ~& B* a; s- `! c/ C0 ]- R- U$ v+ i

5 q) ]/ D: Q; o4 v& j( g9 D对于优化目标t r ( H t L H ) tr(H^{t}LH)tr(H 7 _) l4 s! d& Y+ W
t
# Q2 d2 r5 _% X, P LH)中的每一个优化子目标h i T L h i h_{i}^{T}Lh_{i}h ) W) S# i* [: U% g' ?9 D
i
: C0 y$ ^3 K/ ~$ a5 q4 T; lT' W! g: ^6 T9 V
4 D8 A8 S, V% L* t0 \  N! T5 z
Lh
5 k. `+ n6 T; M& h4 u7 @0 S# x# ]0 ~1 Ji
7 a1 k( R2 a0 R% @, ~5 p5 D4 W! v$ x4 y# G8 h
,其中的h hh是单位正交基,L LL为对称矩阵,所以此时h i T L h i h_{i}^{T}Lh_{i}h ; r  S6 H, \5 S' t- ~
i
  M4 z% b  a% hT
3 ^# h$ P9 {& j! r% p5 o$ X% Y5 {! I4 p0 n6 O- a" s# `
Lh
# Z+ Y. X; J$ G( z2 j. j' Ui
" `  e2 u0 f/ Z! A4 f0 |" Y
7 t( z5 k" |  V) w8 _ 的最大值即为L LL的最大特征值、最小值即为L LL的最小特征值。而在谱聚类中,我们的目标就是要找到目标的最小特征值,得到对应特征值向量,此时切图效果最佳。所以对于h i T L h i h_{i}^{T}Lh_{i}h
$ Z, P) B5 n2 Oi
5 i: G; s! i* H" OT
! Q# ~& e: m/ }. o5 R
7 h' a5 V2 Z0 M1 f1 F  S Lh 6 W; K/ Z. I) v. h7 f1 X+ v
i  N0 ~. H/ ~; a
/ h9 K1 `% f$ b! T
,目标就是找到L LL的最小特征值,而对于t r ( H t L H ) = ∑ i = 1 k h i T L h i tr(H^{t}LH)=\sum\limits_{i=1}^{k}h_{i}^{T}Lh_{i}tr(H
$ ~6 }3 S3 Q( E" P0 t7 Ht* a; H& {0 Y9 f/ [- _/ L1 J5 P
LH)= 5 i8 t/ x7 J1 S# W3 a
i=1
6 j, g4 n. K" P" x3 N' p; h
0 N1 Y9 ^4 R* q6 f* L' u1 o% [k
4 W; v1 N3 F4 @, `' l; z: x& f" H* Q- U
h
& C4 w1 [. v7 \0 Y# @i8 u: ^: ^- ~4 R* l2 G
T0 H: U# X6 J1 {4 Q4 [* b

" w; q' A# v5 f0 k Lh
: K3 @- B( @# C* S# vi
- w3 u9 o/ R0 a# e* l! g- ~" T3 F9 y  V( F! |
,则目标就是要找到k kk个最小的特征值
& v+ y* ~! @6 k5 _5 v' ~; Y3 k( j3 i: w
因此,通过找到L LL的最小的k kk个特征值,可以得到对应的k kk个特征向量,这k kk特特征向量组成一个n nn×k kk维矩阵,也即H HH。一般需要对矩阵H HH按行做标准化,如下
  ~' `# G1 c, G8 _: @2 u" x7 n7 E% }- \# B+ O3 F$ t) A) p
一般来说,k kk远小于n nn,也就说进行了降维, b8 }, E5 }: {0 c+ T7 g
h i j ∗ = h i j ( ∑ t = 1 k h i t 2 ) 1 2 h_{ij}^{*}=\frac{h_{ij}}{(\sum\limits_{t=1}^{k}h_{it}^2)^{\frac{1}{2}}}
, X; E: ?, s$ ]. Ph
; q& g: T6 R4 hij; L3 o7 e4 ]* F- ^+ f

0 a/ p! J# J1 I0 F- W4 }: @0 W0 _4 ~4 d  b/ l5 C
=
; h# a1 t9 [, w& ?7 [* L( $ y2 `: @* v: \1 P6 E* a
t=1. @0 @! V# b# n+ X6 p, J& N1 Y9 E! n
. c1 N+ v, a( j% s+ p
k
# ^  [3 ]; }6 e* D+ h% \# B1 ?0 T& v, d
h
  Y' N# z# ~3 H" {+ hit& w+ H* l+ v9 O; ^( ^( R! ^
2' r9 A5 s( a7 Y( I
. q/ w3 E) \. a2 p9 l$ s3 A
)
% x( X; E- t; a' ?# P" ^2& a9 h/ r  k, G
13 ?6 ], M% Y% J

7 B$ ^; a) w' V
# t+ R- C0 z' z, g/ g7 r( Z1 u5 N! L' J
h ) h6 K  @1 E/ f/ M% |
ij" v  c, E0 f$ |! Y+ u1 w; }

, J' k! k* [$ w/ g' B7 P1 S# S2 M5 k6 q

8 [, O( a, p' W; m0 F! i4 b
* E. D7 o5 k9 S' s. Z& o
4 e# }) h3 ]* N  ^% Z这里需要注意,降维后导致得到的指示向量h hh对应的H HH现在并不能完全指示各样本的归属,因此一般在得到n × k n×kn×k维的矩阵H HH后还需要对每一行进行一次传统的聚类,比如使用K-Means聚类
+ f0 z$ A# ?; S' p# H# W4 S( H4 E. C: ~% l6 |% P
(2)规范割(常用)
$ \- E; N$ x2 n9 w7 ?, X7 |* f$ O规范割和比例割类似,只是把比例割的分母∣ A i ∣ |A_{i}|∣A
% j( v. ?5 k8 {. i2 f6 Ti7 F/ w! B( [8 l

8 S5 h- |4 i1 L ∣换成了v o l ( A i ) vol(A_{i})vol(A , \5 Q/ a6 @, q+ G/ z! p0 a
i$ H/ e2 ^  d6 M9 W# K
8 H4 D0 P9 m- Z. n" e
),定义指示向量h i j h_{ij}h
5 \9 Q4 S0 O* @' J$ O2 C* wij) X4 `/ S3 q. z) S
: `0 y# {4 y( a1 l* W0 b7 D
如下4 E1 Z, I7 K% l. ^9 B1 _1 H
! m+ o4 t2 _4 C  o6 h' Z& |0 ?
h i j = { 0 , v i ∉ A j v o l ( A i ) , v i ∈ A j h_{ij}=
# U7 [2 e* {: [{0,vi∉Ajvol(Ai)−−−−−−√,vi∈Aj" Z; W% Q" q, b; a+ Y8 q& p) r2 w- Z
{0,vi∉Ajvol(Ai),vi∈Aj  x) |2 w" ~4 v
h ' I8 E: ~4 t$ {  h
ij
& l. v5 H6 J0 P+ z0 F. L7 S7 u* c
={ / B- _! C& _& F5 [" y0 y  c5 g( G" ]
0,v
- ?9 I' X8 ~6 W/ oi& |% \5 n* ]# W

0 G0 t/ k) V" c9 P' V& p5 C- K9 P1 c( z) J  t
/
, ]) r1 [- ]5 g% t( X+ KA
2 E1 G2 j& f7 xj6 @& o5 _  L6 {

8 J; H3 t& C) o# N9 p% a, \9 J) Q3 @) h4 R
vol(A
' l' A% R  J# S# K% o5 h& Ei
2 x& t- m4 y* O+ A/ O
8 s) V2 H  o, Z( @0 q1 U, \' F9 } )
# `% ^8 v# W# d7 c$ I  j0 B$ h& w8 o+ ]) G) l$ b8 ]
,v
0 r( f+ U, r7 y! s% Z$ t$ |i) Q* o9 U' q) Z2 w7 Q

6 e5 m2 J0 v  c# R9 b ∈A 4 M) x# H8 y4 F
j8 ]( |0 [; |4 [% E$ @; F
* h+ U+ B, R, C" M2 R1 J
& c3 I$ H& Y& d: [

" P4 s) T& H+ X$ C$ u; k
$ B7 Y1 l; C- x# y
0 k2 s* ?/ l; s- ]# D) D于是,对于h i T L h i h_{i}^{T}Lh_{i}h
2 r) C5 n. N/ J0 Pi
& J' \, f  \: s5 l1 {* CT
7 m+ f* Q. X  [: I# J9 a2 [2 r- [  P. P, u2 Z9 x+ C, E9 K3 ]. h
Lh
1 S! Q& B3 D4 D7 x. i7 Si# j1 e1 V( c+ E) _4 P4 |

3 \. u9 i; \- p; T; a5 h$ ] ,根据拉普拉斯矩阵性质可知
# K1 l, x* ^& h2 ^( r! N
! q( D& x8 {/ d/ r8 t对于任意向量f = ( f 1 , . . . , f n ) T ∈ R n f=(f_{1},...,f_{n})^{T} \in R^{n}f=(f ( l( x/ @- ?) z: }' v1 E% Y
1  U( D7 D4 g( M, y# G
8 o0 L5 V1 g4 ^( m# ^4 ^7 I0 Q; K! v2 y
,...,f
1 o6 y1 |) _( F, d- i2 S' f$ [3 dn8 ]4 B8 u' Z; ~' \, S
& Y  d8 i# Y0 R9 v( D
) 8 k0 l' h. ^6 m$ a- Q2 ]5 D
T+ P3 n6 r8 J; [+ }# G
∈R # z6 R, ~  a( L, }- i" t7 b
n
" d5 P  U1 b& D. g' S8 Y ,有f T L f = 1 2 ∑ i , j = 1 n w i j ( f i − f j ) 2 f^{T}Lf=\frac{1}{2}\sum\limits_{i,j=1}^{n}w_{ij}(f_{i}-f_{j})^{2}f " ?. q3 M5 x+ r; |
T
9 J8 S3 x+ [- d: z# E) G/ G: _+ [3 x9 A Lf= ' s1 V& [5 S1 C* ?4 v& ~' A
2
/ v- t% G! U1 \) q; w1 d; J9 E1. F/ u" L" @, A1 I. E

# c3 G/ l* B4 ^9 i8 N3 T) {6 U, Q% y8 u) g9 J2 f$ h
i,j=16 u+ E* S0 i) \/ l! p, R/ k8 z
  [6 T  l5 [- t# K1 \
n6 w+ r* y+ }/ I( d/ F

( B- ]7 v  x8 d w
$ `+ Q* |% s! s5 M- q) fij8 D1 O3 ^% _' j5 Q5 T/ ~

0 Q7 Y* v4 r! m/ d: x0 _ (f
; k6 u, d8 i9 o, y( M' Pi
* {! @' Z9 A2 W: e: p' a# o, @4 e/ f7 M" B6 g7 c% i  E+ y0 l
−f 7 S+ ~3 |. X2 j/ g7 t  O
j
4 ~) P/ o0 `* M/ H5 s3 \, c. ~( u7 |) I( a. A; \- V
)
! Y# |' S2 [% w6 J2
/ J/ p+ g; C) r$ w0 l9 N  ]+ m) t$ i3 @
h i T L h i = 1 2 ∑ m = 1 ∑ n = 1 w m n ( h i m − h i n ) 2 = c u t ( A i , A ˉ i ) v o l ( A i ) h_{i}^{T}Lh_{i}=\frac{1}{2}\sum\limits_{m=1}\sum\limits_{n=1}w_{mn}(h_{im}-h_{in})^{2}=\frac{cut(A_{i},\bar A_{i})}{vol(A_{i})}! F1 C7 M0 \, Z7 O. K6 z
h
8 [& i( T: K- Y7 Hi( i9 R/ ?9 m" x, g2 B
T; l, c/ D# k5 [, u; A

: E; U# H0 k6 v, H. i, U Lh   G6 X, s* l  b( @' \) Q7 g/ _
i+ u8 t% W+ Y0 \( z1 z# P; K

; R& M2 I' @: N5 u = 8 c9 I2 N% @" P, R. W4 {/ g
2# W6 K- g. z+ U" P& ?
1
) ~3 O* e0 m  `; X+ y8 J8 d5 Q6 s. _/ B7 T+ E
, \# v2 v# a7 c& b- ]  J5 n
m=1# h! f# ^& ]0 T. w" M

3 ^' T% L' D2 y* a* v4 V- I" ?/ p* O

0 [; c' f6 _0 q6 }4 P: Hn=1
, k- \' v2 v: U- l$ Z# T; @( G( r: `* l  B. B& o' \

5 v, ]  }" z. n, [, `1 J+ D w 1 e0 z* G9 J5 c5 J* m
mn
: i0 M% `: ?! Z
# |: E: t! L) L (h % K  r' h, l# ?. R4 }6 f  m2 K
im9 [! t* D  i4 d$ w" \0 H

# S9 U  S/ a* H- A/ p* o1 x7 Q −h
5 \4 Y3 P& g7 Nin: F6 n: }* J# w9 Q4 C( v
, T: Z& g3 r  z) ?
) ( ^$ C) i( @; a& S( d) \
25 p9 P8 b4 I/ Z2 p# ?
= 9 W' o( s  R; W  d
vol(A % X+ k( W! [2 D( n
i
. P' C+ l0 H' E- k# E# E  j7 H7 [% W% x6 F
)
' m8 G8 F8 |- n  j# y. \/ F# r, K% icut(A
" ?: n5 X: v7 r  p9 U" pi
0 d: V* W7 B5 `- r) ~: j/ f+ ^0 w3 U- R$ Y4 w4 H* q( B: _8 ~6 n
,
) z$ _+ h8 K0 Y) l9 \- J9 n# jA9 a5 e% t7 e+ V9 z# g
ˉ
3 T  H( o) l: j8 n# j8 F" K! Y  f  b" M1 j6 Q% ]
i  i4 G' p3 F) i/ H+ }
* C* H) \, }: ?) y' U
)
8 j* v" J) h5 Q4 a& m4 F
/ R% g) N% Y! A2 c- V. U5 ]
. s+ U/ l0 h1 T0 S
6 m6 Y9 ?# \; R$ V严格证明过程请看刘建平博客:链接
: r6 s& j6 o2 I- j+ g# q4 B( U可以看到,对于某一个子图i ii,R a t i o n C u t RationCutRationCut就对应于h i T L h i h_{i}^{T}Lh_{i}h 4 ~5 p3 W. ?8 f) g5 F
i
: [& h. C2 N6 G; V- g4 YT
; a) H8 u' c# f' h- ~4 f1 S# t% \' ~" f+ P
Lh ( ?. N' ]2 o' T, J
i5 w3 @- }( D& K4 U) t+ S4 L" N+ Z

3 P. O* p4 S9 l ,那么对于k kk个子图! _$ n! v, j6 H/ F1 S6 a5 x+ C

# x' b& a4 @9 ^$ h# \6 ^% mN C u t ( A 1 , A 2 , . . . , A k ) = ∑ i = 1 k h i T L h i = ∑ i = 1 k ( H T L H ) i i = t r ( H T L H ) NCut(A_{1},A_{2},...,A_{k})=\sum\limits_{i=1}^{k}h_{i}^{T}Lh_{i}=\sum\limits_{i=1}^{k}(H^{T}LH)_{ii}=tr(H^{T}LH)/ {- f7 w, Q- C& Y
NCut(A
) b8 O9 H* i$ h, p0 O1$ l' n2 A: s' j# |, X; o

, M0 \- V5 c8 }. V/ U ,A 3 E' A" x4 M+ Z& ^+ ?% E7 M
2# F7 r- E1 O9 x  l4 k0 e

5 C: Q4 M  ]- t  G# @" C; l ,...,A % d  K. q) v0 U) B3 s
k, b* t/ D" R) a& I  {  |; [! c
2 p3 o( K! U1 V0 _
)= 8 C7 B5 q7 \9 b7 S! A
i=1
2 e5 `4 B2 E' Q9 C
: m! F+ g0 f. c4 i, v# I, Y, X4 @k
8 ^) O/ x) h' N; ^# I8 V4 j
) V% \* z2 {1 h h
2 M4 u9 F$ ?% _2 J* y6 li
5 i; Y; [8 ^# o' }+ g" k: zT
3 U8 y2 O$ ]. ]9 y" G: v& |$ F1 ]  V" c. x8 j
Lh 5 `# l8 S5 y! ]* X1 @2 n
i+ P, A, z4 o- y$ U

7 h8 o2 H' h. Y8 O" Y: r$ G3 z; [1 ` = 3 Y3 Y- r- b# a
i=1
4 U! E9 g( H5 m. l0 P" A8 b
  ~' o1 o8 r/ {3 G1 E% B8 Q* Gk; T0 B: v1 n% P8 G) Y% {0 q* W

7 P. E, Z7 z" Q4 o* Z (H
# z  v# |+ V2 E; w. B$ ^T7 X% f$ i1 ^/ H8 I! C* n6 j
LH) 6 H; M; C$ O) j! k% z; z* d: |+ e* v
ii( N* e$ O0 v+ q- Z

  R* g6 V9 f2 w) e2 H6 e( f, d =tr(H
: b0 [( c2 W' x/ VT
% @% R; \  t2 N LH)
; B, j4 v- P2 y$ C
4 U+ A% w" F- C但此时H T H ≠ I H^{T}H \not=IH
& P7 |& {8 h* a0 M0 IT) Z8 k; H) I) C9 b
H
5 E. M" O8 T5 z" {* ]& L
0 r' |8 K' I0 |9 B9 ~- X=I,而是H T D H = I H^{T}DH =IH
4 H/ c  F1 x6 sT0 w% Y& ?0 b. q# b" B) N
DH=I9 |( _( M+ }. e! M5 O: [
, P7 Q, a- w9 ^% C- e  s
这是因为h i T D h i = ∑ j = 1 n h i j 2 d j = 1 v o l ( A i ) ∑ j ∈ A i d j = 1 v o l ( A i ) v o l ( A i ) = 1 h_{i}^{T}Dh_{i}=\sum\limits_{j=1}^{n}h_{ij}^{2}d_{j}=\frac{1}{vol(A_{i})}\sum\limits_{j\in A_{i}}d_{j}=\frac{1}{vol(A_{i})}vol(A_{i})=1h 6 Q( v& {6 E3 K/ l/ Z* l5 s  p+ B- \" V6 y
i
# H1 U" k8 f; S) K$ r- IT
. [9 f) C' d/ b" {  S. W
* v+ ^  m/ f+ R8 {9 z$ M Dh & |( `1 _' ]$ v" ^& k! [& W
i
$ A/ l4 f8 L3 V7 w- Z( w( `
3 M3 F: l  k( g9 X( B = 6 g" R8 P- P: A
j=1
+ A- t) v1 D3 A- }
" {7 M  K" Q) x9 h$ \n5 I3 @8 S* D8 z4 y' h" C
, ^0 t  R, w9 |" F' Z
h
5 I7 `6 X2 O: Y7 Gij& z7 j0 j1 Y9 n  V9 F
2
# t8 @* G) Y  b9 j' ]4 M- o
& b- o7 W# |" l. z# P/ y6 C d
2 C8 ~8 ?, F5 |j
# U& [1 r6 h2 b; I4 F. K% s: Z. T( P- R& E# U7 F
= . |+ \. L# ~% c5 Z; U( u
vol(A / q. m- a: k- h2 m2 _: f
i, \5 S) |2 q/ C2 [$ S% W
  {& O7 A- U3 ^0 X. d: J( d
)* ]0 b- Y1 {/ c0 J2 g% F' @6 d
1* X! O" d: m% E9 o- P: D
) C& \) e3 [9 ?8 V- M" @
7 _' w2 ]5 l, v1 G
j∈A 7 j% }4 s( Z2 [7 z& [2 o( N
i
3 T) `4 L8 L6 T4 d8 M3 j* ]: b' h* b6 Q. U

' U! ?$ k$ C, p# u8 ]* T9 C# a9 _' e6 K, {% R% s. F/ J/ ]* _
% B& U# V8 u- y5 N* |% ]) N$ o
d
3 Q# `* |; ~$ Ej0 m  @( l8 X$ \( X6 a, k7 ]# h

, U: M, W* f0 K; b0 T = - m2 i+ V! N3 ~# {8 C3 k& R# U; T3 J% l
vol(A 2 ~2 n9 S) h& A; x; `2 v
i
$ b/ R1 z) s9 y3 d& R/ c" G- Y0 J. e  L
); R( B, t5 E/ c, M  P
1- ^. K6 `3 k0 e- t
0 m8 c5 D& W# `' G
vol(A
! k/ R; [6 ], P( Ni
) ]3 e; ?  N( ~* C, e# Q9 R+ G8 U9 T9 M; n
)=11 k6 S4 a. s2 R3 \! P+ {& ?
因此,此时切图优化目标为
; i  |* w8 D$ }1 W+ u+ F5 t
, i; \! f' C0 M% z* g0 Pa r g m i n ⏟ H t r ( H T L H ) s . t . H T D H = I \underbrace{argmin}_{H} tr(H^{T}LH) s.t.H^{T}DH=I
/ o4 F8 \7 X; f4 b/ x2 a2 O' pH
" b. [, S% w. ~. H1 margmin8 p: i4 B$ i3 x7 O" ~& l
# |4 ]0 t8 f7 H

3 H4 {( d; e4 [8 r. w2 j8 T, [8 g4 i( T
tr(H ) J, y5 ^7 U, z/ a$ f& g5 i  ~( Q
T3 J# T( h  D- k/ _; D
LH)s.t.H
, \" o9 H1 U: S6 l& JT9 B, M" j4 K& P
DH=I. G$ {2 e' `- Q

; o6 ~" J3 `/ B4 F  \' E" m但是现在矩阵H HH中的指示向量h hh并不是标准正交基,所以需要对H HH做一定转换。令H = D − 1 2 F H=D^{-\frac{1}{2}}FH=D
! n3 U/ y% o, f# m! z
* {  \* y$ `, P2  Z  c- m0 \! d3 Y- M& V
1
( y+ Q2 B5 n# q: S1 h: ^" V  V- {# M/ w: Y( g- `

* S. U' {6 S7 X7 O  R! R7 B- \ F,则H T L H = F T D − 1 2 L D − 1 2 F H^{T}LH=F^{T}D^{-\frac{1}{2}}LD^{-\frac{1}{2}}FH 7 t, H, ^! Z, k. h0 e( S: I
T
5 q( r/ \( B) K. _1 M* j LH=F
+ ]& X! L# d  e, k/ @9 x; z& }T0 ~: h& u( ?* Z" C; C. v2 t
D
) }( d  n7 A! P6 c# J9 `% t/ k/ g3 P" p
2( i, ~; f) S1 N
1+ a7 D' `6 O! Z# C! C
3 W: Y! \4 O4 A$ n; _4 I
0 f& j* E9 {& ^7 C2 H1 j
LD : T" Z- _- y. u8 G6 O1 \
7 G) B6 w5 p$ g4 L' X8 m
2; a5 v4 _% C) r. b. \# T
1: W5 z2 q1 o! T; c% d5 e+ c
; h! D  f) s/ x  D, G" [9 \3 C
. e" E- v2 E, F8 g1 a" j1 {6 |
F、H T D H = F T F = I H^{T}DH=F^{T}F=IH % v0 p5 M% h: C' M9 Z! l
T: g1 B: ?' @4 |) V4 R4 i
DH=F , V* a, E& ~% [0 [* m7 E
T3 F: v- ~8 ~# }1 }6 K
F=I,于是优化目标变更为
# U8 M2 B* G* y% {5 f. o) J. x* ha r g m i n ⏟ F t r ( F T D − 1 2 L D − 1 2 F ) s . t . F T F = I \underbrace{argmin}_{F} tr(F^{T}D^{-\frac{1}{2}}LD^{-\frac{1}{2}}F) s.t.F^{T}F=I6 a) F. x5 \) v2 a% X
F. t- P' F" y$ u
argmin
* M* s$ G, c! t! e' ?: K, @7 v; {/ l7 w+ L  @
+ Q+ L3 k5 f7 ^: v9 J  u

  [: R$ n7 c( C" @- w  g tr(F 7 ^# d* u; N5 T6 @0 N" Q
T
3 n1 W) f1 b' }6 T7 ~$ q1 h9 ^ D / C, s3 f! o$ g- Q0 [  b, F% e
) q. N) }* D: b3 |
2
9 q# f8 l5 J+ Y" S1; S" N2 ]& r& k. l+ A

0 _/ C& X! z5 v. b6 Q4 v. x. {5 v) ~0 N  E' m
LD   e& x% e% m2 Q; \( b. y
! E* }$ r# e9 ?
21 `6 }1 [6 t7 \
1
% L( t$ b2 D7 f
* U* j6 p2 a1 |0 I: I+ i# T" q3 ?+ ]6 T2 [' u9 i7 }; s
F)s.t.F # n. y2 B8 z% r" ~" Z
T
3 H$ m& M* l" r7 L9 N$ h F=I; q( ]7 d" [  `  p  c2 G  _3 e

2 O  L& J) Z% ?* Y" ^& \现在,和比例割一样,通过找到D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D
( a, T+ }, s7 F" B. H: x
  {" |1 a) B5 n  Q; M4 b23 h4 L: x. d% M3 s/ T! X
1. y# s0 m5 ]2 B% \! n( M
# B5 u  q5 U6 K0 }; F2 X- I
# K9 E! {! k# K* i4 z
LD
' j; c; Z4 F7 ^8 {. E/ V
3 A% e% ~$ ^7 K+ c2& k# a7 i" `1 Y$ p/ A  @4 [& i
1/ b0 [; |& I5 x2 s

( R* n0 h$ y( ~- E
6 _2 m, H& T! t! `* ]$ ]! ~, X0 U (就是之前的L LL)的最小的k kk个特征值,可以得到对应的k kk个特征向量,这k kk特征向量组成一个n nn×k kk维矩阵,也即F FF,最后对F FF进行传统聚类
3 o3 C# s, ]# T5 x7 Z
/ }5 Q) Z* Z% j一般来说,D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D
/ m; w: q2 c6 @9 @' @0 \( y+ E0 t5 O7 ]6 E! w, m' @
2
/ P2 I4 H" j' x19 D9 S" U- t7 ~, z& B

9 u3 R# e& \% p& l. h- z( {, v- A9 s! y2 a8 F
LD
$ A/ X6 `) B) F: q9 X
& T* I( B8 E% O9 y. ~. H$ |  b2% L% I& i# v- J, P- t
19 Q) T. l$ R$ j4 U$ E9 K; S0 x# `
3 I- O0 N7 |6 T$ ~) J5 x
8 z9 L9 ?8 i; A  t6 _  v
相当于对L LL做了一次标准化,也即L i j d i ∗ d j \frac{L_{ij}}{\sqrt{d_{i}*d_{j}}}
; _  q' p! {2 E. \1 `. ^/ od
& ]0 D4 C% |% O1 {5 |# d' r; ~+ ^i: a, V+ K( [* u: D* x

3 x$ u; g" I$ j ∗d
, v! K9 r2 I. [3 {5 Bj* H  Y- u) w1 R4 R( {, P- K( \1 I  O
& e1 h6 ~3 ?- \' b6 {9 _) c3 A, f
* e. V( @; M' L1 x" ~8 A7 |

" ?: _& {* b2 e0 p/ i- p1 E3 J; T2 m* N: Z' _# Y0 Y
L 1 |4 N& Y, e' u  q; V
ij
2 z2 Y* `3 x8 N& P/ [/ K1 b3 L, f
5 ?5 b; x  C2 c/ {
  R9 h) q0 O( P& `9 ?9 j( P# V: W: g  C8 L) B4 }4 ?2 j
: h! T. F" M2 b3 q  S; a$ U, |% b; g
二:谱聚类算法流程
0 d. }) v1 Z- e8 S7 j9 b) `' x) Y给定数据集D = { x 1 , x 2 , . . . , x n } D=\{x_{1}, x_{2}, ... , x_{n}\}D={x
3 @& d7 I) k4 q0 {. j" O( ~2 C1: X# H# R, A9 Z/ K
8 c5 e9 ^, d0 v7 [( E7 ^- S
,x
4 B5 G5 C( h% b1 N2
: |- p! n4 ?' N: j* C
+ T# _; R' T& X# {9 j( q, C7 c8 O ,...,x
4 @  d  Z+ c+ cn, ~) d; i) k) `5 F$ d

9 u( |8 h# }# v }& R& z4 t* U$ J* `  J, [) i, Z1 g% O
% c% Y3 A3 n" h  u9 W: y+ b: K: {  V' C
根据输入的相似矩阵生成方式(一般为高斯核函数)构建相似矩阵S SS(AffinityMatrix)* }* A! \8 E8 d) I
根据相似矩阵S SS构建邻接矩阵W WW,再构建度矩阵D DD. v9 C* _, [2 K4 t8 k4 G; W/ G
计算拉普拉斯矩阵L = D − W L=D-WL=D−W( }! J4 M1 y) B/ V' p
得到标准化后的拉普拉斯矩阵D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D ) m1 j$ r/ a% w$ ]' e9 ]
: X+ q* @; P6 z5 M
2- `5 Y- x: h! {  E
1! ]& K! ~% N' V4 f
7 M# U) M0 d1 f/ m% H1 g% l
- M' t0 t' h* @' c: K) `
LD / d+ w$ y4 ?- B! I: F
3 H/ f( @: |% s
2
# T- b: t3 ?8 l; s1
) y" b/ i& b3 F. t8 d$ {- d, y
* s% T" a( \" F% F/ t+ K, H1 h- ]1 A7 l7 [  M6 }; C
4 y$ S. y' l0 C! X
计算D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D " T3 D1 O: J7 o. U. G
9 U/ j6 F3 f2 |! y* e3 n, N
2
) e, z) D" p1 k9 M% L% C. e( b1
! L; G- e) G4 U1 y# d4 f. s1 @, K, ~0 S" W' f( p5 m

! }0 R, M5 I$ M. y, H* {- J/ Y/ R LD
  d2 g4 b4 S& U1 c4 w0 I' S: K9 f; g
2' L! h2 B7 m0 w, K2 b9 Y
13 b9 g; I1 s* x
2 ~4 p3 ^) r. ?. j$ s! k: C

" Z2 |  @! W( N& X& B! j7 w 最小的k kk个特征值对应的特征向量f ff
, R* E* f8 N; Z+ \3 C- S% j% I5 J将特征向量f ff组成矩阵并按行标准化,最终组成n nn×k kk维的特征矩阵F FF
! P8 Z5 }* D9 }4 A1 Z# U, AF FF中每一行作为一个k kk维的样本,共n nn个样本,采用某种聚类方法进行聚类,假设聚类维数为k 、 k^{、}k
" C; `9 u' a1 E1 V2 Y) k$ q. V6 ~) l) V: d

9 l4 [( K. n/ o: a2 }得到簇划分C( c 1 , c 2 , . . . , c k 、 ) (c_{1}, c_{2}, ... , c_{k^{、}})(c 0 g; Y3 x. H- ~' F' g
1% }6 u3 D( R0 v7 ]# U8 \% E- V
8 [  O8 K% c# r1 u
,c
  M3 g+ T$ d* ]8 w2 i2' \; r; h. D% d/ i
$ Z: u7 x! o( N# F1 K+ ]3 t# \5 o
,...,c 0 t, L' \. M4 U0 t
k - E9 Y; T7 I3 k, @8 Z- J
3 Q6 v' [' |6 J7 A
: z2 m. s9 M* e9 @; {$ c6 I( d6 [

0 c8 Q1 E( G+ G )& {5 }; D" \( @& [  p7 A
三:Python实现: q! z" R5 L% R. q
import matplotlib.pyplot as plt
2 o" D8 c3 ~9 |% U. Jimport numpy as np
" I+ B/ n, M5 @! v1 pimport pandas as pd
, v' c, m- \9 z' Afrom sklearn.cluster import KMeans0 i) H4 m, `( {5 P1 I
from sklearn.metrics.pairwise import rbf_kernel4 v1 ]  s( x3 H. l: r
from sklearn.datasets import make_blobs
8 h3 P7 j9 R- M) O+ p/ Xfrom sklearn.preprocessing import normalize" S& k7 ]% R% w, R8 f9 ?1 |/ Q

- v& [- G' f( Z6 L+ m/ c+ S3 Vdef get_affinity_matrix(data_set):! A; n) M7 Q% T0 q
    #  利用高斯核函数计算相似矩阵(全连接)
" Z% d  e+ p# v5 Y- q4 e    rbf = rbf_kernel(data_set)& Q# {0 H; a0 I& u: y+ z: U) z. d
    for i in range(len(rbf)):& E2 e4 u( y" p  E' K
        rbf[i, i] = 0  Q  s* u0 f0 v2 s% k
    return rbf) z6 ]" _0 X( k! y% T
( n! Z0 {1 H" p* l. ?& m' @- E

- v* z: x+ h0 Kdef distance(x1, x2):$ q1 Y$ v2 [: J
    """
- l) q, a) J6 M7 |; O: \& z    获得两个样本点之间的距离3 i. v. W9 _( ~$ ?6 ^
    :param x1: 样本点1! J# Z( r5 C+ A, ?0 q* j' O
    :param x2: 样本点2+ s: v( s6 T  ^6 f9 J+ Y
    :return:" ~, j. N5 }* ]7 e
    """8 z( ?: T9 V6 L* k& d( d" B
    dist = np.sqrt(np.power(x1-x2,2).sum())
- {* @3 |" q! C, u; d8 W' Y    return dist
) i/ y* Q* s# T: Q. V$ |0 q  }3 D0 L4 u
def get_dist_matrix(data):3 }, u6 b; r) @" B$ e
    """0 F/ v* k* H3 \
    获取距离矩阵
2 [1 F; m/ t3 @    :param data: 样本集合
) S9 ?' n0 a3 t' y! V    :return: 距离矩阵4 J* R( D6 w0 ~. `7 K* ]; a
    """
* g; j0 V0 ?. J) B3 Z" V6 O/ S    n = len(data)  #样本总数4 v$ a9 w# R) _- u& Z% y
    dist_matrix = np.zeros((n, n)) # 初始化邻接矩阵为n×n的全0矩阵2 p) W5 x5 l) V3 M7 b. E( W( p* y$ y
    for i in range(n):
, ]$ ?% K7 {. `  t& V) @        for j in range(i+1, n):
2 g4 u9 {, W8 R% C            dist_matrix[j] = dist_matrix[j] = distance(data, data[j])+ y$ O5 E& j+ S  f* z5 k- N
    return dist_matrix' {4 m- k7 ~; x+ y3 J- v5 Z
4 y( K3 \3 }/ s8 m' M
def get_W(data, k):
( z: K: V: X) q5 B) O+ M1 C    # 获取邻接矩阵(K邻近法)
. t, l6 ]+ _+ G$ d0 J    n = len(data)
2 }  b  g" u! G    dist_matrix = get_dist_matrix(data)/ Y* p* {5 O" J' a6 s, L5 i
    W = np.zeros((n, n)), a, M8 Z& |8 r6 _  C
    for idx, item in enumerate(dist_matrix):
3 `8 ]2 d# N; O+ F/ V        idx_array = np.argsort(item)  # 每一行距离列表进行排序,得到对应的索引列表8 c5 Q" j% _" o: j
        W[idx][idx_array[1:k+1]] = 1- }& k" [" \' i7 h
    transpW =np.transpose(W); ]9 {3 I* y/ A. c
    return (W+transpW)/2
0 Q" L! N* p: ?
4 q; |7 H- p7 A+ b( @def spectral_clustering(data_set, k):
% p8 j, E) H+ W6 x- n5 G% U& |    # 利用相似矩阵S得到邻接矩阵W
2 V% ]9 X! J3 Q5 h$ I    W = get_affinity_matrix(data_set)  #高斯核函数(全连接法)
) h; K$ C( I. p3 Q7 r  P0 e    #  W = get_W(data_set, k)  # K邻近法
6 M  Q1 a+ @9 t+ l" ]/ Z- X  [
* ?+ p+ F% L6 K9 M    # 计算度矩阵D,并得到矩阵D的1/2次方的逆矩阵(便于计算拉普拉斯矩阵). t" D+ Q7 V4 W; o& l) d8 {3 d
    D_inv = np.diag(np.power(np.sum(W, axis=1), -0.5))3 u$ C* {0 n5 p* A/ r6 d: M. S

! }" _$ L( d6 z    # 计算拉普拉斯矩阵L=D-W
8 c8 b) X6 \+ Q+ I. {" ^    # 标准化拉普拉斯矩阵l = D_inv*L*D_inv=I-D_inv*W*D_inv
: D2 }7 m7 e; [    L = np.eye(len(data_set)) - np.dot(np.dot(D_inv, W), D_inv)/ w2 ?& d7 `; S8 X7 P
) [1 E0 ^( u1 z$ b
    # 得到特征值和特征向量
/ \0 |- T! H+ W- o9 z. e$ l2 \    eigvals, eigvecs = np.linalg.eig(L)8 _' ]% v5 `$ L  Y, p! M
' S7 Z, |; r" z* c5 L
    # 找到前k个最小的特征值(索引)* ^0 i7 L* O: N2 g  X4 U2 A
    k_smallest_eigvals_index = np.argsort(eigvals)[:k]
- ?' Z- N  J) |  m; l3 g3 T) o4 t* w
9 [: H1 L8 ^2 D; H# Y7 u7 q    # 取出这k小特征值对应的特征向量,并正则化
, ]% _) u2 K- J3 x    k_smallest_eigvecs = normalize(eigvecs[:, k_smallest_eigvals_index])/ ]* v: F# Y" B" B9 K: q
& I& `- o4 @( z/ c9 J5 d' Y0 _* S
    # 使用K_Means聚类! A; j* S- Z2 _7 k7 t+ ^& ~  j$ n# T. U
    return KMeans(n_clusters=k).fit_predict(k_smallest_eigvecs)
  d4 k+ T; a8 F
1 d6 D* h, G/ o; O2 ]' I
" f( y; F+ {4 c" G, l& B$ traw_data = pd.read_csv(r'E:\Postgraduate\Dataset\jain.csv', header=None)
# U+ O7 K( W* H( `$ W9 {" nraw_data.columns = ['X', 'Y']
8 h/ t& L$ W8 N/ dx_axis = 'X'
# N" o) w- I% Fy_axis = 'Y'0 Y! s# `1 a  B' e! S0 a
8 R# d: M# c1 d4 O% X  h: s) {
examples_num = raw_data.shape[0]
% F& u8 C& p4 u7 o3 U1 i7 Ctrain_data = raw_data[[x_axis, y_axis]].values.reshape(examples_num, 2)2 t/ H* e: e" I/ I! n, e' V0 _

) V5 |- g: E3 {+ g1 [2 l' {& x  k, G5 p' U# N# [. Z- e- I
min_vals = train_data.min(0)# Y0 ?" S3 G: z; @  O: x
max_vals = train_data.max(0)& q, K2 D1 ?! D4 B; j$ k* D+ }
ranges = max_vals - min_vals$ G7 _! b7 J0 \) B
normal_data = np.zeros(np.shape(train_data))1 z. {& O) ~$ R! r
nums = train_data.shape[0]
( U5 c3 V" y& C* N. I& Nnormal_data = train_data - np.tile(min_vals, (nums, 1))# \# N, e- W- A, D. k
normal_data = normal_data / np.tile(ranges, (nums, 1))& k2 N1 F' {! t' I; A. m% a: }
* D* c3 A# K4 w% D
labels = spectral_clustering(normal_data, 2)# U, i7 H$ ]# T) C3 E
! h% }- \% n) K$ B! A$ z
# 原数据
* {' u" g: H; H( Dfig, (ax0, ax1) = plt.subplots(ncols=2)
! c8 @) n4 Y! Tax0.scatter(normal_data[:, 0], normal_data[:, 1], c='black')/ e7 |# Q( y0 a/ x
ax0.set_title('raw data')$ u3 D, @  V4 _8 H: |, A
# 谱聚类结果' I- H$ X( T( [( E2 a& d( }
ax1.scatter(normal_data[:, 0], normal_data[:, 1], c=labels)
) R" ^$ ~% h/ T& wax1.set_title('Spectral Clustering')  u, s+ w5 J/ E9 E: X

# B: j, {% z# I" L& zplt.show()
9 t* e  y; K$ v- ~/ m5 f% z5 z% {+ z  @
1
- p# x* |* P  M25 [! T; F8 p. n! \
3
7 H. p/ {) N& [4
8 x$ @2 h* |8 D' y: O4 g5 z5) ^4 R1 r2 R9 V$ m
6) }% S. h" ?# R; p
7
+ Z/ N& Q4 J1 g1 `81 L+ r/ j& r( v1 B" z/ K" f! `& O+ v
9
( o) N) m- [$ }102 c9 I8 C6 U+ C: w
11! {3 G5 S' z9 O  D
12: Q, ]- Y! X/ f2 i9 C+ n
13, e" Y% g& j3 k! |: @5 K: a
14
- d3 }! _6 u  m( W" c& H15. M$ X6 ^& p' ~3 C' v- f
167 @' y" H7 ^, G7 b- J, l; u* O
170 C$ O3 a( t7 Q8 v; |
18
# x# z# ~, |  m, m" @# C19
" D8 {. A/ V- R3 X- o. X/ u205 A0 w1 i0 r* F
21
; h: l) Q, F- a6 F% D22' R5 _7 j2 Z% I; E1 _3 x9 W4 g
23
$ ?! T" v: p7 D249 m; {3 ]% P7 \' B4 {
25
6 p1 ]( x0 U+ U$ g268 E' o9 e1 C  L, n; [
27
) `. e. B7 f8 t( q7 c! |7 k28
& w; l& Q% e% ~3 z29
1 Q. `: _# N. g30- K  ?; a% b4 L) f$ d" o
31
/ ~# t( e9 R7 Q, @' ~: x* M32
. C" f2 _; s0 r$ C7 T7 |33- w1 O% J+ H% ~
34
& ?) `& P' B% y$ T# m- T35+ Q2 B" f; E3 \
367 O. w: {4 U- U6 B, d/ [' x
37. o6 F3 T; {, X6 o1 d
38
! f7 F0 {9 @: o- z" p* x( {4 K' }. [& A  e) ]39+ i9 j' j& y! ]1 p
40
+ N) m- `' z, @8 K* D3 f$ \' f41! k7 s- w! ^2 b: _* ]! k( N+ t# H
42/ f  p) t/ \) z' k1 Z. R7 Y
433 T4 @6 q, {7 ]7 V' ?; R
44
# n) x4 S9 y4 A45) C' l6 ^) W1 ^, i8 w
46
* V3 z% l* R" L3 U+ y& U47# f" q) j% ^+ A2 t
48
( H  \. d2 s8 i1 O49
9 R2 u8 e' \) r3 m50
/ s/ w: [" x' `% U# R51! W, Z2 s6 p% C- w0 k
52: q7 p( M. B: _. N$ D
53
2 Y! M% I  y: b3 r5 o- X542 Q3 ^. J7 Q/ G: m; v; V# E3 \1 a% K
55
6 [9 D  x4 x( M5 S56
+ J  {, P/ N( |57
1 S% E; V- q; M) g2 T" {" l. S; k58
* \+ y7 d7 X: v( O/ j59
; h1 D1 {* Z! B! R60
5 v% |- D' W8 y* E; K2 ]61
* j( H" o8 R3 u" ^6 r" {$ ]62. y& g  m/ z. U* p4 Q8 t0 Z% S; X
63
' A2 {8 @) f+ X8 m# N64
; Z. E* b! O2 E65! c, @* ^4 n& c' l; U% l
665 A. S3 b% D, W: ?% P; {
67
8 F) S0 {  L1 _: x, W3 B) C4 g68
" N7 n4 s5 g& N: W6 ?69
1 I( H- O, m% I+ C70
% @0 j" p! y/ A71
1 T5 b1 x: z4 }; n2 L' Z8 _; b5 L726 Y0 O2 u, S% x# M0 F0 L6 B9 l/ t
731 [8 B  }3 H. }  f8 t( y  }6 t
740 C: p' @  f  \5 z, d' ~
75
) k2 K( _$ |+ Y# T+ Y$ V76! o# J+ q; E+ X) K  A+ D
77
  R4 C* y! n! R: B) c5 z788 k2 |8 [0 Y" g- ~* F$ d
79' ]8 o5 y  l" T5 C
80
/ Y0 z3 f& y. i1 Q+ o5 H. J$ W) y81
; h- T1 v+ X" ~5 J82
8 b3 `$ @/ `8 P, h: B) |, Y832 p" s3 R, R! q/ v; D  n- C
84
) d! r7 ]+ E) U) P- W) @85
2 ~0 B0 h! l( Y. w86: E& B6 C3 L: Z, i$ j2 q$ ?# [
87
6 k1 Y  x$ e* O3 @88- D# I/ ~* y4 V2 ?
89
6 {( J# S) z# A. e) N90
/ T: r  E& i0 c! K% }6 d91; F! O8 A" h6 W! B  [7 ?
92
  I3 G, s8 [8 ^/ V: N' k& V! ~  S93+ r  |0 x1 s8 K/ Y
94
" k  @  r, z0 A+ S, i& a& t950 _% [9 s" G( h  z! A
96* x" b( c7 b( ?3 v; h
97( S5 z' b3 Q5 V* |; G
98
' ]9 y+ K( S! k. N+ q3 D5 H99
* s0 h8 i5 W$ g* y. v7 z% [- O5 L100
2 d+ M9 I3 b# v8 u7 M) P! K101
/ {% z+ P5 k) X! B& E1025 o7 }9 ~" q, g; W$ J
103; o0 M6 |4 Z: U. p
(高斯核函数)
) f- X' M$ Q+ ?; l
: n* n9 v3 U0 E+ R5 _7 Q4 z2 j
4 s% U( x) I- M+ o# X9 X( _(K邻近法)
, T" `7 e0 x7 M4 ^7 T$ z( y/ X
- Z/ x  @# @8 {  g8 [+ }& j- }, s" d& j2 `$ |+ x4 j
四:谱聚类算法优缺点& ]0 b2 o& I: k* z1 r7 f$ [( M4 V  m) V
(1)优点9 j8 `, ?1 A' m) K+ y
谱聚类只需要数据之间的相似度矩阵,所以对于稀疏数据的聚类很有效: p6 y- ~: L2 `+ A; y5 t* m; Q
使用了降维,因此处理高纬数据聚类时复杂度要明显低于传统聚类算法
+ \* }* }7 L; M" I% D谱聚类算法建立在谱图理论基础上,与传统聚类算法相比,它具有能在任意形状的样本空间上聚类且收敛于全局最优解6 s: H' I5 O. ]+ y1 s. {
(2)缺点( X: j+ A& N$ F4 U7 n, K9 W
如果最终聚类的维度非常高,则由于降维的幅度不够,导致算法的运行速度和最后效果都不是很好  j9 }, \: p. w' Z3 K6 \3 n
聚类效果依赖于相似度矩阵,所以不同的相似度矩阵得到的最终聚类效果大不同相同
/ J! |  A; P3 l% h————————————————5 S: y& N  `( y. k% h; v5 K
版权声明:本文为CSDN博主「快乐江湖」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。- h/ E: h7 a3 s% x* {
原文链接:https://blog.csdn.net/qq_39183034/article/details/126747494+ S0 L6 |) j1 K

/ |  s& C2 g) S+ v* K7 z9 o- [  s2 P0 j9 v+ ]- z. |, R





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