数学建模社区-数学中国

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

作者: 杨利霞    时间: 2022-9-12 18:41
标题: 【数据聚类】第八章第二节:谱聚类算法之切图聚类、算法流程及其实现
【数据聚类】第八章第二节:谱聚类算法之切图聚类、算法流程及其实现
) {# w6 q& ]3 o  P+ o. i1 T& K5 M& K& S3 P, B7 W
本文部分内容源自刘建平博客,在此基础上进行总结拓展
+ b# }, P" K3 x1 P3 ]
! C! B4 Z5 }% w原文链接, ~# U/ d+ p1 S  R: O" Q! K
文章目录
; {* p1 t1 ^$ F3 |6 \  ^一:谱聚类与图划分
* _# v6 @& ]/ q4 z(1)比例割9 g; G$ d- {% n' j* G& t$ R$ \
(2)规范割(常用)
  F% h4 M% A6 X/ l二:谱聚类算法流程
+ t. q5 Y# Z# a# W三:Python实现# m# X& L0 s/ Y
四:谱聚类算法优缺点$ }/ F" `/ s+ Q, c
(1)优点
. f% l4 J& X- Z- f1 f5 p: p(2)缺点. [5 X" V/ W" Q% e
一:谱聚类与图划分) c9 D! s1 M1 e
无向图切图:谱聚类算法根据数据点之间的相似度将数据点划分到不同簇中,因此将数据点映射到无向图之后,可以转化为图划分的问题。对于无向图G GG,切图的目标是将图G ( V , E ) G(V,E)G(V,E)切分成互相无连接k kk个子图,其中
4 T/ q7 q8 b" `/ @5 l$ R5 B$ [0 F7 ~5 y& g9 _  [2 u$ G% p. B
每个子图点的集合为{ A 1 , A 2 , . . . , A k } \{A_{1},A_{2},...,A_{k}\}{A 9 v" C: U. y: R& i  }& Q+ S
1
3 S. e) N( U) `4 F# a( u, Y
- _% R/ I3 z! u: V% @ ,A ; C) z- j% q4 `) H9 ?) [- E
2
' m8 j% z; Q" _( ^8 w  N' B" x2 L; }( ]$ ~& J/ t) c3 R4 J
,...,A # W; A4 i7 R% d! A5 V( T+ I4 E
k
- y  \1 E& n6 s2 s# ]- H1 d1 d+ P6 D7 A
},且满足A i ∩ A j = ∅ A_{i}\cap A_{j}=\emptyA
7 [2 `# @# P* c4 }- a" B' G7 Mi
4 I5 L' z( `( W! ]+ |9 }9 h
) Y3 l  K% h- v! v9 C' K ∩A ( Z2 ?4 j6 }4 b' |3 I) F
j" J# \1 @+ P6 i3 p" r2 P+ L( x. w

3 V9 _- r; o1 D. F! s5 } =∅、A 1 ∪ A 2 ∪ . . . ∪ A k = V A_{1}\cup A_{2}\cup ... \cup A_{k}=VA
4 ]& `6 A, x( \) L1
: J2 x9 b5 P5 I" l$ @+ L( }2 h
* z+ [2 Q- i4 K( u, I ∪A
* z% M# j$ `) q2
; ?& Y7 T. X  T. _# r; J
* l# r& u7 r! c ∪...∪A 6 v# z; Z1 |. ?% a# ]& y  z& W4 Z
k, M8 Z# r% l7 f  A8 \/ T( j

, i9 j' D6 S4 I =V
  C) o5 t$ z" {( H6 u7 E对于任意两个子图点的集合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)=
* [& J9 ]' _2 k0 n% U6 ]. A3 [7 Ki∈A,j∈B8 L& l5 C3 P: T% f
: H( I3 M* u% A; u; m% s* C
7 U2 W: \# Z6 Z* n$ f* W
w % G# f) q  [7 Y2 p
ij- y. c6 o$ i4 D# w- b' R3 b) M8 O8 {

2 t$ n/ c! C3 d# m. i' I, R# x
1 b6 T- Q# g) \- Z7 v  R对于k kk个子图点的集合{ A 1 , A 2 , . . . , A k } \{A_{1},A_{2},...,A_{k}\}{A 8 s2 P' L( N9 N5 Q* Y) o
1; v0 N) N2 A3 v2 G5 l
+ Y$ C: M" W7 l# K7 a) A' F
,A ! `4 Z# r6 u' A6 `% E  w1 ]. l$ W
2
1 K+ M/ q& l9 X8 Z, @3 U9 I/ z& a! P
) D" i8 a% Q7 f3 E9 H2 C; k ,...,A   @8 T1 o5 g) C3 [1 N' v
k# d6 v1 `( r0 g
5 z( L$ K( S; F7 X, @. x
},定义切图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 8 }% d' T1 N( g7 Z
1' ?- D* o, k2 g$ H) m4 Q: n9 Z) _
. q% H  ?6 e8 j3 e: Q0 c9 q
,A
$ g, E3 m2 g( C' ?20 l3 V0 G" `. N" f: D0 g- r
% c' E  {( L# C0 ?9 p5 H+ U4 I. l( j) L
,...,A
: e* C7 w3 l. F. f* Lk" l% {/ Z7 M: e- F0 F% ^3 G
0 R" A7 |0 J, F7 z
)= - l9 H3 P* W7 |4 F
2
6 |. |, T) l( K8 v7 c2 e1
1 ]) G! i& M' y7 J+ Q# d
* ]  T4 Y- O1 b; V0 t) z
# M( H% Q9 g2 N) W* A/ Ti=1
/ Q+ x9 P. U! A8 _! G. ~; @. t$ [% h3 A$ u  U7 T' [, `) V
k# n: v! ^. Q; a& {/ v" u. {
  W  b1 ]6 T3 v" M4 S
W(A
- P5 y7 c. P" t; w% i9 Ai
# c: z, k, {" d. m8 i- l1 d9 X. `0 h  _* g: T
,
) H' x! |" u6 B% m0 V' _1 W9 ^$ U( lA" l- K; u2 @  U9 H- y
ˉ
0 i0 P+ m; e5 s2 h
$ ]8 V$ ?0 q4 Ci3 f# U- [* z" B% U- i7 ?9 r

" O  L! b. z% w! r' A- V; z ) (其中A ˉ i \bar A_{i} * Z$ d0 h7 N% l5 A& E- F, j$ R3 e
A
4 f& ~5 J6 D6 V& `6 Oˉ
2 [; i  p5 `5 U% O; G" }* \
$ n( J- a0 n+ ~& V" Mi8 Z/ Y/ N5 t3 R0 t
5 I% h! {& q+ j; Z
为A i A_{i}A
/ k' z; I, B5 a1 J, z  i4 o* Wi/ S# i, G# g/ E$ ?$ b+ ?0 y
9 x5 L, c0 B5 @+ T! b) E6 N  W7 @2 ?
的补集)7 u+ G5 {5 Y; F9 e+ y" R
可以看出,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 * p( q- n0 ?, Z- s6 r0 \- k. V
1
6 p6 @0 h5 i" C, b" L9 }$ _! _, ~4 q) z; I* h. L4 x% J; K
,A , L( i, g' p2 Y" i2 m8 e! o
2
- D6 |' v& [6 C7 F3 [% u) `( r3 |6 Y/ W1 w: s
,...,A
, Y: J3 o' @3 V' g7 Fk
6 H) q5 D. a+ ^) E* x
/ x$ [" ?/ l; A1 K  ` )= 2 c; L2 l& ~# _4 |
2
' Z# }# P! z8 |0 d. q' R1( k6 P& u' F$ ]+ G/ C

7 U2 G' l. s/ K0 m( A7 ~
- R$ {% t' t, @: }: o) f% N$ Ii=1
" Y# s5 Q2 o6 R% `4 N0 g% \7 i
: s, k) l7 e7 K! B! h$ ok
5 ]" U% T5 x4 d/ v6 e" p0 c) Q7 v* b# t
W(A
0 V5 ]+ ?# K6 S6 k9 bi6 h5 o, I# b: q

2 M/ t9 Y9 ^5 ^  O% r! { ,
; a3 l2 }3 k2 }8 B- q/ N' LA
: H8 ?' j2 j* |- A. v" G/ kˉ
. p; i) {* x$ q, [* ~; q0 ?% [7 W2 ]# f9 _6 }, E
i. S3 B" ?% s5 S. m5 u

1 T% O1 \# s+ \  `/ Z9 {' ? )在划分子图时并没有考虑每个子图中节点的个数。所以在某些情况下,最小化c u t ( A 1 , A 2 , . . . , A k ) cut(A_{1},A_{2},...,A_{k})cut(A
; C2 T7 G1 @: h+ M6 b16 l& E5 x: }* y7 M
8 w1 S6 l' [" d7 v+ e! ~  x1 r
,A ; u) M% N  w. c) l7 S. j; [
2; b' `2 ^' @" U5 Y! @3 L

5 e9 s, ^' G, x' z  r ,...,A 8 A" Z# ^( h+ U: w
k  m6 |) \! V5 U

