数学建模社区-数学中国

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

作者: 杨利霞    时间: 2022-9-12 18:41
标题: 【数据聚类】第八章第二节:谱聚类算法之切图聚类、算法流程及其实现
【数据聚类】第八章第二节:谱聚类算法之切图聚类、算法流程及其实现3 w7 ?  t) Q7 a! A7 C

6 N" p5 j+ ^1 I$ t6 X; Q; u, _本文部分内容源自刘建平博客,在此基础上进行总结拓展% y8 u) W7 {. U8 u
9 y# w$ i8 ]& o* _0 u
原文链接( ]7 \3 T8 M3 \
文章目录( A' c& s4 {+ E1 Q
一:谱聚类与图划分1 R6 ~! O( r. t+ Y* P
(1)比例割5 m5 @+ p4 U1 h8 I$ z
(2)规范割(常用): J; D' k6 I) i
二:谱聚类算法流程7 d7 x7 {' O* g/ f/ N
三:Python实现
* l8 ?; P- U0 y- j四:谱聚类算法优缺点
3 X! O; A0 Y, M/ ](1)优点: E. _7 Y/ n  `* z6 `
(2)缺点
- U% `+ K! g3 w0 D; A( [6 N- x# R一:谱聚类与图划分
( y6 ?3 F; n) u1 s" k无向图切图:谱聚类算法根据数据点之间的相似度将数据点划分到不同簇中,因此将数据点映射到无向图之后,可以转化为图划分的问题。对于无向图G GG,切图的目标是将图G ( V , E ) G(V,E)G(V,E)切分成互相无连接k kk个子图,其中
0 n+ S1 {0 }. f) f5 G  w
/ d- Z8 B0 L/ {6 x8 C" R4 b每个子图点的集合为{ A 1 , A 2 , . . . , A k } \{A_{1},A_{2},...,A_{k}\}{A $ w; H/ p3 @1 l! r; \6 F& @/ M- B4 I' @
1$ y. }7 C& \" R3 v3 h! q6 s2 ]- t

/ e7 ?! `1 q" x+ Y ,A - G" l, U. ?# |7 O
2& k) |# \6 v+ M$ b  S& |' N0 G- N
7 s" _4 m6 A- M1 W& Z4 B& l' O
,...,A " d* `" r$ c% T, I8 C7 |
k- W% [4 j+ k( r& o% H4 ~) Z

7 R) o" W: {% c" Y3 W" N },且满足A i ∩ A j = ∅ A_{i}\cap A_{j}=\emptyA
1 c0 u( ?  S( f6 Q0 g. g8 R! Ci
. g- g+ l. t4 X8 \% n, H9 S, E. X% a5 U
( [4 X# r  }% X ∩A , p! L# m4 d. V* K; |* K
j
6 S  J) \2 k, s) d
6 Q, H3 s5 k5 k( g( P4 f =∅、A 1 ∪ A 2 ∪ . . . ∪ A k = V A_{1}\cup A_{2}\cup ... \cup A_{k}=VA
7 Y2 q7 c9 T- |- B10 T- J, ?5 \$ d& W

# U0 p$ y" W# l* b; A/ g4 r ∪A : ]( \, P2 v8 y7 o9 o! E, I
2
2 d8 r1 i# f4 v  |3 \
/ {' n8 B( d- R2 d$ B2 M% i ∪...∪A
; S; ?6 M, r4 z3 Q4 T% U% xk9 k4 ?+ D: R/ h' q/ @( @

2 L* S& ~  X3 | =V' l& c( |; Z3 @8 e" n
对于任意两个子图点的集合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)=
, C+ A7 W+ p- H- d% k5 d& {* i! Wi∈A,j∈B
4 b- t& t. T, w9 b' H' s0 }; e9 P8 w- @, g# W

' c2 I* ]+ e( [8 C4 g w
, r* a0 u5 x) }: B! h$ S  Z1 R0 ]ij  h6 _+ U8 s) C6 h' C

/ V: l1 k4 \$ n/ X
) X1 }& }4 v& D. U& i% @对于k kk个子图点的集合{ A 1 , A 2 , . . . , A k } \{A_{1},A_{2},...,A_{k}\}{A
! ~# P1 W& D# `4 ~/ F2 a1
5 E! j; Q+ j, k6 J3 c* @; ]9 y9 a
,A
6 H3 d8 [  e6 a) W. d8 ~2- B9 k3 f$ m5 c6 a

6 @, V3 `+ Q5 O/ C' n  c# `8 X ,...,A
/ `* y1 ]3 s9 N- xk
7 _% Y8 e' y0 n- n- }: g$ R
! h7 M* r  U% ~2 @ },定义切图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
% I" W9 y; w: P, [  r1
  H8 S+ w- C: B1 b1 c, b! U. j$ `% t4 W) j& O- H- b7 i2 t
,A
0 X& X3 E% e/ |/ V1 R+ O2
+ t: |6 J1 g/ Z/ V' [4 N* U! _0 x! b# s+ u& z  w: t8 l1 T
,...,A
$ m0 u" ?5 f  j$ ]- ^% i6 fk
, W. {2 M5 \1 U3 K0 U- w) w. d9 D; s3 d; ]( e0 O% D, \9 ~, Q
)= 5 R: h! X% _* N1 @  L
22 `1 {4 W/ z& j. ?+ D. D1 @
1+ V* R8 c8 M: K0 w; e+ O
- q; M4 f. f: p9 z5 x7 @; W2 }
- R# q1 m( O1 r5 o9 M3 b9 P
i=15 D  G# G$ m* G) B7 B
2 Z" }7 o# u3 \
k# ^9 \2 Q' e, H' n# C

5 V& @+ L/ d4 R- n8 d! n W(A
5 \( [$ d& s3 D7 U1 n! Ni
5 V' a, l+ ?- o. z- p( ^# ^1 M% }$ a. W# q( ?! y8 H; {/ S
, 0 ^7 V2 a, P* B8 B
A$ P8 {2 R% ?: _0 E1 r7 o' x
ˉ1 u9 W8 V2 I  }: }' `( L: n
3 u" D2 T4 Z4 A# h5 x* Y
i1 f* }( o& S0 k' m
- K" V) w: r" _# Y$ h  g
) (其中A ˉ i \bar A_{i} 3 x7 r8 V# |* I7 x8 b
A
, H; B. D' I0 Y2 aˉ; [: f) F' F* b

4 x+ c* T; H2 y1 L" R" ?0 ai
! [5 b& p, D6 b7 L9 Z' p
" b  }: P6 u# u! B" P) D 为A i A_{i}A
% T) y. h3 O8 G9 n# ui
9 N" U# M1 s& S2 A, J2 f
* v8 Z# f! R3 Z1 S& U 的补集)% M) A/ n( ]% Y  U+ d: B) C) @8 [
可以看出,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
! ^8 x) l! u$ ~5 H# }6 R/ |' c1
, y0 H2 @; u' r  w1 l0 U
' X2 |5 C" b) Q! z; a7 e7 K( s ,A % @4 a8 w: }* D. g* @* q
2
* V5 A$ P& R8 g1 i* L( E+ e) m0 M. i& L" Z* c
,...,A 5 V5 S: e& ?5 {2 q9 R) c5 }
k, U7 z7 `5 t! }0 {% x% u- m

" v/ I' k) C1 [1 ^' O3 S3 i# s )= 8 _! c9 \, w0 d: c: c7 }
2
$ w  z9 N( O; k. z* r1
2 S% p% ]! p6 i+ H/ H
- t/ M! L$ S/ w6 f1 k8 ^7 @
+ s( ^' p0 g9 K$ W- R) |i=17 T( A! k8 q% z+ B0 @% G' G
* [+ E! u& ?/ M' `* [2 L& y; k9 }5 C. @7 X4 x
k
4 K' O; \- F3 X$ r, x0 b
# Y. k4 a5 b6 o W(A
0 _8 x: @5 i/ U2 @* h' ]; `i
! B3 M9 z4 j! S* d0 x( f& o! F
+ w7 g' R4 x) Z' _1 v ,
! j) y( j- u2 m* J% h; _A( x$ t; R4 Y' a+ @8 I+ k
ˉ$ E2 O1 h) Y! v9 A5 u; n  Z" N4 R
7 U6 a; ]7 c$ v$ a7 y
i
  T+ d  V* j5 l( r1 \4 g
" H+ E5 j7 b% y- O )在划分子图时并没有考虑每个子图中节点的个数。所以在某些情况下,最小化c u t ( A 1 , A 2 , . . . , A k ) cut(A_{1},A_{2},...,A_{k})cut(A
1 q3 s, h* ?/ A8 o) @  \1$ w6 V" d% A& s5 Z
4 M9 d( m2 B, o0 ^2 C
,A
* N  h% j% k3 K+ x% d8 ~! J2
! G  F6 l6 l8 t! E" I, F) ]3 n$ J2 T& w
,...,A 4 b. f0 I0 ?6 p9 A+ r6 v& F
k& P) o, C* i5 f3 q2 z. a7 s