$ J' h3 g* L4 d% T8 S; b )可能会把一个数据点或是很少数据点看做一个子图,导致子图划分结果不平衡$ ^5 f% z- ]' I& M
6 S2 Q! x8 h* ]9 f2 X
例如下图,选择一个权重最小的边缘的点,比如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
; \: l$ n% J" F/ z5 J11 g1 ~+ o  I3 Z

; N+ |# b) Q( Z# S+ t! d: ]2 J ,A 8 [( L/ \2 [6 K1 }2 J1 ^
2
3 C$ n) I# Z. D
4 |2 ]% N0 b2 P- [5 b ,...,A
4 S& l+ G3 x2 Xk8 f- s8 y' B9 l$ P3 D6 T
4 }+ N; o. Y+ v) _5 G
)但是却不是最优的切图
9 h6 Z9 L' F7 }* i; l$ V$ n  \6 @! h% D: U5 i
为了解决这个问题,会引入一些正则化方法。最常用的两种方法为比例割和规范割
% V$ I; Y6 }1 {) |8 D7 }( }
( T# s" P3 G1 w  P3 P& l比例割: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
' T& o; G; F! P' |2 c1
3 r& N3 E  F. X9 L# s2 S. D4 y, U$ u
, T" S, }+ O2 F" W% ^3 i3 j3 P ,A
' ]  z, M' V/ m$ k. E4 M2. `/ T. o  V7 z. s' m
' ]( q3 J* |: {0 Z. d" B# @, n
,...,A ' K( [  v, }; @5 C, Y) m
k
; l5 F5 v6 v+ Y# x! g( q
8 u: w& x1 X/ f( ]* m )= 6 z  ?1 \. G- Z7 _  a7 g( q
2: T, e, X) e( u+ Q* x* e# R
1( `+ N. Y" E- ^/ y4 z
2 F- s0 K. z" J9 T% a9 B: g

' M( e" z  {+ }% h- a, |; gi=13 c/ ~  k& a( @. f

: j8 T& B. R  z7 Dk
7 F" b5 _0 q- g7 N, A7 m& w) V! s
0 b( X. V, [$ b- X# q5 o- o2 l4 O, u. u- Z
∣A - l) t) c) w+ M2 L7 D0 Q1 h& U
i' y0 e% ?$ l6 O& s  T& u

+ H. }/ p6 p" e
* P% ^- B& C/ YW(A
( Z9 i& W2 h6 @0 Hi
( S6 \2 _& D- T  q: G3 k& t# g! q
  {0 P/ F2 @$ |4 o , ! Q9 m" U+ J& f4 m$ C0 {2 U
A+ E5 z" @( X+ P1 f; f& u
ˉ
* G! `; Z0 n" d' t2 @6 [0 b
* T& j5 q" x& ?- z( l4 m4 \1 Vi" R0 r" k0 o: I1 l0 ], a2 R3 K' l

/ B3 S" I$ e! u/ j5 h# D )
7 c4 h; m, G! X9 C- |( _' o
! J! S- K: Q, e+ T0 ^
$ Q) ?$ E& K3 C' f- E8 @" }/ J规范割: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 * A( n  x' T! _( C3 F& e
1
$ o3 }5 e3 a0 {- O
' k- a; O" M: U: ~ ,A & D6 ^9 F  q" i$ l6 u! u
2
# S- J6 `0 P7 N% j+ h! ~
. ~$ b( {9 t- D8 E4 k9 h" F ,...,A
6 P# _4 k& C) F+ }k0 `& h" ~$ F6 y% P7 Y2 p
7 j1 [# J, z- \
)= 5 s) ^, }1 y4 w4 F1 z
2
; A$ N7 d0 m4 f1 `! O12 C& o/ o- _6 n* W2 ]& G9 }

3 }% U& D4 i& x3 v  Q- p2 C
5 E4 q" J! k7 Oi=19 z9 u& t1 k1 T0 h$ U& k$ P4 m
$ m4 @! G6 M% u/ u$ i3 n* f* Q; Y
k1 y/ H  U3 `0 i
/ h4 `) z" T7 E2 e

: R( b3 _# L, z. V/ jvol(A 8 {! t$ Y- l$ u' N
i. Z$ A; X; q/ a1 y
3 Y5 W& w0 ^9 v. u$ l- k2 l
)
6 v# F7 }& H1 @1 SW(A 7 N" s9 @& `+ l0 D9 Z2 N# h9 Z( u
i
; U9 W& S: l' n1 S
  W  O( U- J0 t7 \; g( O2 k" |; [ ,
  u/ b+ i  @; Z* R# GA
* W7 x3 X2 x6 T% ?6 {" fˉ" W6 P" u3 c2 k

& C+ w. ^" g& ~3 ?7 zi
* ^% a9 d+ U9 O: b) f0 u" s7 Q/ z  \) ~6 S4 D( A, P
)
1 R2 K) I; I; T7 m# t7 |1 I9 I5 z- N. E2 h

$ x4 l. L) e+ n9 {* ~8 ]5 A% ~(1)比例割
) e3 G/ u2 E+ J) _# n引入指示向量(点击可查看指示向量定义)h j ∈ { h 1 , h 2 , . . . , h k } h_{j}\in\{h_{1},h_{2},...,h_{k}\}h & M- z7 E, r3 u+ d% x7 e8 u5 P
j9 K" h' F5 s  _% K) l( M+ r
8 {4 m. W1 }4 f3 {
∈{h - Y# j( J4 ?& {- S
1) c, N6 I: {4 b% G0 U7 M

$ q) l; k' U4 H3 N: o2 k2 ~; m, B) V% K ,h ! V5 }* c( d8 R9 C7 ]- T5 ^. E
2$ x: n- \  @$ R& o; K# P" w

8 L' @3 u6 k: e( u ,...,h . n1 t' M" {6 L% d
k% ~$ A0 L1 r! L# W# D( K( e
2 ?6 e. ~0 U9 r$ A6 p/ o9 l
},j = 1 , 2 , . . . , k j=1,2,...,kj=1,2,...,k。对于任意一个向量h j h_{j}h
' `! T) q. e4 O! Zj
1 k( s0 g, q$ P0 H8 e* n2 U& f9 f$ [- H. h* O- G* J( r9 t7 Z
,它是一个n nn维向量(n nn表示样本数),定义h i j h_{ij}h
. _  _+ C5 R& Q% ?9 e% t2 c! J5 Wij" e: G! D9 L; j: W( ]: r) K* e
# y) k6 a  a) n
如下/ l" o8 u( s7 Z2 ?. L( k
2 b" b" |# z, B/ B
h i j = { 0 , v i ∉ A j ∣ A j ∣ , v i ∈ A j h_{ij}=0 J/ s) g/ i& Y
{0,vi∉Aj|Aj|−−−√,vi∈Aj
: \& b& R: L% x: ]5 W( B1 ]1 c{0,vi∉Aj|Aj|,vi∈Aj2 q. t. w+ p3 V1 Q" R& B
h
; k, B2 F# W7 @ij
; x5 @3 x, v: l% C" G& ]9 I/ d0 O$ h5 c  ^0 z# u) H
={
5 u# K5 J0 R( U6 Q0,v 8 q. p0 S% |  z5 [  j
i
/ Z5 h5 B# Z; U0 B9 Y
( t1 P, X: n/ M6 ~( E! w% l5 ?( v- d& D! U* M2 J' C' U
/
0 E# `, I9 a' X9 b5 y1 g# u- U7 e4 GA
/ P. w& q  m/ \j2 G- H* K: \- _3 c

7 {7 L6 M" O$ W) |! C4 A- J
7 g1 e$ Z) h! G  I5 b3 p( ?0 O∣A
8 B- M3 Q. q1 Xj' S# g9 h8 {* E

! a5 s' i/ |% b! x1 P$ T; P( t+ m" B. p' g! W% s  H

6 M8 S9 g% P0 b$ E+ H1 \  x+ V  e+ h ,v
% W* O" |/ M' K& [i
- f. i5 H9 J0 _- [7 u
# g/ t/ q2 z% e+ T- b  B7 U ∈A 0 E  K4 A1 v- d8 C! r+ Q# K# f
j9 Q5 U6 H6 d$ W
: O4 ^& D8 V, J: Y
; f  r1 y7 i: r

/ m. s' C+ }. [; s9 V1 ~' A0 m' @0 N& a+ A/ x% s- X

, @7 `3 _: u' r: k$ `7 c: r于是,对于h i T L h i h_{i}^{T}Lh_{i}h ' V: P. o3 k% D: Y0 q
i
) @+ u6 S( m% w' r+ I" YT
) m) [, i% C8 l( j
9 s# a( ^. W' S. }7 G# x+ [) m Lh
! C) g1 w8 @+ x! l) [( \i1 F4 \; [* R% J: D' I( C* r

+ |4 p. J  T, f ,根据拉普拉斯矩阵性质可知
1 ^1 `( L0 ^% x& ?" U2 H% Y; D9 ^4 h; G  {: O
对于任意向量f = ( f 1 , . . . , f n ) T ∈ R n f=(f_{1},...,f_{n})^{T} \in R^{n}f=(f
+ o$ ~! ~5 x+ {, X4 @1& J2 _" ~) a% L$ [
5 N3 T& S% R/ a+ }* R- t- B' }
,...,f
# v$ h! \5 c* p' M2 P" P+ Ln/ {3 @: ?4 S. W) v8 `8 v4 w
  y2 u0 b0 X) H' G8 t: e8 u
) 4 h/ r/ r0 E8 D; z2 X
T! v" L1 g% K9 w& g4 l) G
∈R
6 Y8 W. V( U6 [- h7 i, Gn
: I+ b  y3 Y  e/ p# v ,有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
5 k: ]" l1 A; t( v1 q- e$ dT4 M7 Q& ?, ^4 \( f& K3 k  Q
Lf= % U0 t8 d' h4 m, b! ?( ?- L
2
: B3 y' X5 q1 Y8 H8 q! L1
; b* G9 R7 }* ^6 |) {2 ]9 V( U  s  @& R3 u0 X1 d& u' P* [

% }( s) w6 N, o; pi,j=1
: R5 B% }8 {2 P8 P$ [9 l7 B* M, D* \* b. n% {- r- a
n" p& j4 ^" S- F- y* @

( B2 c- R" E  y; f w 3 C# x' k- g/ A8 C
ij
" c: ~* Y1 W2 ~* J  `5 T* N' g) ]6 }4 U* S
(f - ~4 o6 T( b2 B; w
i* V& g0 n! C$ z' F$ U' O" k
6 ?5 K' V6 f1 g+ y$ B8 E
−f
2 f: a  ^( L9 q/ Nj
: ~( _6 S5 U; N' U2 O# U
- c! F5 Q- `" M6 g ) # E! J! }# c: O$ l9 t
2) k. ?( }9 L9 l# E- a$ {

# S5 [0 E5 m- g. _) nh 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}|}/ h/ B5 B% t/ V4 h  {; L4 ]& z8 g
h 4 L7 A! x5 b, I' o1 w
i. U, ?" L. q+ E" U, i1 _) N) v3 t
T
$ r- Q. V/ c9 i. f" V/ Q$ a& _6 k% N4 j% ?. }
Lh - e" y6 i" z9 z. b- s) p
i
; U/ f0 T5 A* H* \2 {( t2 I3 h4 ~" U' N$ j9 v6 m0 H
= " J9 U2 x  g5 I$ ~
2
- \6 _0 i) e& f( M" k12 h" o0 w; J* g: d
. H8 U( z# d# N/ h5 Y) X

& B0 @! T( v5 b4 z) Cm=1
& w1 K/ M6 n9 \% v( \1 Z! O. X7 e' v- {
3 o2 ^: ?8 V3 Q) s5 l; f, O

! R" |' y8 ^/ u7 n/ _% C1 Rn=1  j9 k/ v8 u8 A  Y
4 h+ V8 [3 i- Y- |( E/ C

7 E) T( i; T. t, F8 X! F w 5 P) N. o+ |# h" M/ ~& B. \9 a. z$ z; b
mn. I* s8 Q3 p! i5 c% h2 ^% z
4 h9 g4 b; X3 E
(h 1 a7 F' G3 a3 }& |
im. N# t6 D/ }- X+ k3 p4 ?0 V
5 \( @: I1 X) N9 R( p  @
−h
/ T' q9 Z* ]# }- R- K3 e; u8 f1 jin% _5 [0 F& O) X; Y5 b

5 Q* c, f- }/ J )
; |9 \, }, n$ c5 ^21 u3 v1 K9 m( x
= # T7 H8 G" Z; N+ N
∣A , p8 g7 c5 y  @! K! w0 V5 P
i
! @. X4 v& C" Z" e) r3 f: x4 E6 A$ j0 p8 j+ G: A$ p
6 |# t( F% E4 ]% C
cut(A
4 g0 V9 b* j. l. r: ji+ B& K, e/ k  c. B4 G! ?$ ~

% E3 h5 O) ^3 |& L , % H+ E$ A, s3 i0 N+ \
A/ K$ L8 X6 X+ f  ]) Y* T3 X
ˉ
! `) x# ]; t7 q1 T
& h; D# T+ r& u# Hi0 m' C- G# c$ R

2 G+ K. l$ C: U# F2 b5 w1 @ )
& n* u3 Y$ B( g0 h3 _; @! @" \6 l; }. T, w

. [5 H1 l; A% M8 s) b
! d. a& p/ g  T, |严格证明过程请看刘建平博客:链接
! `  @) o3 C4 ?$ ~可以看到,对于某一个子图i ii,R a t i o n C u t RationCutRationCut就对应于h i T L h i h_{i}^{T}Lh_{i}h ! W  J$ I, l0 r2 f. ]- P
i
4 l! \* z* B& [0 b+ a' a* LT% K( w* m- d2 h, L
% i9 L' d: t- V. `' O4 _5 N
Lh 6 F- w! G8 F+ V2 U# Z7 I9 Z7 O
i( E: [! e5 _1 p6 U% [
9 G* Y4 |" A& U* O5 @+ X
,那么对于k kk个子图6 w, q) O6 D8 [3 l2 Z5 Y5 \
+ h. G0 `8 P5 S, D7 _+ ^
R 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)
# d" Z; ]; I. N3 YRatioCut(A 6 {  e3 X& N8 g9 Q6 _0 v# B
1
7 O) J" i: {0 m8 f( c# X! F; [- c' O
,A
% W% J5 E; f4 J2 G2
) ?( Z# l9 t7 H% r4 n% @% D; L% x/ g" z: I! g' x& ~& V" L- t
,...,A 9 c6 y$ P* M- L+ o9 O8 o$ D: q1 B4 X
k
/ P( k& H6 N' T! Y+ a7 ?: N" h$ D  o) R( _
)=
- ^/ A1 e4 R3 c+ wi=18 Y/ k4 \: |0 e% ~
5 L7 C6 v' n1 ~1 D* p0 p) W$ y
k! f( ~- U: y# v* e4 Z* K

: Q6 ?+ m7 [4 ?) s# M/ x! n h
& m/ S" n8 [" I7 X5 y0 A. _; w$ ri5 E) x& c. B0 M! f! t* Z" s! h
T9 U& {2 L! L8 ?: e5 b
7 ^! A& G% K/ t$ @* U" v3 e3 }
Lh 8 t! W4 T$ M( O2 H" I, p
i% s* a6 C/ G2 x: h; o

- S( }. d0 Y# L* o7 s0 M$ Q1 N =
& H' ]" K' h# ^( r9 Ci=1
; c* n4 j' m: J7 u5 ~
+ T. x1 s3 {7 F% }: ]' L# |! Xk
0 F' ]2 m' c1 ^, y( y, q+ n2 F; J7 `* L7 m! t! S1 T4 ?# o
(H
: h. D! J' F7 }" i% T3 C- Z& iT
% T4 t- P# l+ b% E# H- {3 p. v LH)
1 Z( W5 G# i% S/ x3 c5 S2 ]# |ii6 {$ u9 i3 c5 [8 n$ ]

' N! J4 Z! Z+ I% Q4 L =tr(H
; u" l1 X: P$ P) FT
* q; a1 h/ j, v6 I6 q3 V4 O, } LH)
0 x3 \: ?  w5 O, k) P( U5 S& U4 @2 }* L3 w/ i
因此,R a t i o n C u t RationCutRationCut切图本质就是最小化t r ( H T L H ) tr(H^{T}LH)tr(H 9 G0 O  M) n$ T* |& c& W5 i
T
! s& K5 B. v5 V- H LH)。又因为H T H = I H^{T}H=IH + R* M3 O' O" D& k8 q7 y; q, z
T
- N0 d* c( ^+ {$ a  B+ G H=I(单位矩阵),则切图优化目标为
$ a" I. o/ w$ r& Y! P- b* W3 o% G* U
a 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. h' u( s% r8 L. A2 ^  f  a
H( V" Q; x! j/ ~" e  l" P1 d! c) `
argmin
% W5 q7 H+ d! L. g) U8 H; z; a$ ?7 A) l9 Q

% ]6 B. w: i+ z1 E! y9 q
% X+ [0 D6 i% } tr(H 7 ?2 @. l9 V( i" I
T. S# S$ @5 [, m5 L" |) o
LH)s.t.H + v+ R  }0 S0 m. E$ B
T
# M3 S6 i; `$ z3 t" A5 J! ^ H=I
. X) z! M! i3 }) ~1 m. T
( v8 C7 g6 n& a/ c对于优化目标t r ( H t L H ) tr(H^{t}LH)tr(H
4 A1 _; v0 U+ |' u/ tt& A- y* P% ]# B4 q$ Y
LH)中的每一个优化子目标h i T L h i h_{i}^{T}Lh_{i}h
. k/ ~1 g* J# s4 E4 U# s1 fi# g2 j/ V# G( F5 r
T7 j; s: H+ M' s+ V

  p# h" t) V$ w5 C0 s" J1 R1 J1 N Lh
0 B2 C6 c8 T: k! V( Q4 Ii
+ Y' M7 o* \" Y/ N
4 y* u5 K9 \- i) d. Q: B5 [ ,其中的h hh是单位正交基,L LL为对称矩阵,所以此时h i T L h i h_{i}^{T}Lh_{i}h
& u8 L- ?& M* I. fi
6 e' W) w9 F- |: c6 f% W0 R' OT  n8 O/ N$ ^3 ~' q) p+ o- [7 S+ u
9 z6 C9 l  c# P+ E: {
Lh * A' [! d5 X- x6 ]5 I# @
i% ~# `6 T; _$ Z2 H& r4 Q
2 Y5 z! T6 ^0 v) k2 G
的最大值即为L LL的最大特征值、最小值即为L LL的最小特征值。而在谱聚类中,我们的目标就是要找到目标的最小特征值,得到对应特征值向量,此时切图效果最佳。所以对于h i T L h i h_{i}^{T}Lh_{i}h
# h" n$ Z3 O' n. oi
* o6 I; {1 B, L) o+ ^( R( z8 @T
2 z, n- T" n5 |2 q( k* s7 _& M; m  p6 B2 Y) k/ F' @/ Q8 j
Lh
; G2 P2 `1 l3 V0 J. `1 I1 Ai& I7 x$ `- l. L7 {3 X9 V) F% x, j

" d! C0 N/ A$ t8 y. w, f7 c1 N ,目标就是找到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
2 r9 U, w* Q! U. k; \9 Pt
2 O( P1 D" r4 n3 C0 {# ]/ C; Z LH)= 8 Y" ?% y( T- [7 I
i=1
% ^" ~% c$ l& M/ e. ?* ~0 [3 c  G7 J; @2 f. I4 x
k
7 C4 b/ @' j, A/ N$ q7 ^& U/ A7 i, Z, n9 n7 a
h
2 G4 D7 N( C0 Y  D$ ii1 q. D$ l: B, b* P
T0 g: X& a- C- x+ a" m5 u2 |3 t
# ]& V, g& D( [8 b( b/ `
Lh
& |" i# m1 o0 |+ ]0 g" @i
3 l  c5 K% P8 \2 L- G. r$ R. |6 \. z5 s4 A) d! k  H7 v: L! o+ l
,则目标就是要找到k kk个最小的特征值" c9 n" i; @4 \* Z' \; d4 l

: L- [% s% B1 t6 Q  K4 @, d; i因此,通过找到L LL的最小的k kk个特征值,可以得到对应的k kk个特征向量,这k kk特特征向量组成一个n nn×k kk维矩阵,也即H HH。一般需要对矩阵H HH按行做标准化,如下
% C) Y: ?6 e0 M/ \2 b) i7 V1 u8 Z1 |1 |3 f! q) Q) B  {* P
一般来说,k kk远小于n nn,也就说进行了降维- C/ h5 {/ j8 C+ [: \/ A
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}}}" V7 j: H# n8 F- [) y/ Z
h ; M0 [/ e2 y- |6 f
ij
% Z) ^, Y9 t3 }; h: [) b9 U: h' r$ y8 t1 |
8 B' d3 `2 I' L% q' E7 A# x6 i
=
3 c" z" Q4 t6 t' d$ a- I% Y(
7 G' I" T9 f" `, r3 Nt=1& d& _) H; p- m3 I# r) q5 [1 V
7 @0 U2 ^( e% l( m2 X  j& K# m5 l
k
3 g$ S: g# s9 I! R. w
) Z  H3 k8 O. i$ M9 @# g h
5 o( N5 E0 M/ Z& q2 X& Jit1 O# E4 A$ m9 e/ \+ u) B& ]4 C
2
. r; h& S* X0 Q! D9 C) ^9 s4 a/ c0 M5 p" [* _) S
)
" _4 ~% ^/ [# m28 p. h8 f- m6 p- {* ~8 c, f$ e
1! r0 k2 \  ~# N! G/ k$ O! y
' Q1 O! W0 W) X! |& L( ^
; c$ J1 k# d& V' P
2 l0 u. t. E  _! t! l
h
% I7 k, @$ f* M* c4 bij% K' n' K: _" f
2 T& M4 x; o6 r1 J* E& Y0 w

6 D& }) O! P/ i4 J5 ~! H6 x8 p+ [7 p! d/ r" O1 \- |8 l8 |& ^5 b

9 x3 l- g' z9 b& t( Y8 m5 p, i' o3 }1 r6 M. X3 L
这里需要注意,降维后导致得到的指示向量h hh对应的H HH现在并不能完全指示各样本的归属,因此一般在得到n × k n×kn×k维的矩阵H HH后还需要对每一行进行一次传统的聚类,比如使用K-Means聚类
8 j+ Y- g: f' }5 E- Y8 o  p3 y+ d6 ^* i* I' N+ H' T+ R
(2)规范割(常用)
5 X2 a" Z8 \$ Z# ?7 m规范割和比例割类似,只是把比例割的分母∣ A i ∣ |A_{i}|∣A
7 }0 C+ }4 |/ O) `; b1 U# Wi
2 B+ O' W- S/ u8 u
& m. P- O  J7 ? ∣换成了v o l ( A i ) vol(A_{i})vol(A ( D' E" ^, e% k4 \. y* n+ A8 {
i
0 O( D) ~0 `9 ?' c) K2 O
9 G+ s0 J, y% e, z+ w, G6 T ),定义指示向量h i j h_{ij}h 6 |9 h6 H3 k+ r2 \6 g" s  n; ^/ F
ij
& h. r) P7 K. r  {& h$ I) p* Z& j. w( N2 L# A# F
如下
& A& I' ?8 {0 `( R* e/ Y( ~
  b( s6 m) |5 ~4 u9 r) X/ F3 ph i j = { 0 , v i ∉ A j v o l ( A i ) , v i ∈ A j h_{ij}=
) L% n. Z3 z' r' ~  O{0,vi∉Ajvol(Ai)−−−−−−√,vi∈Aj, J5 D/ x0 C+ K1 q$ o+ t, m0 P: v
{0,vi∉Ajvol(Ai),vi∈Aj! Q9 k9 Q. n) }1 _3 ]& [
h ( v8 r6 |0 |* @: \1 f  e
ij3 P' z+ O. t. |( f2 \) ?: d% x

  N5 X0 b! r' U( J& J# `( @ ={ 7 Y% O9 V  ^: `) y% N$ D3 x
0,v : g! k: j" C; |5 y/ G' I! W1 B
i
2 w) H$ l" |3 W: M! C5 `, ]# L7 r; L8 S3 P+ C: W- Y5 x# a# q

; ?2 c2 W  c0 O" S) w7 g  }: N/  X0 t6 V% ^* q2 S7 _6 j5 L: `1 x
A
3 b0 O% s$ N! s/ u+ r* u5 P8 G5 |j+ H0 F1 C7 Q; z1 d& O2 `5 t
: r& s7 I1 }" z
1 B5 p6 ^$ M* M$ K* X! Z) Z  c6 k/ L
vol(A 3 N' {- @3 f( B5 L2 G: r8 q
i
9 Z/ X6 c1 u# H0 h- k  M
2 Z. t) X7 g8 m1 Q% M5 d' C )6 O# m4 t$ c& j% _

4 Q2 ^2 ~0 t4 v5 U2 \7 L$ J& c. r ,v
" N. I: n0 y# _0 }- ui: A! F1 ]! o! m: U
- K3 u% U. w" I, h# y; Y; j* |8 q
∈A
: h% K, _: j# u2 Ij; M+ n' V! y  r

; q5 C! ~/ [4 p( e% L
4 F8 m* Y: x1 M4 Q. O: U# k5 u9 ^

( x+ u7 u. \1 v% t5 D8 ~0 e! r  ~; a6 f3 L
于是,对于h i T L h i h_{i}^{T}Lh_{i}h
/ t5 H& K* L! l* t3 B7 Pi
8 u, h7 `- |% c, pT
& D. Y! H# O  `% @& [  Z  B
8 ~( d. [5 e! T Lh
+ v$ H9 P1 q! q/ u+ I. ci
! z& k! P6 x% q0 e2 K+ P" Y2 P. n  C) z. q1 @$ z
,根据拉普拉斯矩阵性质可知# @4 A; Q9 W$ s4 E
. L( M/ C" y+ m! ?; `  b
对于任意向量f = ( f 1 , . . . , f n ) T ∈ R n f=(f_{1},...,f_{n})^{T} \in R^{n}f=(f
& J, G1 O3 f! c: X1, q+ C- h  U$ e* D" Z. c

0 U$ c4 N* v& x ,...,f
/ U. ]; b7 \( `! }n+ T$ n9 v) Z! ?; N6 w. X1 ^% h

. g4 s7 s  G: n. a  ?! c: G, g: J ) ; y) S( Y0 ]8 M
T
8 Y6 i1 v4 E2 v ∈R 4 P4 S, @' X. B8 W: J, j
n
' |# x( X2 N7 p: [) 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
  ]) O0 ~: F1 c0 }( `T
' N1 |1 e& `+ ]- _- C Lf=
1 `& W4 ?  |% k# n& Q! q29 Z! W' i: M. U  c/ Z
19 n; D4 r" D6 S, q# P* {4 a1 g

" G3 m) x9 q) h3 S" H5 Z& y# v  d7 k& n
i,j=1
; e- p6 B0 k2 w
2 z1 D& P9 L, C( Ln
4 X6 M) c$ n/ }" W9 p3 K- ]
- i6 Q! h. ?: j* Q* ` w
4 ], A5 r; S* ]. V! D% }3 _ij
9 E- p: K0 B0 r* _" U' V- H
7 w$ D. @! o3 e7 P (f
& n+ K" T0 u3 R0 S1 C  f8 K- U. Si7 u  ?: X2 c( W5 L: Y2 {  u$ A

" x* q# J' r- ^0 l+ | −f 8 p( a& e& h/ g5 A0 Z
j& H, j! s  [& r( n, G
, B; M( C: n# F
)
) v9 w! M9 N) r  J2
0 j# B+ [8 p- c4 v' r2 B7 z( M
/ u8 U$ W  D- Q) @4 C7 X# n) ]; P' Zh 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})}
8 B9 d- Y% O; W! q, x$ w+ I4 b- Uh
" {  I# k) i# U4 U6 I  fi
( I. H) A) s5 ?T
) t! G3 y2 Z6 I6 w
# {& Z9 }- v; ~4 S Lh
5 h& b5 Z3 B1 F. Z9 J- D7 K4 d4 a( Bi. T3 [; a6 h& @+ f% x

5 u9 g5 Z; s; d& H0 Q  \ =
8 z1 P3 d& m  ~5 @: |: y2! L- Y5 {4 Y! V7 h+ a, l
1
/ R+ W+ e/ A; D. i# `. P
) l! B: m: ?8 R( ^: q, x/ \4 F7 f% D, _" ~; A# ]; J+ q
m=1/ g" Q, g) w9 ^- @# _( R  b! L/ ]

7 M7 I& ?3 k) }: ^; `1 [+ x9 J2 l2 y8 g7 @
2 o& u* a- C+ ]  l
1 v1 ]" y, K) p! o3 m0 un=1* ?: u. E: h& f! @/ L. ^

& a# M6 ~$ P: h0 m; Y; k. d# P# r( M5 [( O. O
w
: Q) S. G. F. {mn
8 r( n! H5 F1 t( J
* Q; r1 z7 f2 c) x6 |7 q/ ^& o" }4 u (h
0 m) `. D# d( N& ~im
; |( @2 p! Z" r" ^2 m
$ U0 `6 x7 N2 p& U! t8 ^ −h # m& `( k' ?: Y7 q7 W: \
in
5 B. a9 i$ c* K) Y2 b8 @0 e
& P( ~! _, f. Q* L; y+ s) U7 p ) 7 e  I) S6 @- s3 h
2
# o4 w6 e8 }# k; q* D% F. p, ` = 9 m( K* g: K7 o8 m, {4 \, b
vol(A
6 b0 v, h' D3 i  Ni0 t9 f, g% e6 x  r2 h

/ B- D9 B: ^5 n )
: @+ x; s* F) Z- q) c& _1 k7 bcut(A 2 i7 d. d$ [4 e
i
1 M% a1 _: d1 t" |" [  ?( Y4 b) i6 \0 |( f
,
/ H) F& D3 `# D7 S( O/ ]8 LA) J5 X5 X% R! n. q
ˉ( T+ p$ j0 D- `5 _, H* ^

, P3 R* B6 {, A9 o3 N5 Ki
& j+ K6 F, P7 _1 f' @, i; P3 ?9 X- a
)
" t# z! n8 j: I6 [: |& ]5 |7 h4 q

* C; I: e6 Q# o- I" d, x
9 N1 s+ {4 v9 g# }! u( ~严格证明过程请看刘建平博客:链接5 X; p  q6 u* ]. ~/ j$ I" y
可以看到,对于某一个子图i ii,R a t i o n C u t RationCutRationCut就对应于h i T L h i h_{i}^{T}Lh_{i}h ) ]: v0 @% w# C% y
i
2 B! M% E) I, l1 s/ w5 lT
4 G7 W$ }, Q/ E6 ^& |' }/ w, \# d0 Q- H! ~
Lh . F8 ~3 M7 j1 ]
i# G, U: a# S/ t+ n2 H' [
) a. I8 X2 Y4 N+ S% J
,那么对于k kk个子图
9 |1 u4 H3 g+ v- O
; k. P9 z2 y3 E/ [2 F2 c0 w4 \0 UN 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)) Z1 J7 r  n6 f  W- ^; I; F
NCut(A 1 C' Y( |) E+ j) J4 L
1
+ Q7 F+ W& i4 N$ n" S1 H5 ~1 A2 _9 q6 R4 v) L
,A ' q5 r, A& f& C& p
2
- |' P7 y% u. m: p0 f9 i% Q4 y' F. ]+ w2 P/ c% W
,...,A 0 k; ?: `. r& _6 ~5 h+ j
k
6 n2 Y- E0 S- }& A+ x/ Z7 g) J* {3 L  E1 @6 }1 N
)=
8 o+ o* w$ t. u' \/ T: Ai=1
! ~  T7 J0 l- N" i& C
" S5 W* S! d! \7 e, s0 w6 dk+ \; c, K) y+ U7 V" T9 ~3 t: o+ c- i
& l7 w0 w4 v' K
h
$ x  i; l) g: Z2 I( S2 q7 r( F* r$ {! li
/ I. ?3 F$ Q7 {. m8 LT6 n6 X! a: D& r9 W" z

; M3 p' ]. p  J* w/ j Lh ; X5 q: p* S4 M) b7 Z: f7 D! x
i
/ y( ^; K1 `: m6 r. Y" Y
4 i6 [/ e, {* p =
5 P4 H" k2 [) M8 O; ^i=11 Z/ h' A5 ~+ n
3 j7 C# ?; t( ?/ }3 X# x+ i
k
( v! {  c1 O2 T$ A& _' g' W) j! ~- P; d2 o
(H
' Q* L0 @9 Z) n5 _% }! dT/ _1 L% J6 b' |) ~
LH)
4 O" o* M7 ]2 oii
9 q7 E+ Z2 f' y, s8 k% n+ U: E2 m  _6 _0 V* U- n- F
=tr(H , G) E# X) f0 |7 ~& f0 {
T
8 ?0 M) L, f2 p5 q  t LH)
  a# Z$ a# Y$ Q8 U+ W/ U8 ]6 w( O5 e# ?7 @  K+ x( z: N" C