$ Z5 m% E1 b0 B( n1 Z) p )可能会把一个数据点或是很少数据点看做一个子图,导致子图划分结果不平衡& o; s) K2 ^  _. q6 v! |

! S3 |/ q3 M6 v+ l例如下图,选择一个权重最小的边缘的点,比如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
' |* m. }* O. s$ s0 @) @1
) |" ~, E% n. t' [0 Q2 E' n
1 F0 k0 r7 r- {) u5 w8 z& {/ W ,A * w0 e5 P! @+ p) q* ~# k) t4 A
2
9 e8 i* |; i* B" Y
# J& j- V& s3 [6 H& m$ n ,...,A
" U; f5 o# S7 ~% k8 @5 q  j+ y- jk
- a5 k2 y7 a- a' S1 Z
* L) }* O3 M) x% U )但是却不是最优的切图
  G8 Y5 ?# [4 R6 W0 D- A$ f/ p7 Z6 M# P2 {: @
为了解决这个问题,会引入一些正则化方法。最常用的两种方法为比例割和规范割9 D' s; ~* A! e% I5 ?
" {& J( _$ P; Z& _! @
比例割: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
' h5 S5 U+ [( T" b" D+ J2 p. f+ G( [% ]1
3 E/ `1 n. u, E% p. s3 _6 X
0 M6 r& y- B  M+ G' B% ^- O ,A " Z. w5 x- }" O# D" C
2* ?) _0 `. H1 {8 k8 B
9 v3 {' J  v0 r9 w' C6 \
,...,A
5 ^  Y1 _% G. F  S6 sk. u, K- p' V2 s; C$ Q) _( C2 v5 c( h
' A7 v$ D# g  M  o: J
)=
, O" W6 @, N! j% n, b28 q" t1 q6 W+ X
1$ n, H% _' A! ]. `; C( i. Z

! X* R9 F7 J, J7 [
, k2 e" ^1 \! Y; l, @4 Ui=1
% A0 Z/ D1 F6 P' w) v% G  B4 G% E
) v0 B* ?" N" E5 w" m- S4 tk
4 g) H( r' b8 |/ \/ I8 \9 E/ [, G) Q4 q0 E5 Y
' Y: K  W7 o- `5 c- Q& P% Z
∣A & M. S* \# t4 P( Y5 p- a
i
/ @8 o# ^- _/ K" F# B2 H1 Y# n1 P# F1 a; c

0 i% l1 z# X* ]7 v; Q- R% S7 [9 aW(A
9 i5 C* N# `1 W0 z$ [- ]i- F5 N/ J$ H- W, O8 O' F
% X# W0 u. [2 p7 W3 Z# z5 V0 `
, : @% @& v* U6 i  w
A
: r* p: {' k" n$ v7 I5 Iˉ
% G, V* p: V1 j7 s2 D
+ j5 p0 |/ H: B" Ki8 C, t! p; I+ N

& |8 x. r1 c5 @' Q% ?8 { )
( U) Q: E0 l( @3 b( c7 f1 s' m% ]0 \8 T. ~& Z% O

1 j3 l: m2 k5 l# E5 |5 [规范割: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 8 q$ I$ `3 `. O( h  o( y
1
$ F% J1 I& M: Q$ Q$ r. \0 v$ T9 T) q% Z) V; r' J
,A
/ n+ i, @$ D! f4 @$ R- Q, q2
! ?$ p, @* V4 Q9 {6 T7 B/ }1 S6 \* @+ G0 a9 Z  Q
,...,A
4 U. C# z1 v: o9 S! k" G) dk& w! q/ s& Y1 c
; a8 [* a4 u2 ~% G5 Y$ N
)= . w9 G$ }4 K0 X' [( t  |' t
2- A  O0 V' Y; K, i
1
. }6 k3 N: O  c* o5 L$ P+ e7 y& _
3 K/ H- [& Z4 @
i=1
1 K: I, _: h: L$ Y+ w7 `- r* C3 M, i/ R9 j8 v/ D) a
k
8 j4 N0 D5 a2 i+ H! L( K
( K9 V/ d2 {0 L8 j, |' i, E  U8 {* l0 l' b
vol(A - p1 b/ V" T! b0 ^; x
i
$ \' e% x6 h8 u* t) _+ U' B7 n# K  I; I; R* W$ q
)6 |& u6 i6 s3 d# P/ g  l
W(A
1 }0 K9 F5 ^$ z$ [4 Ci
! {  n# a+ N: r
2 Q5 ~: Z- w/ Q9 V ,
8 i' R* D2 ]) k  A  }3 l2 qA
9 D: I. W1 N' [# L- K' e& kˉ
4 n/ Z$ Q2 p  G
7 E; I- ]8 T4 n+ C) n2 C& Vi, r' J4 G8 K7 y/ {. W

6 T; J+ c( n7 f) G- E/ z )1 j1 X& m/ C$ Q. U# V3 H
# w. s( m, c  O: |, ~
% z* n& i3 d  ^% t
(1)比例割
/ e3 Y* d/ ]) n$ P& o引入指示向量(点击可查看指示向量定义)h j ∈ { h 1 , h 2 , . . . , h k } h_{j}\in\{h_{1},h_{2},...,h_{k}\}h
" K6 h7 q& r! ]8 N& r, [0 C2 A4 c* xj1 c! O6 t  M7 v3 u
$ r" [( y5 v! X; l* T! m% `
∈{h 7 A( A0 x- G# a4 q/ |3 o
12 \0 M- N% H6 N8 i0 J) P8 }

- B  {7 L3 H" J4 W0 ~2 r ,h
) o2 y" J9 S9 ~' q  z! H5 h29 U1 ]* k. q, c
. @# Q$ \2 s) s
,...,h - T" t' }5 Z  n: W0 o* _
k
3 L* W  ?* W; l0 l# g6 _# y+ K  Y6 k4 a2 b/ F
},j = 1 , 2 , . . . , k j=1,2,...,kj=1,2,...,k。对于任意一个向量h j h_{j}h
' L; D$ J3 }2 ^- m* h1 }7 n1 y, E9 T, gj
, V5 G0 X& Z! ~# T. c
% ]5 j; E( H9 H; f3 v$ T6 {' E ,它是一个n nn维向量(n nn表示样本数),定义h i j h_{ij}h
, d) A4 |% Y8 Sij
9 P+ j: N* T( f, F! ?( Y- c) O' P/ W- [$ U* Z
如下
6 t7 W1 \4 e7 C
; Y$ o  a+ g) N/ Q7 t9 r! c# P* Ch i j = { 0 , v i ∉ A j ∣ A j ∣ , v i ∈ A j h_{ij}=+ f) m; ?: }4 N9 b5 c+ \, G
{0,vi∉Aj|Aj|−−−√,vi∈Aj" p" o! r' l+ H8 U4 Q9 e
{0,vi∉Aj|Aj|,vi∈Aj. z# M5 e; V' \  p% N) [
h
$ y5 Y; u+ N, s/ _* J# fij
( R7 N' s) o$ c8 u' h5 T
! k' R' n& u  b: ^# e) V; H+ ~ ={
8 Z8 A- S' k) F. J" a8 V0 g# r0,v . w1 \0 ]6 s  m5 z1 S2 q. c0 Y
i
: A/ t. @9 O" L4 G
# O( @$ Q9 W1 I9 @. G, _6 h) s0 r* g: L+ s
/0 ^/ K& Z. v0 q; G/ z- j9 i
A 7 D; e: p9 h! W+ N0 I+ O/ ~
j
7 o) ~+ u( B6 e; U2 U5 X2 y; c) @$ A* ~; n4 W: u: u! Q5 q' l5 y4 {
( X) |5 `& z. ]% Y/ @
∣A
( L' G$ ]8 u. E) qj! B1 [- V+ M) G) r  V- G

2 ?8 L" M6 W7 E0 d+ \% }; f! y7 C5 y7 m  S0 a" P4 q6 f8 h) _" f

( X/ }8 m3 @& f5 @7 U ,v   {6 X1 i: J: O9 ]5 D+ B; G
i* c) Z. ]( [: c& k9 V) W) O3 @

# L' p7 F8 E: ^  h0 o7 O% s% n ∈A ( ^9 M3 e) z) i, w" r# ?
j
5 ?9 L& _. f+ h1 h  I. r  b( y5 w) S# G+ t+ E
& C( E+ S6 _& g( g! W' g
7 y% ?3 }3 P  {& Y, Z& k
3 j  `( ]+ }, F

9 R% Q$ w1 D' J$ u6 Z于是,对于h i T L h i h_{i}^{T}Lh_{i}h
, d4 o: M7 o7 Z/ c* R; F0 h. ^i
4 v, t# U7 e& M9 U9 FT
( c- y2 y! b9 Y; u9 S
- J5 C. I9 }2 l Lh - `  o. I, g; c$ |2 k9 ~
i
; L2 s1 t$ [) c$ i
4 y" B  T) ^9 s: Q$ c% r7 i ,根据拉普拉斯矩阵性质可知
; p- s8 q9 w( Y# A) b) \# T4 d: z/ ]4 a+ t. j! l2 D  v& M6 ?
对于任意向量f = ( f 1 , . . . , f n ) T ∈ R n f=(f_{1},...,f_{n})^{T} \in R^{n}f=(f 0 t! O4 T) R( [* E2 `9 [
12 z! _& S2 _8 ?6 ~/ o* G/ R

) f& V2 r3 _/ m" z9 N' C ,...,f 2 F+ ^0 S1 Q% o: k# G
n, \$ }5 |  O8 I+ T

. \9 e0 b: g" F4 D& q ) # t! h; Z% J: U/ u
T
' ~) l  _- b* m6 h* N8 y ∈R : v: a( r8 I) N& K# m& [
n
5 z4 @1 Z0 a9 j ,有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 p3 b5 v) E- J7 K! k
T
- t" B2 G# g. @8 ]8 s0 ?5 G Lf=
9 r+ v% o2 e0 e- L- a2
, u" T  M) z! p7 Y13 v  q+ b' B! ^% l' {