但此时H T H ≠ I H^{T}H \not=IH 3 o$ P' P; q: |
T# c" p" i: w6 Y
H
- T6 w* t/ K6 p$ l$ D* G
% y3 c, K$ }, K* B6 P=I,而是H T D H = I H^{T}DH =IH
7 ~7 j6 l) Z( V3 E, J" eT6 C5 [/ m! n. p' R" k4 T
DH=I
, T  y5 [. \7 q9 }0 S# P$ m' @4 N* ~. T+ f6 i" k( B, b
这是因为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
1 d- v3 D# E; ^5 i2 I% r( Ni
1 I/ L, V  ^4 k" c0 mT3 z5 x0 d7 T: `3 r; I
' j7 k: }8 E  ~$ ?, T
Dh % ~' Y$ ?0 j. R  x$ h" q' x3 a
i! T& j% B9 W, d& e
9 m8 ^3 h+ X' `1 X
= 1 F$ C* }9 G% }# H$ ~/ l
j=1
- ]( ~* ]- t- S. x9 o) g
  t' n' m1 ?% m& ]n( I0 E% x. {3 l, Z. m6 [2 F% M
' z% ~5 P) P) A1 o: K7 ]' s
h / ~0 m; z3 {) G3 h4 }" k
ij
1 v+ k4 h! J6 E0 z  r2
# x9 d* v+ ~8 w* L* N0 ]
/ L; ^6 M: q8 e/ Z) a d
" P8 L( v% T8 D+ N6 n; ~j% X4 P! y. C& R! U) ]  T
( O  D( T9 V% D1 A
= 2 I5 \+ G% G1 _
vol(A 7 p) T- [' z# P$ d  Z, j8 V; D5 k9 U
i
: k7 [1 a: V1 ^: L- G# a
0 Z5 p6 V+ }6 j4 n( p* k )
- d1 ?. b& o& ^4 f1
1 X2 A  u1 f& C7 e& `9 C( N3 t" `% C4 f0 N- @" v7 r
( \8 b* r5 P) \/ L5 C- T/ V
j∈A
8 U/ n( W7 a9 x. Fi
) ?2 u( R8 k0 f, e9 Q" ~
8 s3 l* m5 N7 }  s- [6 e9 p: x. L( Q  d- T* d5 e! m3 }& [

* o; i3 W4 H2 l% A( U7 e3 y. b2 q) u% z2 N& k  @) K: {  w% v
d + K6 n, `3 R% l
j9 F! J; R2 O: A
8 x5 H3 a' t( @. m/ \, }  s; Z
=   S" `" q6 L5 |7 ?5 r" {5 l* N2 v
vol(A / M1 P! u$ h. V5 |* Y" W, B
i
. W- m* ^0 c' ?" E7 }: x8 T( G
0 o: e: r; t2 | )
0 r1 T9 O# F: `4 l, c1 _$ M* H" ^17 O/ g7 B. b) j0 G$ Y6 m  a6 g1 x
& H; J& _" M/ m/ D. L8 L
vol(A # g  ?7 L+ N7 p# F
i2 j! z, _! l7 ^1 `2 N

1 C* L0 b) u7 b )=1
# A0 j+ ?% @3 Q+ F! B5 p9 Q因此,此时切图优化目标为: w- \" s9 A# p- `# {9 q
3 _% t9 Y1 s  R' }
a 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
4 G+ O9 q) N6 x/ T1 p) }# mH  M+ V9 I2 F5 k! f; ^% M
argmin
4 i, G5 ~9 `" K3 Q0 n5 {. X& P0 t1 B  k7 u
5 F1 p. a' ]& h/ I* _+ S( g

' t& l% T6 s9 d tr(H
( M/ R( d- n) q: P0 c; ^# E# lT2 m( V: h, m9 \  Y8 r
LH)s.t.H + @6 N/ R2 M7 g( x
T
& H* _& a8 E$ L+ t2 Z0 q DH=I
& L$ a: K- @: [; J  A$ E+ m
* I" l9 D" N. w% B) J7 ]8 o+ h但是现在矩阵H HH中的指示向量h hh并不是标准正交基,所以需要对H HH做一定转换。令H = D − 1 2 F H=D^{-\frac{1}{2}}FH=D
$ @, W5 y. A' i  O7 ]
4 f: r$ ~0 B1 S! N4 t2
) B6 x) W5 a5 P  y6 C/ V2 }1
  N8 i& s  r- f. a. P
8 O# k# J% u2 B
( z6 [7 z( @* T# B, M+ G0 ?3 D 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
0 T6 _$ r: X! T$ B2 D& bT* U) s' O% i! @& n- a8 M9 ]- n
LH=F
6 S' w) j, G, ~" Y8 \/ a2 X$ }T" a3 F: u* e( b- ~( q
D ! N7 A4 F- H6 l% g8 {: n7 n" U- x' r6 s

( p9 ]# |4 C1 ]2
& D: r, v" d/ T. f1& e9 c4 @: T4 D9 \* x

* s8 Y7 v; t9 d" F( u! e$ v- g2 R' N8 j- b1 V% f) G* A
LD
0 k! Q8 H; I" P* X/ |( H+ z3 \6 h& G2 v! p- {, l+ F
2
. q; s7 N2 }1 K; T) A" J1! ]3 Z$ F( G; e' v2 E& Z
6 O5 K" L& M* K. X! R; W

: t9 o/ S! R8 U* p$ d F、H T D H = F T F = I H^{T}DH=F^{T}F=IH
  d  r3 [; |$ l- P' XT1 [- d7 U) {! R4 r; b
DH=F
8 K7 W" {, A$ |' W$ ~* }T# Y& @2 _+ f3 D5 O; P8 Q' K
F=I,于是优化目标变更为
8 X9 K' ~1 U2 oa 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=I
0 g! ^: G( X8 K, kF: ^, e* P7 ^7 m( u2 T8 A
argmin
0 F; Z6 [- Z8 y8 B$ c
0 m6 K% w# |" y6 c5 J3 p
- B1 X0 ~+ }' S  B4 h& b* }/ U5 r/ G5 ^( n8 X7 M
tr(F 6 h: L  h8 V# l2 z  c1 I: `% E
T1 {. u, _: ]# i& D
D ! E6 M3 }4 g) M. L; k
/ C/ \( b" k/ G
2
  x4 d: j6 X% _" j$ Y1+ K; T, X7 H8 h$ K& f" @

, X: E0 ^$ I5 @0 J5 j- P2 }
1 L# \0 o# y8 A' F LD 9 X" ?4 |+ E: P4 S5 ~

4 |4 B' Q* f5 \& s7 C25 C3 c6 }+ v9 {& @0 B5 ?% P8 [
1* m: E. P# |! z

% |2 Y7 J- g  G6 ]1 W. t3 @7 c/ L  t4 @( R' E" y1 g
F)s.t.F 1 z% |& v+ T$ U5 N* D+ l
T
  D# ~6 Y% O$ I4 L F=I
% C% q8 Q/ x( Y" I+ m: G" v5 H7 a6 k, r  N  M/ D9 Y! y* G
现在,和比例割一样,通过找到D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D 0 |7 t0 N  g" i: b0 P$ }0 n
! Z4 w9 @0 j2 O" [8 u: c% x
2) _0 l+ Y6 Y4 p) r- [; s- E
1
7 b% c" ]5 b( n# V6 ]
$ d" Y. e, r% |1 M9 E4 J8 _. D  A. L3 T6 W" ~+ f3 V' }
LD 5 a* p* C7 \" S3 f" ^: G+ P* I
& ]  ^  f( y. X7 u( ^
2
4 J  K, {! |" u8 [% V13 n: y4 i" n% f

/ @+ k' S. U% E5 m% t; b; K3 s# L1 a* v1 |0 d
(就是之前的L LL)的最小的k kk个特征值,可以得到对应的k kk个特征向量,这k kk特征向量组成一个n nn×k kk维矩阵,也即F FF,最后对F FF进行传统聚类
5 F% u% D. v, U) }5 T
& w! m1 v" ^% H1 g9 G, C# s9 f一般来说,D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D & s& f# h! e, P  W* C& A: n
" B" z5 ^9 S6 g4 c: c* }9 l
26 ?% O& a1 D  q* F
1* Z9 ?3 k0 `( m8 L. `+ X2 U7 ?
  ?  U. n: I; @0 s5 t
8 [7 B; N7 \; c7 `: h0 e& p
LD ! R' M2 I4 i% q

2 y& e/ R7 I+ b2 `0 ^2, ^8 N  u  N* Y
1
& j& e" |3 E3 L, b$ k  n' ]  o" C

6 j3 i. k1 l- C) @5 p& h 相当于对L LL做了一次标准化,也即L i j d i ∗ d j \frac{L_{ij}}{\sqrt{d_{i}*d_{j}}}
4 u# L+ }1 Z9 ^$ Y3 f9 Pd * A- t, c+ p$ J* u! R
i
* }5 t. Z# K2 a7 Q
; \9 Q* [& d1 k( L ∗d
. ?) Z  {& G( y5 N2 Zj9 V% I) i+ Q* T

; J; V+ `0 ]- H8 D9 I; Z, Z) [, _1 D# |

$ Z" T4 B* ~& I6 Q& c  p2 N7 \% q4 m& }+ j% [6 s$ ^% ^
L
0 O$ B( D; E2 i. ~& C5 {ij
$ b1 M% C( p1 X- y, }
6 [* s$ |. e) R2 B, n; L/ e# D5 X! l7 W
0 Z+ d7 b. {$ F; b1 R, M  c  J% \! v% H* p; n# ?0 @: p' Q5 f
# B$ U" k1 b# h6 C
二:谱聚类算法流程2 o* Z* p& f4 d" k3 F) e
给定数据集D = { x 1 , x 2 , . . . , x n } D=\{x_{1}, x_{2}, ... , x_{n}\}D={x , r3 X' k9 v+ Q7 P& t: _
1- e* u4 J! ]: q8 W( @1 n) ?

, k) {) x9 _4 }" V. D ,x
9 N2 X# c& a: N6 m6 \- p2+ @! k, ~% }; N+ i( |" J$ d
6 u# @. E7 j6 F
,...,x
# o8 h5 c0 l1 Z3 F, J( Xn
) N& Z9 V+ I6 s) [5 f% {" F
; _$ g4 e, Q' j$ ` }
" t+ H; ^8 \: a+ Q! G+ w4 ]& n& J% M9 r" p! Y+ J
根据输入的相似矩阵生成方式(一般为高斯核函数)构建相似矩阵S SS(AffinityMatrix)
. h6 w' ?; b* Y. R: @( u根据相似矩阵S SS构建邻接矩阵W WW,再构建度矩阵D DD
, U/ w% p) v& T+ }计算拉普拉斯矩阵L = D − W L=D-WL=D−W$ @0 i& D6 O7 g; Q% S- Y: _
得到标准化后的拉普拉斯矩阵D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D & x5 A: T2 p# s' Z6 y* w- a
7 ?4 }: }) \/ v' R% i
2' ^9 ^4 K. B7 G5 d. O! b8 v! U& U
11 s) w7 i! O) V: J! u5 k4 W0 X

; x- I1 w  n2 |+ {6 [1 ]! D; n: K8 T
LD & X* e" X3 q& S7 c5 f. Q+ x* f/ y) U  d
( V  Y; ~5 b& N3 Z
28 P1 b# T3 k$ c" i6 _% o* V9 c
14 W" m5 e% p' M& ~. d
9 |/ P. r# C  p& s- s  X
# V3 ~) y/ n/ p2 K9 t
6 w4 t1 P' ]$ ]: P  _  w
计算D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D
8 O: K" p9 {4 y4 k8 s, O5 u% N% Y* M
' D; U  I6 @5 E" `; C" h2) p. `% w2 E* `- Y3 A; y! |
1
- S* c7 h% h0 c' p1 g; z; Y- p& A, S8 s" G5 a
) ~( Y( r- I- F" P) C
LD & @& I  M; y% F/ I" t/ ^# A. k
9 z3 j; w7 E1 m* e7 q+ K) k- x
2
8 E+ m6 z0 X$ `* @1
3 c% a9 ^2 M; S+ b
: g* Q4 p: r; E! }) i
8 n" Y; `4 ?& s* n* \4 ^; A0 H2 E 最小的k kk个特征值对应的特征向量f ff
) g* L  l; A! D) r! o0 U+ d3 V将特征向量f ff组成矩阵并按行标准化,最终组成n nn×k kk维的特征矩阵F FF
' y" Z5 |# W) eF FF中每一行作为一个k kk维的样本,共n nn个样本,采用某种聚类方法进行聚类,假设聚类维数为k 、 k^{、}k 1 M9 ~  f8 E( ~% ^& q/ k: j4 s
# B1 t: Q) ?% n. Z. O