" D/ t. ^4 e9 [4 x, e; U5 {
& B6 O; n2 i* ]* y/ ]7 }& @0 Z0 N/ li,j=1
. Q! M0 ?: x6 ~, H- T
# X, S* q* G# s0 N) a9 yn1 @: i3 t* A7 j* V

+ [, t8 N8 ~1 K- d w 1 f% F* b; A* _$ t
ij
2 S; V) x& R( s& ?$ ^
2 Q) {* @9 m7 _& }$ |8 d2 |( J (f " @0 A+ l" a" |9 d# t: v! I+ v
i
- f# O$ g% Y! d. m3 {
2 t8 E+ x! o2 l' J& n −f
) z* k5 _  N5 q- sj
0 i' {" o+ q; H" x: _" L* ?* G3 V( I# {: O# S
)
2 ?: \* E  Y. G0 A9 L20 q3 o0 T; g. s# m

% \* D! H4 a& Y1 {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}|}+ T3 p/ D5 y/ H
h 1 |+ [2 o' u! ]- x1 o; G
i! Y) {5 }! Z7 R9 A5 H
T- ^* c+ K0 s. O3 ~& b! x4 m6 n
9 D; O% W9 c/ U
Lh ' X9 b) {+ T4 I, K/ v
i
' m3 y/ y, C( a# f# z* x# i
, N3 K! k# t( w5 z3 D =
2 f2 t2 P( a( n" F) V  y8 p' c9 u2
! X7 Z3 r; d3 I4 y( n, v1
7 u* c8 t; ^+ q% ^; |
3 M, L- t2 f0 r/ L5 i3 B" X- z) f* q/ g# m- I
m=1/ y' N+ j& C. e# ?2 s% W5 H
* c/ Z! d' N3 {9 _: K/ T) V

/ M1 O7 {2 U' y& P9 S4 b) h. p( ?  M5 H0 f
n=1
5 M! d# H& d% |
3 K" i' z0 A' s# R+ m( f! E$ _- O: a- O0 p$ X3 ?
w
. f' o9 `) o* E& X" {mn
* X3 }6 N' w* g$ l/ b6 Q* R
% O' k7 C* E+ K4 a" y0 R (h
1 K/ s) P/ c' E. ~1 l& `/ _im8 k' S6 f+ G9 P2 a$ n

. T( P# s, a7 v" G −h 3 i( a2 ?9 w% s- J6 w3 Z) W# w0 Z
in2 G; a" F4 e- |- b, A" d, R
! h; o% {5 P! p1 l0 G3 o
)
* q( U  H0 I! s( h; G3 j9 E2% T2 ?7 r) }) C4 ~% O
= 4 s; p, k6 N  U7 C, D  g; K
∣A 1 o: m5 d8 O5 p/ Q5 _# P0 o
i
- L, L: V; z6 t7 F& Y) H
6 ?+ y- o0 h# e9 _6 S# {" L6 Y6 O4 U, d# [
cut(A + H$ p/ |0 R# l! G* f
i0 \1 b2 L% b, ^+ ~) J# U
$ Q3 f+ V3 }$ B2 B' h
, 7 ?3 O* f$ a! W1 j4 q
A
% C; J6 r& e3 n& K( j8 ~3 \3 sˉ
) d, e. _* \7 @: J* r
! t/ _+ \% v, A; Q% |! Q; g- }i
- e  W6 d! `( C; R, z  c+ y3 g% _9 C" b  F
)6 v) ~% q8 s+ O& [% Y! ^7 Y
, r; |2 r2 ^& s

& O* r& f( g2 j1 F
& g+ C" o' e1 k: P. f! R) ?9 R严格证明过程请看刘建平博客:链接" A. `) s/ y* V* C! P, B  ]6 b5 U9 P
可以看到,对于某一个子图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 _: K% D( h) M. o1 I  Ii
  r) Y* T% _8 i0 Z5 u/ NT
) i3 X: k  o9 ^
& ^. d9 \) _9 R- S$ N Lh
% Q# M7 i7 i: O/ E9 m. Ji( {) F& L$ V: i$ r' d% O9 Z( H
+ |0 n& `4 B- u1 H( M
,那么对于k kk个子图
' Y- M2 L& o$ J& r, [( U. V
+ K  `5 H& \7 Z2 N, a8 G7 mR 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)
* i/ P. B4 ?: K; G8 zRatioCut(A 4 O- i$ q3 w( |% |- S
1
8 |$ S% W) H/ F4 d/ }
9 t) b7 \* U; m* [9 y0 M! L7 C ,A
2 f' E' b. @/ Z2 V. f+ U2/ ]+ S' _  l- n+ V+ V1 h

: O; Y) v5 T* s- S. A1 t ,...,A
- X' O7 v# i! w6 j, {" x$ fk2 p; B4 _  b& x# K) Q! L6 @" B

# K. D0 o. s. n6 {1 C& p )= + X$ @  B4 @+ ?9 n
i=1$ E" L& ]4 Y4 ~) f5 L& S  B2 {
9 K3 r5 J+ p  q- n" ^" k" x  u6 {
k8 w) j3 d( n( _' P
' _5 C7 `7 m) ?) W5 x7 ?% c$ ?
h
) k0 H: n: s/ M2 A) m7 }; q  xi
+ g* F  E2 m% c3 [8 g: _T
# ~  T2 g1 x' `, y, j5 \* q6 U) G  U* B0 L
Lh
0 P6 V/ i% G* a2 ni6 O7 I! r" N) g9 ^! x  n
) q! b/ [! i. C
= , ]$ {1 ?6 ?- |- d! V
i=1
  j1 y2 F% \4 J' R7 T5 q& h! |+ g* Y; C+ |
k
- U3 p; G3 ?1 U5 V$ Y
% T4 a' ?, ]/ L: Z' @" N (H
# A$ ?" F1 I7 T2 h5 lT
; l1 B; {; h1 ?) U: { LH) % Y  g& G  j9 ?
ii
/ J4 c2 I( n, c8 \8 }% k
; N# c/ {( n; x+ J =tr(H 7 R/ T' w# Q9 Z
T
! ~" ?3 R2 o0 T# |$ i LH)6 J, C3 p9 t2 @: r* S4 N
2 W) R% W% Z; s$ u
因此,R a t i o n C u t RationCutRationCut切图本质就是最小化t r ( H T L H ) tr(H^{T}LH)tr(H " j% r7 }; `: g! R* c8 h
T
  v; I! {9 Z4 F8 C# J+ A/ | LH)。又因为H T H = I H^{T}H=IH " N  H- m& B& @% M  d! H
T
# r9 }# V2 g. n! s6 w. W5 N! z H=I(单位矩阵),则切图优化目标为
- D+ a9 ^! S9 Z% N; o8 q4 ], Y- V, b2 O* o& R8 V
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
2 C- s$ w4 ?& `" `H+ D8 ^: l; V7 _4 t  D
argmin
  k! _, s$ U) \) H* E) D* s