& q0 T2 I+ I+ ?! z得到簇划分C( c 1 , c 2 , . . . , c k 、 ) (c_{1}, c_{2}, ... , c_{k^{、}})(c
$ m7 K. Q2 O) W' H1
* G4 y# X& `/ r: E( @2 W8 f1 e" _4 A5 }$ p
,c % i9 w) l* Y1 F- s2 _, S! M
2" H2 c2 ^% z  ^+ }0 }9 |

7 z" N6 o2 I9 ?: A& a ,...,c
- T2 O" h6 S2 \! r( Lk
! V$ N3 L: q0 P5 l& v( a# {$ ?% M# A4 K, V  ^

7 p4 b- I4 J" A; W, R. G1 P$ X$ R
1 b; M; ?7 E3 S' e, _ )
! O- Q+ b( |0 t& V8 r( Z8 |三:Python实现
  R% K# r: y/ H9 X: e0 l! Simport matplotlib.pyplot as plt  M/ x( o0 ?) d: x4 h" L
import numpy as np
7 }& P' p! r- t+ o- r9 T$ uimport pandas as pd2 {. z4 ^$ E; B% x. e8 T
from sklearn.cluster import KMeans7 W! r1 g, }& b  n$ {, W
from sklearn.metrics.pairwise import rbf_kernel& x8 G3 \2 P4 O* D7 w$ ]6 P
from sklearn.datasets import make_blobs
5 C+ ?* f2 ^' `; q) @. Jfrom sklearn.preprocessing import normalize7 m& @; y. B" B  f' \
3 c: p4 @0 u4 f8 u: {$ m
def get_affinity_matrix(data_set):2 g: a$ h. S. g- l2 U6 a# X6 o
    #  利用高斯核函数计算相似矩阵(全连接)
. O, y9 ^  S6 n3 U    rbf = rbf_kernel(data_set)
, d- L! z' G6 w    for i in range(len(rbf)):
) W9 _' h! q# e: N) e        rbf[i, i] = 09 ?9 `( O. V4 g4 \" b
    return rbf
3 R7 A0 W5 L1 Z3 z* Z
' m& m+ A) @  }1 b$ U( |* z2 \+ Q
4 @6 r2 ^: G' W2 T: C  Z* Mdef distance(x1, x2):! d; j5 M: I4 R" g0 P+ {7 v
    """
6 b) t5 W1 s! @' w    获得两个样本点之间的距离
4 }8 m, x- W# X' F- E    :param x1: 样本点1
+ z9 J3 ?1 ]$ H    :param x2: 样本点2% o# C" _; D% @. M5 Q
    :return:
+ @0 n8 Y! `  A3 L    """; ^' Y# z6 M6 |; d7 ]( h9 q
    dist = np.sqrt(np.power(x1-x2,2).sum())
; Y0 U* ^1 X" h    return dist
* O2 `3 R& a1 y) _, D9 n, L: \' z$ R1 W* n  p$ v
def get_dist_matrix(data):
) N, G) ]* x' V8 o# X+ m    """* \. v8 ~3 {9 T
    获取距离矩阵
/ A: b# g# J, o: B- g" u% _    :param data: 样本集合$ }+ ~( U6 b) K( e  q  Y
    :return: 距离矩阵. w3 d& c3 ]5 g* I8 L# H2 `
    """# z; z( z7 M0 U! d+ l$ |
    n = len(data)  #样本总数
7 N7 r/ L3 w% i5 {+ r( v0 s    dist_matrix = np.zeros((n, n)) # 初始化邻接矩阵为n×n的全0矩阵
& ]: ]/ o5 y- d6 Z+ @  s/ @% ]/ K    for i in range(n):  X* [3 m" h- G+ l) S5 m
        for j in range(i+1, n):
' `2 V) w& r+ \1 c( Q- k4 R            dist_matrix[j] = dist_matrix[j] = distance(data, data[j])
# _3 J* L* Z8 b6 g8 ?. O) e    return dist_matrix* O% B6 v0 z2 @7 w. F: y/ j
5 p# x  N# e% C4 ], x7 M" Z+ L* O! c
def get_W(data, k):8 t1 D! U" d8 e0 I- e; }
    # 获取邻接矩阵(K邻近法): {1 d; A+ y5 i9 I& W* h8 O. I
    n = len(data)
/ M! l9 ?: p5 R, |3 Z    dist_matrix = get_dist_matrix(data)6 L1 x& V5 ^: P  V/ Q, r2 A; L9 z
    W = np.zeros((n, n))
9 l+ J" C9 u/ _' g2 Y    for idx, item in enumerate(dist_matrix):
% X, C( \$ W: ?3 J        idx_array = np.argsort(item)  # 每一行距离列表进行排序,得到对应的索引列表! Y4 q' `3 e: ?: I1 `5 a, [* i
        W[idx][idx_array[1:k+1]] = 1
6 `2 A. b. T, }; a% |8 N& }    transpW =np.transpose(W)
8 V7 J' U4 ^6 i1 S4 g5 g$ o( B: L    return (W+transpW)/2
: b) m  D& c. T4 M  j* W; O' I
. M! [* ^* M  [: Mdef spectral_clustering(data_set, k):, K0 e  }" F/ r1 q- @2 w
    # 利用相似矩阵S得到邻接矩阵W
1 B) s  U. L; U' A6 x* s3 M    W = get_affinity_matrix(data_set)  #高斯核函数(全连接法)
: o  w# K- i3 @+ @. _    #  W = get_W(data_set, k)  # K邻近法9 q7 `% B9 k' ?) B) d8 {/ @/ B
! Z# I* s6 d7 K$ F; d. p
    # 计算度矩阵D,并得到矩阵D的1/2次方的逆矩阵(便于计算拉普拉斯矩阵)6 z/ {" W# L+ t9 M
    D_inv = np.diag(np.power(np.sum(W, axis=1), -0.5))! O" m& i' k8 {+ g
: f( z% j" s5 D; D' F
    # 计算拉普拉斯矩阵L=D-W
% R; \/ e2 d+ g7 Y' _    # 标准化拉普拉斯矩阵l = D_inv*L*D_inv=I-D_inv*W*D_inv
% a/ b5 d& s7 a& R    L = np.eye(len(data_set)) - np.dot(np.dot(D_inv, W), D_inv)3 k8 ^2 L) q/ Z& j
' W5 S0 ?5 A- q# b- S
    # 得到特征值和特征向量
+ y. Q  l( S/ e6 ?. {: s    eigvals, eigvecs = np.linalg.eig(L)
  C  x% b' l/ \8 _6 k1 I/ J7 {. x) S( g  x7 T7 i0 _
    # 找到前k个最小的特征值(索引)
% w" @% d$ X, t1 W* v    k_smallest_eigvals_index = np.argsort(eigvals)[:k]1 P% w" |1 R$ g# I# \
0 V% E9 Y6 n, ]3 S0 w: [1 f
    # 取出这k小特征值对应的特征向量,并正则化: `) b5 R% x. d/ O: ~
    k_smallest_eigvecs = normalize(eigvecs[:, k_smallest_eigvals_index])
3 C" L  P; _  B% ^3 ~% o! p2 J6 t7 C9 n
    # 使用K_Means聚类3 L9 }2 e" a- K5 e  K! e
    return KMeans(n_clusters=k).fit_predict(k_smallest_eigvecs)+ [3 m) y, r# E1 m) q) \

! G2 Y+ ^7 F- k, r
" s  |$ W9 l& Y' u/ Fraw_data = pd.read_csv(r'E:\Postgraduate\Dataset\jain.csv', header=None)
3 ^& {9 l6 _8 F" R5 [+ M  yraw_data.columns = ['X', 'Y']1 L2 i; T4 q; q
x_axis = 'X'8 g; x  h! U7 z- L6 B# n4 W8 c
y_axis = 'Y'
/ O5 F2 w% ?. E+ T8 z; `
$ ?2 V- b$ d- J- R% Yexamples_num = raw_data.shape[0]1 u% w# g1 y2 h) u! w$ B  V
train_data = raw_data[[x_axis, y_axis]].values.reshape(examples_num, 2)
% b. W6 b& @  P  B4 [: Q, q6 b2 q" A: c

  N3 F6 \. e0 S) c, K% N$ lmin_vals = train_data.min(0)
# t! P( x4 V0 r) n' g( y# {* k9 Zmax_vals = train_data.max(0)
3 D$ @% H: \% ~0 y0 W0 V* g, Mranges = max_vals - min_vals' L6 x& u) ^3 f2 O9 v
normal_data = np.zeros(np.shape(train_data))
$ n8 `6 n+ d4 Y/ v  |2 onums = train_data.shape[0]( O! E; K2 ^& H+ B; m* W1 |& H
normal_data = train_data - np.tile(min_vals, (nums, 1))6 e6 g0 `. @( S! v
normal_data = normal_data / np.tile(ranges, (nums, 1))
" q+ I: j$ h+ x. v2 x7 d4 C; z/ R9 a. b7 I
labels = spectral_clustering(normal_data, 2)4 T: O# {$ c0 t) ^7 z$ k
0 P2 Y. A. K. f" d' v2 X
# 原数据9 }/ p8 N6 s& Y) {) S( y5 @
fig, (ax0, ax1) = plt.subplots(ncols=2)8 G6 h5 T# @' ~- A' ^, k2 |
ax0.scatter(normal_data[:, 0], normal_data[:, 1], c='black')7 m$ b+ A) a8 G' c/ M+ ~9 B
ax0.set_title('raw data'). F) C4 R) k8 |, ^5 a9 m- f
# 谱聚类结果
, w& b, l8 B& T8 W: Jax1.scatter(normal_data[:, 0], normal_data[:, 1], c=labels)6 Y, a7 G7 g; r: N0 y
ax1.set_title('Spectral Clustering')! f( T& v! y9 {3 M$ L8 @* N7 a
" B: E5 a& _2 a8 y
plt.show()- c" U  Y, N7 ^

! f  l9 L( e! e1
$ i2 Q" e# U' {5 G9 @  j, ^  W  b2
" d; ?( ]4 {: D2 x% e3 m" B0 ^# J3
' e5 U' x( d1 p3 M9 s+ C4& I; D+ l) l- R- m4 C6 i! \
5
0 B2 M9 A1 Q% ~+ k6
. r/ K$ F; L2 h+ F1 i& i) z7
7 @; x$ }- a3 @8
7 h4 h; @/ u1 L& e* j/ B9
! t6 C$ [+ [0 }  i101 P7 x/ \( o) }
112 c/ _# F* o' g1 t1 L1 N
12
7 U# e$ q3 f& y; x/ u13- [8 |4 t  j! S) ~) I& l) j3 @
14
: x& K3 ~; a- b  q1 k157 h% p' `7 E) z9 I; V1 j! X
16
5 V4 A* s3 U1 d/ U* T( ?17
% y. b. G; A( }  s; B! g: x183 x1 g4 V3 z& @$ A( p) {/ ~
19
: w. x6 h$ v+ t) {20
! F6 Y" d# S0 p' v! q21* x: r5 K; a8 [! p/ \! X4 ?
22
9 W$ n7 X( ~% t' E$ d' a( Y7 `( n235 k* h* m/ C% J+ d0 n: _
240 `! V0 `  C  m* ]
25( |. b- j/ p6 P% |
26
' |, w0 Q, H) Y, D27
( p$ \) H* B3 R8 w* `. ~8 {28
% ?0 c6 ^5 [( Z( `/ `+ d29; F+ F$ j' a) |. [
30
* I# p3 m! h& B1 t3 ]# u314 j5 c; K2 z. A+ A# l4 ?: v9 f
32! `4 ?! E- Z4 V9 R
33' A; ^( q$ y8 A1 g9 L6 {6 |2 @
34
: x! K5 F3 b; d, y% S357 f' O$ H  ]3 n, t9 S6 J
36+ A7 l9 q  n) I& g
37
+ q) Y4 M6 R5 p38( T  T3 S. y4 [0 n
39
, L! u, B1 B7 h! ?% _! x40
5 A( t/ Z: y8 X6 {" ^41
6 \( n3 V8 ^/ Z. d; T. p' D/ d  I420 e! p" O; {5 g1 V% I, b4 M, d
43# l  t' \, y  z; H& g+ e
44, z1 s" j3 ]: k* j8 K
45
# M0 A# L* `3 c0 W7 l" O: c" |467 l! d: s7 {, h2 s
47
! L% i% E0 ?, g3 i5 j& i48
) L% \. r) m1 t7 M0 K- q49
5 W4 b2 o7 s8 ]9 h50
  q# L0 W5 v* x- [0 S51
) u" E9 U+ x8 {7 @/ o52; o0 j, o; f- [. Z! H  u% [
53
8 V+ T0 i6 d6 W  P) [6 j9 N& B54
# Z# P- i9 M- H6 {0 w# {558 g: B) t8 H0 E
56% `4 W# O4 D+ `. F( m/ b
578 x- r; C* B$ [% U" T) M
58
3 w' w, {6 Z# i6 m$ C0 k: U59
, k( S+ j" D5 d8 |' H60
: ]# f' |3 u7 O0 s# g8 `' u( t: ?61
4 {5 ]9 m& D, k/ Y- {. W7 `$ c62
: Y5 J* E1 v) m; F9 n; e3 L63
2 c9 h# g9 O- S9 u3 R; q64/ [5 m. _9 g" ^
65; d2 Z( e. K- ]) O
66& a+ k) {4 Z; z  m
67! l0 J: \" }( y
68, [9 w$ v) p. k$ S+ v
690 {* q) B. o; @) C1 H2 y
70" P7 E' x' n0 s+ A& m# F: a4 N
71
# l9 A9 O/ @4 X* B72
0 b7 b2 ]6 u& y% n$ A73
0 U7 G6 u% ~: \746 a, N/ ~/ O' G( l. g8 f1 S
754 b: ?* ]% p/ c* V
76
  O( |# i% {  V5 g* d6 d8 R77
$ Q* }3 g& n. h/ }78, [# D  D% N# ?3 G% U7 K' r
79
7 W+ m8 {, G3 d5 s807 d/ K- k6 g% g
81
- N  S0 B( \9 \5 I" a82. |  u) U  k' k' I7 B7 I3 ^& y8 I+ S& D1 L
83+ Y! I  p0 D$ ]! W2 c& r% r
84
, y# K' q* h5 q- p85, x  k# `- [7 Z- ]
86" X. V* j' m, A4 U- m; H& V
870 H) K6 p6 n) y- a" M: k- i
883 {5 g5 Z) @. [& I) {& t
89% H4 B1 E# x( D* S: j" E3 j# |
90
3 [" w1 S1 s3 Q$ O  ~% {, L9 K( C910 J; L' O1 Z1 K8 S
92& R- }) B( r! d( |+ Y7 Y+ x% U! z
93
* n8 a% U$ w: t94
* o& I2 I; [8 g8 T2 S958 a9 M9 l/ V! h( N- V9 {6 W# [- Z) Z
967 `' U3 ^, A( r7 L9 Z" |
97
+ x; |- f& x$ e( z. p; ]982 H2 n2 E6 F: m3 H8 B1 @
99: Q$ Q+ G9 [8 n! h
100
+ R$ \% r+ l! z- r4 Q101+ X. A% t! d/ X' a
102: y8 s, ?) `' V  l; U
103/ K. M1 E4 \' N) n6 V
(高斯核函数)( Z$ @. H8 N! x1 m7 r! F

9 f" a* @$ L' p& i! |. s
% ^- g& T5 A7 Q; M9 I(K邻近法)/ s& n' d" w; K% {2 P
' a, R# a( t! M( c

! `, j* \+ Y+ S, Q+ Q0 H5 S% @四:谱聚类算法优缺点. ~& z2 _* P; t' `8 F8 E* c
(1)优点
6 z" R* j. ^- k! {9 @谱聚类只需要数据之间的相似度矩阵,所以对于稀疏数据的聚类很有效' X" e1 l8 n8 m% x6 Z  |
使用了降维,因此处理高纬数据聚类时复杂度要明显低于传统聚类算法6 v3 P- v% T/ Z, s5 M/ b/ t" p2 f( O
谱聚类算法建立在谱图理论基础上,与传统聚类算法相比,它具有能在任意形状的样本空间上聚类且收敛于全局最优解7 L; @* K" l. f3 g! e6 v. y0 T# h
(2)缺点- v3 r# |7 k8 D
如果最终聚类的维度非常高,则由于降维的幅度不够,导致算法的运行速度和最后效果都不是很好
! n4 q7 [% g+ i聚类效果依赖于相似度矩阵,所以不同的相似度矩阵得到的最终聚类效果大不同相同! c6 B/ C2 \2 d5 H" @8 H
————————————————
* B0 R  ^) H0 d' w, v2 Z% S; A版权声明:本文为CSDN博主「快乐江湖」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
9 R6 l/ h8 z" q/ p0 U: \" Q5 K. Q: ~原文链接:https://blog.csdn.net/qq_39183034/article/details/126747494
! c) x1 d9 S( o
/ ]* Y/ |& h; c5 X5 \9 Q7 S# `* I5 \- w& t( Q  z





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