( i& C3 a) I" {. ]% I( C' s; X9 |) n* y$ j( f- J9 f4 M
8 G- a; c7 v, q. k5 h
tr(H 5 H( {4 I# n& r( a; r8 U$ c; O
T
* m+ {" @3 z6 U LH)s.t.H 6 s0 Q% Z: ^" C" T- S: Y3 x
T
+ {' i; d  ~" n- d H=I7 o6 X+ d, i# |( A7 B
+ a' I+ I" P8 t5 w( w  [/ H8 b0 \# w
对于优化目标t r ( H t L H ) tr(H^{t}LH)tr(H
: Z* u2 `, R0 T9 N: tt
: h& ^% A$ n: r/ ?6 {6 r" v% l LH)中的每一个优化子目标h i T L h i h_{i}^{T}Lh_{i}h $ M5 n8 K" I$ a0 T& j
i- F: D$ N  I9 Q7 X; n
T0 n  ~/ v( l+ H, L+ b/ A$ D
$ Z7 p# X2 G. |7 j1 X
Lh
; T( K& W  d2 Ji9 [$ f! f3 @5 _

: O5 g. G* J9 O4 t% i ,其中的h hh是单位正交基,L LL为对称矩阵,所以此时h i T L h i h_{i}^{T}Lh_{i}h
7 o8 r" H' ?6 d- Z- t" J2 wi9 I6 B5 m1 _( c, u* h
T
. |: m9 `/ ?0 l; I. S3 v
8 M+ I7 B, @- i8 ^7 x9 H& f Lh
+ d' B$ b" J8 F* ri
2 M  h* s& B9 C7 X. b  f; a+ n/ N3 a" ^$ ?. _1 Q( s+ q- ^7 C! m
的最大值即为L LL的最大特征值、最小值即为L LL的最小特征值。而在谱聚类中,我们的目标就是要找到目标的最小特征值,得到对应特征值向量,此时切图效果最佳。所以对于h i T L h i h_{i}^{T}Lh_{i}h
* ?  _. J; C/ Z, z# q% Q% ^0 ei
$ n! R% Y* x/ A9 HT' W1 y5 c, F- f

& q4 \4 b  q) {# n2 Z Lh
& m  s7 T$ X6 J  s. \i- L& \6 c8 N* n2 I- P+ ?! Q

1 v0 ^  K3 Z" v2 `$ e0 K5 }2 K. t; V ,目标就是找到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
) t, q( V0 S; I  L$ at
1 |! L$ F, S# b4 D& B4 y! M LH)=
) ?4 ^. y8 V, g% Y! n, q* yi=1
* X2 P( a$ E) S. t( H4 h! E+ l  A" S. [3 ]1 y) X
k1 t/ T. O! q9 A& `# \, l
2 y8 @; B% p' e. l2 I5 k1 g2 |
h % i) ]+ H" ]8 }7 r
i, h* K+ K6 I! x5 n! v/ w) V
T& R7 i& I& _: F0 ?3 ^

5 y7 z9 T- |4 X. [! ~8 H3 x8 { Lh % A4 e( p' R1 K( X6 [
i" c  Y' f. w* Z, p5 l4 }

3 o) s1 c7 C& R! I- n% `! e. ^8 u8 p ,则目标就是要找到k kk个最小的特征值
3 a' V! P) O0 M6 V/ ^: {" k
3 ~2 Z, C$ F) o& \因此,通过找到L LL的最小的k kk个特征值,可以得到对应的k kk个特征向量,这k kk特特征向量组成一个n nn×k kk维矩阵,也即H HH。一般需要对矩阵H HH按行做标准化,如下# d8 `+ d, Y3 B! B  Y$ t
. {; F& h6 N5 `- J% S
一般来说,k kk远小于n nn,也就说进行了降维
! E/ S4 A2 T  `2 t0 P6 ^; Qh 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}}}0 |+ D# J1 d, I" N; M
h
; t4 Q; a7 K( W1 Bij
: P. m9 [$ O' ^6 r- r$ N2 |( d4 ?) P6 M# H' b

& e8 A3 }# j7 F5 y$ y =
( I' N  m, c! n7 p( 5 b+ C( }) N; a" v
t=15 B0 Z! D$ O, k$ _6 B1 j1 c4 e
7 o# Q, q0 A% v/ Y
k
6 p5 E3 I5 ?+ A6 C8 ]6 m9 w( w
. C6 l# K5 g' \4 L- S' b h
; @3 K. d  @  d1 B! E6 S: ]it
) B$ b& j5 Z+ P0 l5 P* H) w2
% [6 K) ?' X) ^( D8 C9 ]5 |; B# B1 j! n/ g
)
0 u( Y, P1 V  [3 x+ Z2
9 E  j' @: o% C9 p! n  B6 H1
8 u9 F7 f1 N. s2 }0 @, S: l, |* G: D4 m1 q  U! r6 g+ ?
7 I$ c) U$ j7 X

& o( N2 f7 B$ q9 Xh - J) G8 y; B) i8 b
ij+ D& N! N  d( I* O8 X
# f) o" X& Q2 P, W

' `) O& R% M: o8 u! N3 G' i7 s# r( R* Z6 Y

$ J3 H% g1 p" o. ~% C: s: X
& G1 h  Z/ Q5 O' y' n3 L这里需要注意,降维后导致得到的指示向量h hh对应的H HH现在并不能完全指示各样本的归属,因此一般在得到n × k n×kn×k维的矩阵H HH后还需要对每一行进行一次传统的聚类,比如使用K-Means聚类
) y4 b3 p3 r) d. ~+ _/ X. x8 _6 K9 U
(2)规范割(常用): `; c) N% H6 \7 e. C: K
规范割和比例割类似,只是把比例割的分母∣ A i ∣ |A_{i}|∣A
: ~! b6 i  T" g* y* i) B. ki
& f3 p" Q1 k- y4 Y
/ F9 m1 [9 w4 k8 K ∣换成了v o l ( A i ) vol(A_{i})vol(A
5 F  a" G  _# n2 O. R3 L# e9 H! }i8 S8 B9 v% L# }! D
; d! {* e( o( Z
),定义指示向量h i j h_{ij}h
2 N; n8 M$ r# H; ~ij
4 T! ]2 e1 n& O: O" B3 p) ?, n- s; X+ z3 A, u& n
如下
0 y" ]3 ?5 M0 f- S) r8 `4 i( E7 H, f
h i j = { 0 , v i ∉ A j v o l ( A i ) , v i ∈ A j h_{ij}=
* f( {9 F4 x0 K/ L% z{0,vi∉Ajvol(Ai)−−−−−−√,vi∈Aj
. i% f" L' p) R* e- ?: W: G{0,vi∉Ajvol(Ai),vi∈Aj3 `: G* L0 e6 s' e& s% P! s
h ' V% U# H) q' O# {; x4 c
ij) x  u5 _% k" R: ~7 s  ]; j3 C

8 r, h: g$ n4 w+ F! k ={ 1 x8 }0 P, R5 m, j, P' Z: I/ L) ]8 a- e5 x
0,v
5 S8 u- [$ P1 W7 l. D. Ui
% n- p( _! A8 c5 I1 h0 J1 f
" t+ O, \6 `' G$ t3 F
0 j" |( j8 d+ `- W# i- Y/
7 Z4 u  j1 ?# f: J0 o6 {/ k4 }* NA
4 Y+ _+ T; k! h7 r0 ej
! b7 N' j1 h/ F! F- U8 r
6 U4 }. h4 l, O' ?
9 ]1 H* k$ Z2 I! R4 {2 cvol(A
: |' ?. ?2 _% p0 W, I3 r% ~i6 z: Z1 z. k: }6 B6 t  {5 k

: b. V4 ]6 r2 p/ X )9 K3 Y' g9 I7 d9 r" |

6 h" }5 u  i' z1 \, D+ x ,v
3 K  C, o$ S7 `5 P+ u. C$ @; [1 ii$ \; w! p- Y* g1 H8 e# g- z
+ D2 v; I' j8 J* @3 x9 M
∈A 7 B7 K) G4 C% B& t9 f
j' W5 {1 b$ S, }% J, J6 U$ n5 `
; i! ^. z. O; m* Z% Z  g3 C

( Q4 G9 @# P: o9 h) x5 s4 Q5 C" ~! D. b

; _/ ]( G! H; K# T+ A: g- f8 W! t2 w0 V
于是,对于h i T L h i h_{i}^{T}Lh_{i}h
$ @6 W5 S# x5 u% k9 k% zi" j. y: j" _( |9 S' n  w+ A
T% o+ @/ D2 X& {  h
! t# A2 W* K4 Q+ |" ?
Lh * @' @6 y/ [9 h$ |/ @* {
i
6 T: B8 @( {2 O5 q1 Y2 G$ ?' `- r) Q; F/ Z3 l
,根据拉普拉斯矩阵性质可知/ d  e& V9 _' ^3 ?1 E$ M

0 j, B$ r& G2 n0 B对于任意向量f = ( f 1 , . . . , f n ) T ∈ R n f=(f_{1},...,f_{n})^{T} \in R^{n}f=(f & b3 z0 p7 }% X6 f: S% m% i# r+ d
1
. [+ C! V! [! K+ S; o5 i9 `4 u+ R1 Q1 U
,...,f
* n! Q" e! [+ {# l9 z. Q: }n
+ L+ R0 W$ Y) u; K( v9 ^6 Z# {5 [
6 K/ J* Z' e7 h! N) X6 @* H )
5 |; @- Q( I; u- E% \T
# k  \0 I7 E+ l8 m( k ∈R
. v" v. d1 }+ q2 [% V" u0 h5 T5 Sn1 }: D! q% T( X; C, O
,有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
6 Y6 r6 J) O$ e5 VT
- a) b, l2 q- g  o/ A" z Lf= " P5 v7 d' V. [
2
9 z- ?9 a- T/ b$ |& L: R4 i1" ?! ~" u  a  z, o

- Y0 {4 o' g! q$ z! `  p/ W9 q0 k9 |" L* A. _
i,j=1" `5 Z! C" B5 H8 |+ A

* r6 `* H# f2 X8 Y& w' Q4 yn# O4 f0 x: ^& D

( X9 i- \8 J  T5 Q; G0 O% ?0 w: _& Z w 5 S5 Q/ X. I9 N0 u7 y0 c" W6 a
ij$ y& E9 I8 T7 S7 \8 X6 \
5 N6 j' p+ u9 t3 T! v
(f
: q( d- Y1 C' W9 Ei$ R& l, Q' D+ |7 ^/ U. I

! B; T. v9 R+ D; x −f " s+ k3 m6 A' l* [
j. Z6 t) x$ B. P% _

& B5 t# g: g( F3 g2 G' f9 m/ z4 [ )
, B8 u! D9 Q  k, ^6 c27 X# d  O0 k3 l% q% @( P* v: f
# t) _' H, J+ T9 e
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})}; h6 ^9 h1 _& t
h
8 N, i  j: W3 A. ji
! a3 L/ p0 b; S3 {# \T
0 C" h$ ^" |/ O! I5 c: M5 T* N0 Q3 l5 n, O) V  i' e. M4 m
Lh 2 D* T1 a  x# z0 J, J
i& _' L/ s0 `2 l" V+ C
1 _+ F, m/ T9 F+ D) b
= " m( r% [9 g% v7 u
2  v: X+ V# o. N6 ^
1/ H+ u1 ?: b. ]( m; {

5 q. Q9 k% Q+ L0 G3 n/ y4 a3 `  s3 c. F6 W
m=1& @4 v( Z! s9 l: j1 }, y& \* f# D8 j
3 j" V& l. C' B3 F

3 Y- H3 N' W6 I3 C  _' q4 }' C2 L* x4 L  R2 I3 r7 a( o
n=1
  \" Q0 r' m# ~
  t! R: J$ a  c8 V2 g9 K
! E+ u6 D& t% ?1 M% g8 H9 y w 6 q/ w# ^, B% D$ ]: t* y1 C1 A" X
mn
" j1 P7 P( T5 Q2 F: T; ^
6 b0 k, Q( y9 h' _9 i (h
; |. u% B+ T6 l! oim
' Q: E8 N6 {& k" q3 y9 U
! i5 y  Y0 P& R −h
0 v+ ~2 ?: j  q& Z4 uin1 S% J) \7 j  `" u" i
; `$ _/ x/ e! a6 U- q
)
8 b" r) f; J- I2
) l) W! f  \5 H = # \  N' ~$ Q1 K8 @% X# L
vol(A
) M7 I' {! g( W) y) ^8 ii
, N, N/ q8 S7 L6 {) ^
$ G$ D0 e3 ~1 u )$ M6 s' z0 X3 y5 l3 |* m2 P
cut(A ; i; a) f& i# E0 k$ g
i1 b: x  Q6 t; D) u1 e- X, o8 ~
2 _8 d5 {) K% f- l. A
, 9 u+ B5 a/ k* e- S4 [
A: T/ q+ D; R5 T, J- w
ˉ
3 A' M* @" ^, h* Z
' F9 G7 x* l- x. C# R5 Bi
* E  M( d. }$ h8 I( U2 \2 I
$ W& U) X3 A; Q' n6 B3 {5 r0 w' U )
# |+ a( q+ Y! Z9 h5 Y) S6 I8 B5 W" q9 L  f. ]- a  U5 U! ~1 B

% k& `# R7 c  y" S
$ P, `3 p4 D7 G0 U8 ^. G5 |* ]严格证明过程请看刘建平博客:链接
6 f1 h" d' R/ O可以看到,对于某一个子图i ii,R a t i o n C u t RationCutRationCut就对应于h i T L h i h_{i}^{T}Lh_{i}h & I9 E- ^1 A. P/ v! H: n; _* D* z
i
* M4 {) {, r- YT6 m( U, a9 }2 v4 X. T: S

0 c+ D0 u% \, c( r/ J Lh
/ F( V% Q3 P+ l" S; mi
8 |' J% s" D. V: Z& L6 W* l" L7 t8 Y# p* o1 z4 n# z
,那么对于k kk个子图+ n1 G3 \/ {5 W* @( b

. S8 U& z7 y! @N 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)/ l* O' u; x# y6 N  T; C
NCut(A 3 }" O2 f4 T- ]) y
1+ C. L" L6 \: _; V
& Q1 z% W3 ~( c$ B( B' @
,A 9 `. Z- g2 y  K5 ^, k
2
& I( t! T: d' R8 G/ ]2 h- ?" j6 T& S, D6 A' o
,...,A # L4 _: ]- l( l/ c( w$ c2 s: U  T
k1 N+ X8 C: r9 h9 O. h. c  T+ |

- A. y. B* Q9 f( F8 E )= " @2 ^* B$ C2 O0 P
i=1
3 Y( n; j& A1 K! {- K; d/ [5 A2 j: ]. v8 n2 Y' a6 z
k% o7 x9 h) C- \# p1 ]& v
0 o" Y. {* f$ @: C- K
h ) t3 D2 R. A8 e3 q8 d+ j5 Z
i
# V; q8 l: W$ ZT1 y0 e- t/ c% b  G

7 m. x  z% X0 r/ {6 D Lh % E2 j( d5 Y. Q/ G9 s% K
i, L( v' M4 D$ K3 A8 T

3 F' C! J$ M( l$ o. X3 Q; u1 `3 A =
9 Q9 h& V/ T4 `9 H9 Z* r6 @i=1* d% u- h& ~9 ^0 u8 |- A4 V

4 G8 M  P2 x  N3 k2 @0 M, ik4 m5 K9 d+ O3 x) \' |

, Z4 ~, _% J5 E) K9 ?2 ? (H 6 U, [8 {8 j' X2 {& e' `1 b; S
T3 c1 w, \; h  \6 o) I5 s, u
LH)
' h' q2 Q! `5 u/ rii9 S4 }( x* \$ g$ }3 }4 }1 {
+ i9 M8 d, `1 h3 W" [
=tr(H 7 e4 Z: V  {1 `0 c8 G6 ~2 u9 d
T
: d/ `+ W* n6 L- I" D- g; D LH)% W8 C, ?+ a, @" \
- Q; O2 Z4 I) N( c: g
但此时H T H ≠ I H^{T}H \not=IH 7 T! {' d- f& z
T
' _: M# f9 u$ |7 F. l2 @4 Y5 [# q H
) f. ~* m4 s7 n/ [0 Q1 j2 B8 m' U" u7 u; z) Z% O
=I,而是H T D H = I H^{T}DH =IH ' B& U2 k# y* H/ r4 D- w
T
/ z( u+ ?8 l. A4 \; r/ ^ DH=I! V2 f7 Z* v# M; }+ ]* i0 d
4 L0 Y3 P2 [3 E! z! j3 p: @1 V$ F
这是因为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 B$ D4 x4 {0 b+ Bi
! g; M( Q2 y4 y  O: }T; t6 s# ?; C1 d: o
: d/ i! D- q/ _, Q# i' }
Dh ( ]$ y5 K0 E6 O
i+ L: C, c& L* p- v
8 j7 {: E8 y' i8 a7 t  K* e
= 2 q7 m: A; |! h; q9 f5 @8 ]- r6 e' h
j=18 @* Y, O- I5 [  p7 }6 b
$ b( x+ J, V% d' C
n
/ T9 ~1 D6 L/ B5 j1 d. w- p2 {& K1 R
h
; |& S& D3 E) L, [7 \9 D: rij
; W6 x2 m0 l1 @' R! n3 h/ `8 E2
; _7 \3 A' q& B# @
/ i: P3 U. O9 j+ w0 L) ]  p4 E d
! D: W& Z7 L$ Sj
" \$ a; F0 l; }: Y$ j$ A( N5 W, p! l/ M: g- i3 K
= 6 V* v1 a3 J  {2 G* g
vol(A   L2 s( ^0 g' S" e6 i' r; k6 k
i
. q$ H; d6 D& F% y1 h4 V8 W9 x2 N  W- x/ z3 Y
)0 d. S3 Q/ W7 A. y- I1 N6 C1 |+ m
1! ~( W: n) G% B4 z
) T. d0 A8 U$ E
* h1 _: ]. V0 L1 }1 [+ P; C4 x
j∈A
4 f4 b0 [. x. L7 C2 ~( |i
; [9 d1 p7 g, }' c/ a
: z3 ?5 W. c8 Y0 H1 P4 ~. Y$ J( L. W- [$ {
! b! t& _; t: y

  C$ w) Q. `' U# W1 \, {! c d 8 G5 _% I% R" F+ z
j; w. N) H+ e5 x# d2 |' F( z4 Z
/ x$ }+ N; z4 ~1 d
= + k/ v  Y: j, ^  h9 G7 |6 K
vol(A
( v# V" T2 S# W! `9 di, U& T  d( |8 [; V7 r
- r3 b7 e. q8 H! a2 }
)
! m/ X" ]; w  t4 f! H! I1
" d$ f' {8 e; W4 M7 f& o& L8 j& E9 U/ M  C
vol(A
+ O' G3 _; ?2 E( X6 si. @' A0 o( U: j2 B3 U
* I4 m) q0 }( j0 [$ A
)=1
' A1 T" [# D. s因此,此时切图优化目标为& p8 O5 x/ O. K

7 d6 H  Q/ q" e/ K! }/ Sa 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
. x, P) x4 Q" u( f/ u3 F, |H
8 e4 t2 ^) w% S& y- ]" b9 Largmin
$ \1 _# d* f" n+ d  A1 X( f) ~0 E4 o
3 _2 n3 U$ V7 Y& u: x

- i& K! r' Z) ^$ k tr(H - f$ Q8 v4 g  s  U/ `6 m
T* |. T$ ~6 v5 G. B! H* c
LH)s.t.H * c; @. @% I8 L- S3 S+ g
T+ ^1 D! `: s: W( _* e6 s
DH=I& D8 I* P! O4 ]- M

6 l$ T) A$ E- e* T但是现在矩阵H HH中的指示向量h hh并不是标准正交基,所以需要对H HH做一定转换。令H = D − 1 2 F H=D^{-\frac{1}{2}}FH=D
7 K% z, o; \8 |& u& I8 {
( w$ |( e3 e  S! ?* G% [- f24 s4 }& }. `3 }
1
! p' S5 C, b. v$ T( \2 G- F5 V4 x8 S3 t6 f+ y! F4 _1 g: b

8 `3 @; O* U% T0 R 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 ( E* J6 r2 _; J! {. d' W# n0 c1 j  d5 W! b
T- I* E* c2 T) D; `5 z9 o
LH=F 7 V" y4 [9 _5 C9 c" d
T
) W9 A8 N! w* t; u# S/ N2 d' w: N D
& f' I6 f% w/ K7 q: s6 a+ U/ k5 ?. k' F
27 Z% J3 c! C/ Z! j: a! g# K$ B
1
( c3 i1 I) @9 `" g) m4 ~. a: B+ r2 ^1 l. J
3 x8 J' `% U' W- I- ^
LD
9 o5 v& d8 M6 a0 V( J0 B( ~2 |2 V. [' l4 O8 ?, E2 ^
2& k# }& P3 a6 d7 s: x
1
4 x$ r" b& L( T3 K
( J& s. l% U  }- V, v! S
/ t; K0 C  w9 l* ~( ^( ?* |- ? F、H T D H = F T F = I H^{T}DH=F^{T}F=IH
$ \; d7 C; [8 u# hT
1 B% Z/ _0 s5 A DH=F ) }" _7 j( A/ @* v. ~- q
T
7 C$ h$ p: q8 z3 r2 \6 g F=I,于是优化目标变更为# k9 u0 l: p9 }& \
a 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
/ U9 v& z, a) ~- dF" Q9 |- ~6 ~8 l+ A4 `* a9 q' w* S
argmin, _# [3 Y* J! \
% y( M- x; {1 H$ b+ a% h

8 B8 S0 `. t8 F7 Q6 n( ^& k/ k# ]' A- T
tr(F
. Y$ s. E3 i" ~9 J( h# C" O, AT* }- Z: M; T7 s; k$ U
D
6 P' @; {3 G. f2 [: Q- m6 |
( v3 d* ^0 J/ N2
1 ]+ E2 P3 |0 z( |7 Z. E# {! x1
% R6 j9 r' I* p' ?6 G  k9 ^3 c& E8 m( R$ r
5 r8 t" _% b( o
LD
3 g+ E! R9 r5 j: e/ U* a
5 e/ N- T% `) u( _" j9 {2
, d8 W  |: x0 _+ C1
- a+ N" U1 X7 s& ~9 P: x7 O; W  h2 u& m' S: E/ J$ M* \  `' e; g% C
8 c: w/ F" Y4 v& ~# G( W
F)s.t.F " R7 R7 o1 j; N1 L3 x9 F( U
T
* d9 i6 S; a5 R& p7 ? F=I: K1 o, u2 z# [+ d; I
' J5 Q& K6 b! ~; Q
现在,和比例割一样,通过找到D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D ( M5 W- z1 T8 w4 \7 S5 Y

2 ~1 d' W6 N# j! j0 k6 D3 b24 ~* q- I' ^4 I( ]( m' e
1
1 d  Q# T) X  Z! e: ?
* _# \& R. A, S% ]6 `9 y$ p$ N; _1 Q) s/ L) I* t; N4 O
LD
8 e" L5 Z+ C& l% {1 l" l7 B
" V0 R5 V' r4 n5 w29 p6 R- m% |, h  V/ _
1* O# g  u# E2 g  A' ]8 h6 j
, g2 Z" Y/ h, s5 d% l* x

* P5 n5 X1 u! d7 D (就是之前的L LL)的最小的k kk个特征值,可以得到对应的k kk个特征向量,这k kk特征向量组成一个n nn×k kk维矩阵,也即F FF,最后对F FF进行传统聚类8 f" J# y: t  p! h# R8 \8 a/ C+ N& B
2 Z) w4 f9 X* m0 U
一般来说,D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D / u  S3 ]+ b6 Q, S1 b5 J* _
9 P- k2 N3 M3 K8 A2 m7 r
2
" w' @# [' Z0 d% Q& y, b) r. y2 Z1 P8 k1
) r  }5 s2 K! w
1 }) S4 Z" l# B9 H& z  N  h& M& J7 B0 O5 `( t1 Z: l
LD 3 J) L! L& l5 s5 j

& |4 g+ F6 }9 f* c9 n# s2
( |% i: i7 Q3 \$ L8 U1
8 z* e# O* e0 ^- P2 R. Y: ^' q. N) r5 h/ M8 U6 M0 s. g3 }: B

2 b1 V, ?+ M' D 相当于对L LL做了一次标准化,也即L i j d i ∗ d j \frac{L_{ij}}{\sqrt{d_{i}*d_{j}}} ' n7 A4 Z1 F  R2 g, v; [
d
. |6 t' u- Z( Ci0 I1 j) \/ u. _
/ Z' b, X& n/ V$ j
∗d , k, C) T  X7 m6 ~0 i
j
% W$ f5 J( U: r( R7 h! H  e. [- b4 S+ z
$ s) D: N, w9 x# X5 Y

; a/ D+ }( i5 a/ t6 w9 x0 p
% m( t+ r  \3 y$ c& S3 Y# aL ! Z& a0 W9 c" r  C
ij  E- Y9 d3 m9 A! r6 ]7 g
3 Y: G, Q/ X3 a  ~; \
/ O( r& Q( I6 g7 d! S% R; p& u

( J7 l! p+ O9 I) |
! b$ Z) Y8 b4 h二:谱聚类算法流程! G6 J+ Y# W) ~# ~
给定数据集D = { x 1 , x 2 , . . . , x n } D=\{x_{1}, x_{2}, ... , x_{n}\}D={x
7 h" u; ~  @. n8 {6 b1% f; g" P8 s9 A
& b0 i6 E' X9 ~. p& V  g. c$ Y
,x
( |$ @: N6 ?/ [28 M7 G" x; ^* k, `3 r: c) r1 D  i

+ q# Y% S7 x5 e( a' q$ R ,...,x * W3 p' e! y) z
n
% p5 a  g' j6 v3 ~! B
: s5 V# z% P1 X$ `  F. |. ^( W }# _* \/ Y9 A! |
  s6 y$ W! c  {+ a+ a0 J: e: T$ a
根据输入的相似矩阵生成方式(一般为高斯核函数)构建相似矩阵S SS(AffinityMatrix)
3 i. m5 y) _0 e* H5 v, I/ y根据相似矩阵S SS构建邻接矩阵W WW,再构建度矩阵D DD
$ c9 o4 W: B9 Z# J0 n3 n8 O计算拉普拉斯矩阵L = D − W L=D-WL=D−W7 i0 B( {$ |' {" z, K: m2 N9 B5 \
得到标准化后的拉普拉斯矩阵D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D
! c% s1 k+ L- ^8 c. P' W' z4 `7 U6 w, U) K5 z' G
2
+ i5 _5 S# @  B& P1
. D% J* t# p7 }" v7 p$ k" T
( o/ t+ O: I0 U9 y( Q6 q0 d7 O. l& K, z! W7 \
LD
: l6 b# L- A( C, ^: Y4 m
0 n1 Y- H& P8 U) o5 M% i, S. f, z21 N, v( n5 k! C: t, z/ S0 h" h
1
0 Q9 b5 H) I7 e$ `% \0 D
- L6 i9 t$ X; q! G" [& f) M# L8 w3 b+ T+ F$ S, n  G
; o$ Z% ~( R& E
计算D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D " j: s0 x% J6 Q" ^% x( ?
  J; Z, c, n4 ~) G- Z
2
- l; z8 Y' F- {7 N% l3 R7 p10 t+ y# Z) J3 F4 N. r+ i

) d. H" `, R. z) O6 A2 h4 r/ J6 W( ~! K: ?
LD
+ Y$ F! h: e5 U5 e, a
. _0 B# H- A$ k2% J. [2 Y; L+ t; n: o% e  E9 ?
1
- Q' o1 O, F1 m) X6 c6 Y% N* K* f0 }" D: O" r8 ?3 f4 e! A

4 B4 l; F' e* t; u2 @ 最小的k kk个特征值对应的特征向量f ff) ?3 k- U5 t1 U4 }1 X
将特征向量f ff组成矩阵并按行标准化,最终组成n nn×k kk维的特征矩阵F FF# x% q4 }* @6 j3 ?  r; M6 {
F FF中每一行作为一个k kk维的样本,共n nn个样本,采用某种聚类方法进行聚类,假设聚类维数为k 、 k^{、}k : j5 T& C: S2 u- Z

/ L+ }: I2 k: F) L( R8 ~5 C2 E9 {3 W) Q9 X: [
得到簇划分C( c 1 , c 2 , . . . , c k 、 ) (c_{1}, c_{2}, ... , c_{k^{、}})(c
; g& J' E$ z- O, o/ g' h' e1
& x8 U; z' ~3 b  @% k5 N# X  k8 E; g6 j9 j
,c
4 X% z8 V4 V, r' r2 n; V! G% }7 J2& H9 ?, m9 a! W8 U! v' K1 a

3 s$ o  C' [4 @# [7 {* p: K ,...,c + m  @7 r6 e# Z1 t5 ], R
k
* w& N: F$ d' T" e7 O" ~
8 x! b0 b7 o5 K5 X% V9 `+ \! H' _8 i

8 g# ~5 F8 `1 R* y* g) p2 j )0 }. r6 m, N$ ]) T- B$ I, H0 B' `
三:Python实现
* i! ?' j* Z. T5 L0 ?import matplotlib.pyplot as plt6 H  Z3 }, }) ]# r4 Y2 S
import numpy as np4 |. X8 S7 b) B- f4 A* z6 E% d* l
import pandas as pd
1 K; C, }% w5 \. U. afrom sklearn.cluster import KMeans/ }: a2 t6 a4 S6 \
from sklearn.metrics.pairwise import rbf_kernel
* [3 Q9 U2 ^5 X$ jfrom sklearn.datasets import make_blobs% v$ k% V2 \0 i7 v
from sklearn.preprocessing import normalize
6 m6 y/ U  s- n$ B6 M
$ _# [; `  M; P' U* t6 g: a  qdef get_affinity_matrix(data_set):
; }' {3 J$ p8 M! ~7 L  }- E    #  利用高斯核函数计算相似矩阵(全连接)
# E/ K+ K5 h! `. j8 |    rbf = rbf_kernel(data_set)
) e5 k8 R2 y9 h    for i in range(len(rbf)):
& I# h  q6 l! t$ I/ R( ]7 E* W, b        rbf[i, i] = 0- \! n- ^2 F  |0 @* K( A* Z- E" i
    return rbf) d1 v4 E- b" z

, v+ q5 _" N7 \: F% {  p# R( ]
' ]9 t9 V! S. C9 }def distance(x1, x2):
  \* E$ m# |, {& k% ~! C    """' H( Y6 T# Y0 V' n$ W; d
    获得两个样本点之间的距离# ^+ }% W( x/ J6 N, M3 F
    :param x1: 样本点1+ M8 S* B# x8 ]3 m) d9 I
    :param x2: 样本点2# M" N! C( j7 x/ E, @, @2 F
    :return:
4 A3 }0 @7 e+ g3 o' g( z    """
! u  \8 v; a7 T8 I9 z    dist = np.sqrt(np.power(x1-x2,2).sum())0 {, I2 V. h& Q7 k% V
    return dist$ ]0 E% z& R7 d- k9 b: }( I) G! B
$ v( f  \& s: O" c( o5 d/ m
def get_dist_matrix(data):
$ t; P3 `, l) y, X3 W8 l    """
/ }& R$ d" j& n    获取距离矩阵
7 G: M5 x8 d# L/ Y! `2 G    :param data: 样本集合
% w6 a0 h- N. E1 j    :return: 距离矩阵* U, C& @' }8 V8 C# `
    """( M( E$ M! D" A0 ~; `1 w5 z, p
    n = len(data)  #样本总数
. U+ r, }' t  o    dist_matrix = np.zeros((n, n)) # 初始化邻接矩阵为n×n的全0矩阵6 V, Y; i! r& P! X; I) Y$ O
    for i in range(n):
9 A/ r6 E- q$ h' S3 I        for j in range(i+1, n):
+ B2 K9 s2 ]1 ?/ g% Y            dist_matrix[j] = dist_matrix[j] = distance(data, data[j])
8 P6 |4 N0 H  y  N6 d! t+ \    return dist_matrix3 N8 J% |/ \2 H6 ^/ k! Q8 L

- z) k/ q' u5 w5 M9 a, n- z4 bdef get_W(data, k):
3 @4 I. Z# F! x; u8 L/ S    # 获取邻接矩阵(K邻近法)+ O  M& p" ~& y$ L/ [" |
    n = len(data)" S% \2 n0 u4 n
    dist_matrix = get_dist_matrix(data)
) c2 F9 |3 T4 S! V) i    W = np.zeros((n, n))+ K: s8 u3 Y' m
    for idx, item in enumerate(dist_matrix):
# k; x& A/ O( D& r        idx_array = np.argsort(item)  # 每一行距离列表进行排序,得到对应的索引列表
2 o* F1 G! d4 V5 v        W[idx][idx_array[1:k+1]] = 1* q! @. o! |9 T
    transpW =np.transpose(W)
" W$ y0 K, s5 K1 \' ?    return (W+transpW)/2
+ V! U$ j, m, k& P% i) n& ~2 m7 Y
5 z' R5 A3 R1 c* ]+ M) qdef spectral_clustering(data_set, k):
: e& I8 S4 h3 C+ ]    # 利用相似矩阵S得到邻接矩阵W
9 v. @( U$ D$ W# N" p! R    W = get_affinity_matrix(data_set)  #高斯核函数(全连接法)
- E( D3 ~4 ^; [4 b# ]    #  W = get_W(data_set, k)  # K邻近法) P) n4 L1 z; c: b4 l. x2 {; E
0 {0 k7 X: w4 r  c
    # 计算度矩阵D,并得到矩阵D的1/2次方的逆矩阵(便于计算拉普拉斯矩阵)
8 m( y9 |* Y5 Z: A' N- h( J3 A' L/ e    D_inv = np.diag(np.power(np.sum(W, axis=1), -0.5))
/ X5 D: R" Q2 [, m7 S6 J' l! i
* A& [* x0 O* {3 x" ^, Q6 K( ~  Q    # 计算拉普拉斯矩阵L=D-W
2 @- V4 K! j$ H) F    # 标准化拉普拉斯矩阵l = D_inv*L*D_inv=I-D_inv*W*D_inv
( B/ y# p6 [. x4 O' f4 e7 X    L = np.eye(len(data_set)) - np.dot(np.dot(D_inv, W), D_inv)2 Z5 ]2 Z" {! B2 v7 q% c( v. O+ [
& s: B2 r1 o6 b+ ?6 k1 [8 ^! v* ]
    # 得到特征值和特征向量
$ N: W( z+ n  ]    eigvals, eigvecs = np.linalg.eig(L)# c) o. ~/ F5 i# |1 f

4 N8 ?; ^. J, [" w5 W& N    # 找到前k个最小的特征值(索引)1 Y* ?1 i2 t4 [- |$ g
    k_smallest_eigvals_index = np.argsort(eigvals)[:k]$ W& i7 w# l1 j, r- {6 h

8 V. G5 o- c% Y1 B' n    # 取出这k小特征值对应的特征向量,并正则化
* v; P2 L: e' y$ v    k_smallest_eigvecs = normalize(eigvecs[:, k_smallest_eigvals_index])
2 Q# M7 Y3 }2 L
9 y$ `: `, j5 f" j9 o& g- `    # 使用K_Means聚类7 ~! I; u9 c) Q- r! W1 x
    return KMeans(n_clusters=k).fit_predict(k_smallest_eigvecs)" k2 x: o$ S5 t! }6 G& }5 ~. N

8 v* g+ }' q" X3 x/ D6 J; q- C3 g1 `% X7 i4 E3 m4 X5 S
raw_data = pd.read_csv(r'E:\Postgraduate\Dataset\jain.csv', header=None)
6 Y( h( ^9 C5 \+ c" j9 g+ i3 K1 rraw_data.columns = ['X', 'Y']
& A1 k, c& ^8 o( \x_axis = 'X'
/ K1 u# U9 u% @( F& `y_axis = 'Y'
; ^& w- ?5 k# r0 x" [0 O& h0 J7 c* G2 T8 D+ Z3 F2 T% S1 z4 w9 x9 G
examples_num = raw_data.shape[0]
  L! _3 |- r4 N( }! k9 ktrain_data = raw_data[[x_axis, y_axis]].values.reshape(examples_num, 2)" w2 ]" W9 \# n9 u. x) i
' ^- u/ H/ o# n
; A; l6 m) J) W# q$ n7 o/ v
min_vals = train_data.min(0)8 x& O, Z" \* O; A5 `! R
max_vals = train_data.max(0)
4 V6 }% z$ N2 A1 uranges = max_vals - min_vals) X' D1 n+ _7 i* `' q+ A% n' t
normal_data = np.zeros(np.shape(train_data))
1 Z) X$ |  H; n# X, ?% L! r+ Cnums = train_data.shape[0]+ Z2 t$ h8 v/ Q4 u$ x9 q
normal_data = train_data - np.tile(min_vals, (nums, 1))( Z4 I% n5 K3 Z0 V; e7 w3 U
normal_data = normal_data / np.tile(ranges, (nums, 1))8 {7 h  |/ p) t" H
8 |5 r; _! ]7 R( R
labels = spectral_clustering(normal_data, 2): `+ Z, ~' N  L; W+ S0 A2 S+ r, i
$ ~, o3 a! ^6 D: |8 T# `* `
# 原数据
, r3 b! X% k# r5 x& Ofig, (ax0, ax1) = plt.subplots(ncols=2)
; {( Q1 C& g6 {6 V3 b- `7 ]9 m( Hax0.scatter(normal_data[:, 0], normal_data[:, 1], c='black')' @0 e$ j! k, ?0 {8 f/ v
ax0.set_title('raw data')! j8 f" K$ W. k4 E# J
# 谱聚类结果
, \7 A0 F( Q9 T7 Q2 c6 M' i% aax1.scatter(normal_data[:, 0], normal_data[:, 1], c=labels)
5 @4 l" Z# F+ v- J' L& xax1.set_title('Spectral Clustering')
/ h0 u# d0 b: M$ Z' B
$ f: k; q. A5 t. ^/ a; Z+ r$ s# vplt.show()) V3 r* o5 D2 A: g7 i) c5 U' O4 T  i

3 w* e6 E/ C1 z: C: k1. V* O! Q3 k) U: Y- E$ l1 F
24 W1 y7 b2 K7 a. H9 Q+ p& u$ o7 S
34 B; [% _2 J* g6 e- l% t
40 {2 P" v5 s7 G% z" O. ]/ X
51 l# H( |7 S+ q' B" ~- E
65 r5 W' z: d$ M2 S' P5 Y
7
& |! l# a$ B3 `0 m84 T3 b5 j, v5 g! s5 _$ \; V
91 Y" E* B, d. i) m/ i, v
10
2 p+ d5 G, g6 J7 X, o  C4 J0 @113 M- k% g5 L3 O% O# F2 g% `
12
' }8 ^& i7 H# D! @# q13
) t% K' [( [% V14" M8 {, t/ X, ]& S% R3 _( m
15) k4 w1 p) x2 L
164 y. ~2 x0 L* R
17
. v2 w- i/ w6 V: J4 v+ i18# p& G, G; d* a/ l% @3 d7 [$ b; ~
19. e/ j2 l8 |. ?
20  g& t: p5 @2 M0 h% v7 N. l
21; p; {, [) N9 X* C! {' J) |* e
22
- ?0 y" w$ ?' T23
* ]) s) D0 M4 w  e1 w; F4 r24. @  ?  B, |, r2 p  B' R% L
25
8 C$ A7 Y8 i$ e0 V- \# v; Z26' m5 W1 b6 Z  ?* i  N
27
4 q& |$ r+ ?9 L. Z4 h28/ X( M9 ]6 h9 X4 r! R& a
29- V7 w. `2 ^, Y* t$ Y1 B  W2 A
30
0 A5 X, X7 o9 x/ s' T31# {  V% M7 x; E, ]+ ?
325 M4 x+ Q/ }2 I( |9 Y. J
33
! ~; S2 e) m, m" y2 g  o34
' y+ ?( s9 f* a2 O+ _5 g. n35
" y& G: a( A+ ]" X- q( L( i36
5 f- K9 I8 L. k2 i37
2 k# @: a: a" ]1 {5 h6 P38
, W  s4 e! j) f! r9 C, d39
9 F; _& h+ E6 C. b40( r. |, f% K: U0 J* H8 s7 w
41
2 f; B: \* C% y42( Q, T$ t' ]0 K& r* Y- T$ g# p
43
6 h, I4 O9 z/ J* K2 g3 ]442 l- f+ a5 M; [
457 |+ \( }' X; ?% e! W$ I( C0 z
46) K, T7 p8 E+ S
47, r5 l5 _5 U  B2 i
48
. J+ J9 k9 C" B8 P49
8 m; G3 C/ C. ]50
. o, y8 i. J. B) c5 v: Q' p51
& c5 X) d' n* p523 i7 Y" W' ~9 L! \8 m9 N4 z
53
( W* N1 y: `/ k7 g54
' ]- Q! k. K! v% F% \% e55+ S  U/ v' }9 f' J
56! f$ ?9 E# t% g+ W+ Y
57/ @, C6 [7 _1 \& \1 I7 U, T  |
58/ N# a# ~4 h1 x( D) F3 W  y9 s9 `$ h
59
3 Y# m) t5 a$ R7 @* J6 e60
0 p: k+ w' I5 b. E, A61
6 G  J/ ~5 s  W62
; S: }5 a" ^( E63' T" `/ F& R9 Z
64' d6 ~0 a5 |+ f" L: z
65
+ S8 [; D" U$ n( ^, T0 d66
( A5 B, E$ x* @$ E/ t: a67
5 i( ?4 v& Y8 r. l, B' M9 }689 d& C$ H; J: m6 A3 Y1 c
69
8 O+ T" u1 F* t6 u) k4 ]% u70
- h# k8 F( I. `! X1 `1 h5 d71' a2 }& O# F# r5 z2 k+ T* l* i
72
8 A$ @: a) K/ b% Y- W& q( W73: w" D5 B8 W, |. f4 x* n5 M
74& ], P, Y% a: H! L) }+ B
75
  C1 Y+ |  B9 L4 j& L% v2 W; c8 [767 j: P! P! S8 _
77
( t" n* A" j" W0 Y$ }  ^- I- I  [78
/ Q: ]/ U2 V8 `# ]! u79
2 n( `5 N) `- ]4 ?! J6 h! @80+ @( V# D- l9 C) m5 c3 Y
81! D9 v, u: ^; s, {' ], |0 @; J2 ?
82
( p% h/ F9 X: @( b# J# m% r5 {832 [" Y' m+ i- w2 H4 B+ M$ ?, g4 C
84$ ]+ F$ u: O: r5 g, e( z+ d6 x
85
& f5 F8 c) Q/ o) V* C1 O86
. V" I; w0 w, y6 K& d87( S% g4 \1 `9 Q$ t8 l. P% n
88: h0 Q$ N  o3 d" R) A
89
$ ]% i+ j3 U  D) T' ?+ y90: Q* d- L- M' G4 q
91& m0 v8 N, W* f  I
92
9 ^, D: a" S5 L2 e% \0 Z93# [* C+ J: @. }1 Q: H
941 R3 F4 z/ X" r+ h# h/ T
955 l- c! H0 l& c
96
, k3 g' q' G1 Q5 l) z- R, Y97' t& A) e* E' p4 P
98- b' h" v  u* v$ ]) {# ~
990 ^' W0 _- Y+ I; V" y" l# m. A
100
/ N; b( q1 T2 t3 D101
1 b* Y! ^+ P1 m+ F$ L( B* Y9 t2 j; m102
& M2 ?# f1 T7 p4 X$ K$ j& \103  F3 {  E* b) }% ?* p
(高斯核函数)
/ \/ o/ y2 e% ]# O! A
3 H& H/ a3 n6 e% o& W3 O) f8 G
1 c2 [( S/ y, J, ^8 n  s; N1 f2 {(K邻近法)
$ ~" w& C* L4 I( H( J- W' I7 X; U: ?" A
( v/ N/ W% o5 k6 @
四:谱聚类算法优缺点1 \& t6 N/ V( v. q
(1)优点, L9 c( }9 e& M- x  q
谱聚类只需要数据之间的相似度矩阵,所以对于稀疏数据的聚类很有效
4 F2 B; o7 U( E& F7 `8 M使用了降维,因此处理高纬数据聚类时复杂度要明显低于传统聚类算法
3 s4 \; n' s. h5 B& H% j: W' F谱聚类算法建立在谱图理论基础上,与传统聚类算法相比,它具有能在任意形状的样本空间上聚类且收敛于全局最优解
) D2 ~4 ?5 P. R/ V0 M& f(2)缺点+ r% X9 y4 X8 L1 \3 ~$ V- e  Z$ g8 t4 P. T
如果最终聚类的维度非常高,则由于降维的幅度不够,导致算法的运行速度和最后效果都不是很好- D2 I1 K# j" ?" ]- V
聚类效果依赖于相似度矩阵,所以不同的相似度矩阵得到的最终聚类效果大不同相同% b2 v; B" Q7 G2 ^- s" B2 ~
————————————————
7 u# y7 }( X( S版权声明:本文为CSDN博主「快乐江湖」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。. |% v7 [3 T, d
原文链接:https://blog.csdn.net/qq_39183034/article/details/126747494- w4 `- X! [, y0 v9 G2 Y
, n+ V6 Q! _+ e7 Q

7 V  ~; E3 h, G  X; c! R# z4 H




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