- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 564681 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174627
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
【数据聚类】第八章第二节:谱聚类算法之切图聚类、算法流程及其实现5 A! b7 O0 l% h* E
; O. Y- a4 b( [% b, ^8 m+ G本文部分内容源自刘建平博客,在此基础上进行总结拓展
, J) Q% K+ N, w. {% R: D2 |( q1 z' K3 R7 A ?% |
原文链接
, Z" j0 M5 n) {7 J文章目录" B( G3 z: Z. v5 t2 [7 n
一:谱聚类与图划分2 _9 x; y) M0 e4 n( O7 U, O
(1)比例割2 ~0 h0 r2 j1 s, H( M. o
(2)规范割(常用)' G8 {1 d! o- m9 W2 l
二:谱聚类算法流程' v$ z5 y' \& x( W9 U0 L }# x! R- g
三:Python实现* a% K) O" A3 a) R, U
四:谱聚类算法优缺点1 U( p1 ]$ }& L$ J; E
(1)优点% S+ e# q* J3 k Y
(2)缺点$ g/ s/ B! Y# Z
一:谱聚类与图划分: ~. K$ O, ]6 O- n. @& i
无向图切图:谱聚类算法根据数据点之间的相似度将数据点划分到不同簇中,因此将数据点映射到无向图之后,可以转化为图划分的问题。对于无向图G GG,切图的目标是将图G ( V , E ) G(V,E)G(V,E)切分成互相无连接k kk个子图,其中
% Y+ X; N6 F$ R# g2 ?) d, h( Z) I& F6 p
每个子图点的集合为{ A 1 , A 2 , . . . , A k } \{A_{1},A_{2},...,A_{k}\}{A
6 F" `& _" G' i1
4 M2 \2 b% v6 Q; I9 }9 Q# F, X* C5 f2 v1 h% l
,A & ?4 U* F; X9 o- V+ h
2+ y( Z1 {, ^1 C
( J h$ y+ Q+ q. b* p/ p8 Z ,...,A
r; E' c' k% x# A/ X8 ck" E9 @6 I( l6 o3 ?: u; {7 f3 X0 I$ Z5 h
9 b8 F9 L8 }9 J& z1 ~ },且满足A i ∩ A j = ∅ A_{i}\cap A_{j}=\emptyA
0 m) E( _7 ^ |# {% ~: |5 t7 g" gi
" Q; G9 h$ U; {* l: y, Y
) E8 H* F/ ]( Y6 \/ g7 H ∩A ' c7 B& G; D4 S, U/ G9 ^( D
j* D2 L7 o3 ^) f5 p9 I8 m8 y
* N6 v2 e0 Y# F9 C# y =∅、A 1 ∪ A 2 ∪ . . . ∪ A k = V A_{1}\cup A_{2}\cup ... \cup A_{k}=VA
( A& ?8 I4 V' ?) D6 B1
; M5 t/ u$ w" t- o" y" L- I
2 g) M& ?: n9 h ∪A
( U6 S5 v8 H/ A9 a2
" L0 [+ K: _6 Q9 _0 {6 h& V
3 x' r" e) Q9 `. N* c# ~ ∪...∪A
) U0 \1 P9 l1 W7 }( k9 Vk( j" \' {7 m; @
8 m8 E3 Q Y2 z; Y' ?2 y T =V) m3 S5 {7 |: X$ D
对于任意两个子图点的集合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)=
; k4 J7 E( U r3 H( [( C/ Hi∈A,j∈B( O# Q! |- Z T/ y7 S
∑/ `, |9 ^+ ~0 {6 ?( ~
, Y6 z6 J d5 } V; x5 q' y1 F0 _
w
. Z7 x v3 T3 F oij1 }/ ^4 x4 q! U: Q B$ C. }: g7 Z4 t: F
! K" ]8 e, N0 Q; {& ?
6 n( O" d2 c7 B& B" N2 Z/ D" y0 Q对于k kk个子图点的集合{ A 1 , A 2 , . . . , A k } \{A_{1},A_{2},...,A_{k}\}{A
) i, s, j& r2 S0 B+ U1
?* B9 Q0 q: `( T. ?, P
. H6 K- {- P$ d1 L( l, _0 N ,A . F) G+ d$ ^/ T) M7 y, @$ H6 D
21 j1 r$ A7 d v5 k h
4 T' I O9 M8 T& g+ o$ A. H ,...,A
8 m) m" e8 u7 p2 O$ Bk1 j: v$ l* |) e4 Y: Y
' ?0 n9 O- U4 @" D" M },定义切图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 9 _4 B: q0 R" ?( @- j
1; T# A( G5 F' B* w6 L$ H
7 J+ R/ ]8 Y' n3 X. E ,A
' m2 ]6 y9 u- \5 k) x1 p% C2. p: N7 D9 N+ Z) H" ]7 ^+ I
M. A2 _1 M& c1 s3 R2 F Y) C$ G6 d
,...,A
3 G! U' J: ~/ ^, Ak
8 _) \1 a0 K2 U1 r: O
- y$ p. m: A! k( [' i$ P )=
# A/ b/ `" E4 p9 t+ s, m" F( Z5 a2
$ k5 }4 c0 U# M4 e" C8 d1 g- }! D1: ]; X$ N" Z& ^
) R1 |; W5 w* Z' M1 l. @
! w1 ~% u" V( ii=12 b; _# I& v, p% k4 v
∑
. ?1 K2 F/ H5 f) Jk
% m# U' t. c( g5 }$ x, F+ f7 T& W. Y e( p5 U
W(A
9 H& G" M$ g" ]1 d" q8 y/ D5 X( Mi7 q# b3 s: n) ~7 y! b: f1 P
# J3 G, t) p# V- R' c7 s
, ( }& a9 e7 N2 E8 }$ u0 b T9 t
A
3 k [! B0 ?: L; A: _6 x. Rˉ4 Y8 M" m: g& j r- o% j5 C5 V
' m4 \$ z9 l) M+ N! {
i
( Z& H: \$ G# Q3 |
/ I) o9 [$ ?3 ^' z ) (其中A ˉ i \bar A_{i}
2 X, X7 z0 A" I8 aA
" E9 @3 t6 V6 I D+ T7 gˉ. m: E# e& b" R' g# R, G/ Z
! \/ z4 e E) r$ J9 [, M! Ji
1 b$ i, E8 ] ]# H. K; s! X9 @4 y+ O: d7 v% p! h
为A i A_{i}A 6 L. T0 h8 L( {: o9 h) {
i- J) H2 ^$ ]: N6 R7 t
, q6 M; t3 J0 {$ ?7 b# W 的补集)
( O# w( T6 C# n$ V* N% O可以看出,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
6 Z4 O% ^& z% B4 z10 f: v+ Y- J. X4 a: `
T7 j6 W: m* k: z0 e ,A 9 G, u7 @8 l) v2 A: \4 `
2" M. X" n! j& s8 I
" S s, k# K, x4 k' { ,...,A 5 D* d8 c& A* ]3 ?$ ^
k: r, `1 p$ p5 V) M0 R" N4 q6 P
- f7 v- F2 _# d9 ~3 ~" m )=
# D: }) X& Y. }5 ]: O2$ l2 U( E* u+ U$ y. I
18 d, t; [4 m" j5 _# [
+ J7 Z$ b% P' O; ^
' k! G+ B$ R$ W0 yi=1
( M0 F: ^7 t( M( r. m& j∑
* g. z) n/ N# J# _k" K" h1 i! Q; p a
3 h' s/ T% s( C& T* W' X6 k) B W(A ) V' Q( @) Z4 U L/ Q9 i0 y( v- _2 Z
i
4 ]! z. z. @' w2 P4 o, v4 I
* H! y% }" M( {' ?! d% Y" S ,
2 p! w9 Y4 y( V' n& V/ ~6 hA
* H3 ~# Y3 W8 p4 d- Jˉ
; y% P3 _' y- f8 Z- _2 x: Q0 z" {# u. H5 T, {8 v
i s X) r7 v0 E, _( u
; `% c+ S: P4 l) [4 ~% f
)在划分子图时并没有考虑每个子图中节点的个数。所以在某些情况下,最小化c u t ( A 1 , A 2 , . . . , A k ) cut(A_{1},A_{2},...,A_{k})cut(A
N1 K$ b# o% ~6 s' p" r" k19 c3 N# L: n) D$ E! f( L7 K
' w/ I- D8 i- }6 t* p# k, f
,A 0 X5 |. k j# n; C
2. O2 k! h; _9 H; m/ ?
, }2 u f: i7 J& F, b
,...,A
9 t+ I: h" [8 ?$ }; N. I( O# N) ok
1 W3 P' ]) f! W3 H% t
8 N4 `% u" l9 x- n2 o: R# c )可能会把一个数据点或是很少数据点看做一个子图,导致子图划分结果不平衡! }; e% y' a) I( D6 e
6 h7 P0 ~! U# x4 A3 \( S例如下图,选择一个权重最小的边缘的点,比如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
* M9 x+ V2 W, H- G1# @8 u2 p! u9 l" o+ N1 R
: d- B, o; S8 R8 Y0 o
,A
% C; b& P9 } ] a2 b# y26 \" @! V% U! n% _+ L3 O7 k: {+ H
) T# h* r1 a' ~0 S( v4 i
,...,A 3 \; r4 Y5 @) e9 u$ g! V, ~
k
. ~4 |, x; Z5 C3 Q+ c: }2 S9 P1 q
5 H3 n* u' f" v6 `2 g: T- [ )但是却不是最优的切图6 k. q$ j m$ u2 T6 b8 v. v u7 D
+ s7 L4 q2 M8 L5 E4 e
为了解决这个问题,会引入一些正则化方法。最常用的两种方法为比例割和规范割
6 o- Z G8 ~8 f3 m& U0 @* K2 }- c2 g/ E. g4 i2 U
比例割: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
8 B, u" l& s* n5 ?1
2 U: K7 g: c- H7 w
7 z/ a' U7 }6 I8 L( m1 G( o0 r ,A 0 e: i1 O& l& j( T8 y8 o( O
2
, j2 E W0 M+ i7 {) i. C
, Q* C6 B" b7 B, n3 a# a* i, W ,...,A 4 D+ I9 R6 b" n! g1 k
k
7 t+ z1 m9 k$ q" [: b s% F
+ x. a; L* B+ \ )= 9 N/ K& y8 E, ]+ z/ n
20 v1 b5 V8 n) p; v" Y2 ?( g2 ^9 L
1
! b, y; y/ D6 u# V$ _% I# \, u9 ^3 x7 u
" N. {2 x( d1 M" {- F @0 f+ Ri=1( t3 i3 u2 C3 N, ?
∑
" q! }7 Y: _, _! ^$ v- r4 b+ fk$ H$ M& h' p% n: A
9 q u( Y( g( B: U& U9 q5 q
6 x I6 L, y. r' T+ p6 Y# U
∣A
9 N$ _7 H. Y3 p4 j# |' ?$ m7 oi) |9 X7 B4 x; `1 ~8 M+ t5 P
/ N6 a" a( c3 ?7 \ ∣9 c. e- L* `3 b$ I7 x7 |8 r/ y" ?
W(A , s; f8 E" ?+ i' s% j
i
2 T# |* T3 }" f" Q7 t- T5 h7 v9 p# P% v6 ]
,
0 e0 q5 J/ ~) k4 c' XA( h: m% _1 m1 ^2 \* P
ˉ6 x! F1 f7 x! m( f. M6 V: [4 h
4 p- M8 R9 ^" ^/ i
i
9 [9 z, B" [9 s/ N# Y4 t6 I i' }9 i' M' H, G# ]' L
)/ V: H" G" M6 P; T% M6 i& `
2 C: s/ z. A4 {8 A
& t. q0 _9 b- }) r规范割: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 ; ^3 h4 J9 t/ Q% j% t8 o8 [/ X2 Z1 ^
1' e: T# f2 p( x" T8 | }( n0 B1 I
0 H: O: |5 k( ? ,A
0 C$ A3 T% E+ I6 m0 J" k: S6 ~2* w$ r* N: o; ~2 O! ]' D
4 F% M; O) b9 u
,...,A 1 d i8 c: H! X( e. g4 y
k! c9 p: D, {8 q: ?
M( [& E$ D- V- Y) t: K7 l& } )=
- D& }" e2 q+ o& K- `7 r2' {4 {+ _& H9 `; O. @' {: w
1
+ L- a- I/ x4 \" _; y; ` _- }! N _* f5 x( \. D
9 _! y2 p) ]3 R% G
i=1
8 `, F- m+ f/ C C# k∑
' a. ^7 N n, e- M5 g0 g5 G4 ck7 z3 T, w( P# h
& A7 Y' _2 J2 G0 W3 l! w
6 R/ S; q) c! g4 _) c y
vol(A
. D4 a* M' O; l- ui8 d2 W& F1 a2 Q; y
8 \& a3 C& \1 K; F )
6 Q5 N4 P7 J ]# p6 K) ^. ]W(A
. {. J$ c* i" B. }; p# k& yi
4 Z& w6 U* |6 K4 s
, J' I* d& u: r) A- m' [4 ? , 0 U3 N" X- d/ ^# T
A
2 v2 B; E* n7 k) [ˉ
* L1 B c+ G1 r2 w1 G2 N" t" Q7 l- a
i
2 x1 {0 ~! x! e% W; {
# g# n+ G! L. N! d @# O( m6 D )2 y8 \5 q; Y9 X8 R7 ? O( k# ?
4 @" r/ Z" C, B s6 L1 M, l
! R. S' a# u$ [& y! ^- J$ `, U
(1)比例割
1 {, T. n8 v! x+ |$ ]引入指示向量(点击可查看指示向量定义)h j ∈ { h 1 , h 2 , . . . , h k } h_{j}\in\{h_{1},h_{2},...,h_{k}\}h
" u( |2 B7 p" _" U- F( \j- z7 d" N3 ^) C+ R) A9 H# v+ T/ k
7 m, s! [4 A) l& x) \
∈{h : I! a; g# R9 C; a0 n/ _' l
14 [. G& x3 p, n
: |' U4 D( A) C F% ~ ]+ R ,h # ~ R- j0 y# G; B
28 K" U! J9 z. U" L7 ?9 V, D
" s+ G8 ^3 @. I) C% r ,...,h
5 U- p$ P& v" I5 Mk
9 E A7 z- |! ^9 e# |/ T
' U+ l C% n3 x ]3 x },j = 1 , 2 , . . . , k j=1,2,...,kj=1,2,...,k。对于任意一个向量h j h_{j}h 9 @0 R, L9 l/ E r1 s8 b- j7 a, w) w
j2 w/ w* w' [2 |4 ^
5 j) n" h$ g" ^+ n' I; d
,它是一个n nn维向量(n nn表示样本数),定义h i j h_{ij}h ) X: c2 X0 ~' |" e. T: f4 S
ij2 {/ B0 N% R& s
9 ^0 {0 Q' v& }2 l s! v. V3 P 如下
# v5 g: P/ |* Y( b
+ b/ S: n. P2 v3 i9 Nh i j = { 0 , v i ∉ A j ∣ A j ∣ , v i ∈ A j h_{ij}=
$ }0 l% M& S% n: ?/ F+ T{0,vi∉Aj|Aj|−−−√,vi∈Aj) Z: j' l9 r. J( ^7 Z1 d
{0,vi∉Aj|Aj|,vi∈Aj
- W2 a% i' S, X r6 Lh
! Z w+ o. r( m& eij
% P5 T- e' }' N) ?! F q" I' a6 f( A& A2 o
={ $ u) z) v4 _& ^2 c
0,v
8 ~+ V# I1 H, m5 b9 K& t9 Bi
% x1 S& A, i5 E" Q u
5 k; G+ A0 _% j( | ∈, `. p5 l, }9 i) B
/, E0 t) h: b8 [$ y
A 0 n& M6 [+ U5 h
j, z3 S9 p+ ^8 G9 i
( p. U) Y, f% i# ?3 t& z/ e+ j# ^4 I5 N0 g
∣A ; u. A( f* _# i/ P+ b
j, \8 f8 e& P: F0 F' S
! l+ o" [& A4 Z3 U! Z( u5 L: c% e- H" |
∣; z9 [' Z) U/ b F
& i4 H. ~' Z- S5 _% L, ? ,v 1 K y( x: ^" Y5 S7 K
i+ K. d7 u1 f c- T
( R4 J. k- p' F$ \( n/ z, A& x
∈A
/ H, ?+ O6 L1 Y/ b! S% h, ~& \j+ s# n! @" a, T- O% \; _ t, m% f
$ y6 Y8 X6 }1 L1 w6 C; j) {, U7 J$ P& X7 o
9 B0 z. C! c7 {( b: m& W$ l, W' X/ O. y# W- y$ \3 e9 \1 e0 S
2 r5 O1 y+ [6 [5 z. G- v
于是,对于h i T L h i h_{i}^{T}Lh_{i}h
- L- e, h" C& B- F% H. _7 Z$ a( U+ b8 wi
) E E# V1 W+ x8 Y6 g7 bT
( w, d. @) U1 p
3 d# E! V4 O+ R3 ?" B& K: v# Q Lh 9 r# I# m |- p2 u' e) a. `$ ]
i
1 H1 }# L* h5 [! T+ q; q% C7 d$ A. c- E8 H" @1 z
,根据拉普拉斯矩阵性质可知
& x* F2 _ P8 R2 p/ ~; z
$ ]: \" f( B. U' o( @对于任意向量f = ( f 1 , . . . , f n ) T ∈ R n f=(f_{1},...,f_{n})^{T} \in R^{n}f=(f
6 d6 y/ U; A* s1 l$ g1! M' k' M- F: _9 a, I
1 Z3 V6 X: I, n( i$ m: T ,...,f 4 I& Q4 k% ?8 z( L7 B
n
, W: i* B. c! J1 d# y
# h, n7 K3 T& B+ N ) + E) _2 B4 t A0 h/ _* w9 d
T
: t- }0 P& t3 Y1 ~. k* Q% R ∈R
5 B3 i4 J {9 H0 Wn" B% w1 B7 Q4 J; p6 Y. _- l
,有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
9 a6 J' s$ U1 _: D' rT! o' n- S. M( S! n; ]- d# g
Lf=
C/ i, c& ]$ Q. n$ g1 `9 k2* `- p# R& o4 `' X+ e' K
1
1 b& |: t% W7 V2 f& [! V+ O
5 U" H% b. [' b. p
, N" I- u* v8 [6 E- h6 ci,j=1% i0 ?3 }9 L0 Q
∑
) N& N8 B; x! kn4 q3 y8 K4 A" O$ F, v* A; V
7 |4 X7 B! U6 k9 y) N
w
5 W/ l$ A5 ?8 Y/ `* @ij) V7 A# I$ u; W6 A; ^" z6 [
& K* @, O( }) r8 C) \8 j (f $ [# H% _ s k) v9 E, |
i9 R4 s- {$ i5 }* o/ M2 |
7 l7 |# e, u# \1 U3 s
−f
+ E% ^) M2 _2 z- bj9 V: i# B! E! I6 j& d" b
( G9 m' o- K2 \2 M% K
) ) ^/ J4 h. Y/ v" k2 V
2& E7 `- E6 [ ^. i6 q$ f! |
9 L$ A' d, U/ [
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}|}7 B9 R$ ~, w# F' D# h& ?5 X# _; _
h + r) U1 T& u* N" r8 @& x1 O
i# _4 d% K# P, \# r) k
T- i0 H, `0 I) j7 `
) y [6 ]/ S' y- s; z
Lh # |% q' Y# G, D
i
0 I9 `* i6 w8 U" V" B
+ ]& I6 x$ m* j1 P. Z = 6 m1 S" f' }; _
2
) K+ ?5 f+ r! w4 c ?17 |& E3 E% ~, Z" j3 C2 I
V+ T. b: [7 T. }3 p y/ p
$ |. m" G3 J0 q; ~
m=1" ~5 B$ z+ n& l+ O6 ~4 X
∑& u; f% l5 d; {' V# A. }4 t
2 I0 ^* k9 {! |7 p; F' r
' E2 G! W1 h4 {5 i' B9 Yn=1+ \1 k: k! [6 u2 d5 }8 Q& c) [( s( E: R
∑4 {7 @' Z i! R( u1 n3 A
5 }, d4 N5 g- y" A2 h
w ' P, e& \. e/ d+ J$ ^( j( _
mn+ l; d# i, v( m0 h
1 g+ d5 a7 _9 S6 F- R9 o. o1 G (h & B: P/ J* @2 ~( S2 s1 M
im1 @# L+ S0 K# `
8 d' G9 i( d. M, D" @7 V −h
, @! p- \5 m k+ \2 D/ l* D4 bin4 H7 [& ^9 _' q9 B" c8 U) ]0 w, A
! k- p( I4 w' Q0 G' r7 w f7 Q1 J
)
5 C" h9 @: U9 M. y0 H8 E! i( O2
1 H8 b, ~( \1 V. Y = C) V. M1 i" v. z2 _- ]
∣A 1 M n, [7 U6 V' q9 U+ k
i
3 y& q# l: z1 I$ Q: r P0 S/ \) v
+ `8 W% I }* p9 I ∣; E* o/ L7 T" }3 A" F t
cut(A 4 m7 Q, f6 }& Q1 X' t0 u1 Y
i# W/ Y; [! T6 }' n }5 y$ o
2 ?0 b. E: X$ p( |+ o, n$ x6 V , _) Y$ Y% y7 e) B8 s% V3 p( E `8 \
A
9 g3 D5 ]( Y. ~ K3 Xˉ; H& x! Z8 B( c
+ W1 J8 |3 \( V) {+ ]i r) D' d4 c' @+ z" U6 v
, W# E: v W0 U3 ?. q2 G. ~" }
)
* P* ?4 ?4 X( f, [' @
& C! v* m. R$ w2 a3 a" ~: w
+ w4 ^& \0 p1 \/ c' |8 o" V$ ?' ?8 h4 s/ p% I4 h5 {
严格证明过程请看刘建平博客:链接
' X' x/ s1 n9 O: @" d S可以看到,对于某一个子图i ii,R a t i o n C u t RationCutRationCut就对应于h i T L h i h_{i}^{T}Lh_{i}h
# f" }0 w% W2 w9 S \i
% i! E$ j( g4 N+ k! G) {T2 c P( c6 ^ w" \5 l
5 A. H x) Q* k/ g9 y+ y+ J
Lh h5 B' Q+ i7 d, @0 a5 J. Q
i
: J, W8 l5 I# S4 T* ~5 Z2 p. e8 V3 U- A4 r/ ?
,那么对于k kk个子图
) e9 Q b6 N4 C6 C! Y
6 ~# y, l8 i- U) lR 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)
6 u6 T8 m8 u7 z5 M& b4 qRatioCut(A
5 c( b _; R: b* I+ P1
' G; }9 F* G4 H# v5 u4 Z! R; }' `: t5 q6 e) ]) X0 [% i& h7 ~2 ~
,A
Q8 e1 V' u; y& q3 r2, [% v% o. i B8 O
# `2 `7 P3 O# a: A$ K) w ,...,A 6 T- h0 |" v4 d, l- @
k
& @2 `+ Q8 z5 p5 @; g+ i
# q2 |/ Y) j8 t1 _: v( e )=
( k. K. O5 ?7 U; @5 R8 ui=1# V7 l4 r, G5 j* r. U' d4 m
∑4 m5 g2 V+ p# o4 i
k
% I. i: z/ W7 v# O5 C% m# E* E6 ]
h - c6 ~1 w: P. ^8 P
i
8 [' d, g2 A! F0 h# fT
3 ]5 v3 ]) C; B; A
8 P, ?& R V1 z& i Lh
; Q6 q. A6 ^1 M* d4 F9 Ti
) f8 l9 [7 N; \- ?0 g) ^! t9 o1 d! ^8 k! D/ \8 e. x. f
= ; U+ i6 C4 y2 Z9 J
i=1! E9 V6 x( x2 y7 w( T
∑
# s4 g, _- s% h6 C+ jk1 J `& g3 T* s% I
- r1 |1 p9 L* ~* | (H
$ |+ Y Y$ Y7 E- g) p; wT$ N# z8 |# {, B: _6 @) o
LH) 0 r" u7 d, ^+ T6 F
ii- J; b- v" X; ]; p0 y, ^
# `3 }, i" ~3 R0 y
=tr(H
( ^. r4 `2 Y9 G, b. E5 K* P7 T; `T
0 M( q8 `1 E) W, m$ w) c LH)
2 N6 A$ [% B5 W/ d& y7 K- z7 h. m3 T8 p% b# J4 K
因此,R a t i o n C u t RationCutRationCut切图本质就是最小化t r ( H T L H ) tr(H^{T}LH)tr(H
7 h: W4 ?; T3 LT" G* H5 H: Y+ P* w. L0 _3 c
LH)。又因为H T H = I H^{T}H=IH
' {7 ^# A0 ~, W3 W* T2 MT1 ?1 K" S% U' O# V
H=I(单位矩阵),则切图优化目标为
0 K* J) _. U8 B; \* d+ [! l1 D7 Q5 p, L/ r; e' l$ E! R
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=I1 K9 ^) E5 w, B+ p3 _$ C2 b
H
9 b R& d: ?; ~0 ^5 |- Margmin0 T) p8 i, s& n( y& L5 m
7 h0 |8 z& ^0 d3 T# z. N h: o
& g# O5 h6 b1 B/ }% d0 P/ n& e
! n, q1 Z. l: z8 ]- h" o. D2 R tr(H
) v! d& g! I+ r% p G4 rT
5 [" u: ~9 [( Z" C- x9 Q LH)s.t.H
. V j5 ^( a- {/ }T
9 Z, v. J! l1 ^& k H=I( Z: _4 _4 v& u# g/ K ^- S& i
" b. w% R! y' Z- A
对于优化目标t r ( H t L H ) tr(H^{t}LH)tr(H ! v7 ]6 A k" k2 k5 o- F" R/ V4 q
t8 [" g: @4 P- D( n. P' a
LH)中的每一个优化子目标h i T L h i h_{i}^{T}Lh_{i}h ( g/ a' Z& H3 r' w2 ]
i
1 y9 {& f% k# B, q( VT
) o: W$ V4 B0 l5 f' R% f- ]$ j0 R) H) I/ n8 l
Lh
3 {( Y8 p, y/ o/ ^+ L# y3 Yi
- d7 ?1 z3 K+ g/ n& p5 s9 h. Z& k+ s# d: z% ^' n7 h# A @! n
,其中的h hh是单位正交基,L LL为对称矩阵,所以此时h i T L h i h_{i}^{T}Lh_{i}h ( H/ C" X5 T9 h b
i; u8 {. B, P R1 J
T% [7 K7 N8 v5 k5 E
) c B* e) E9 J( M5 { Lh ( `$ d- O; D. m! ?/ ] l A
i
6 F( _2 y0 R' u0 m- v
+ y6 o& z2 V5 O 的最大值即为L LL的最大特征值、最小值即为L LL的最小特征值。而在谱聚类中,我们的目标就是要找到目标的最小特征值,得到对应特征值向量,此时切图效果最佳。所以对于h i T L h i h_{i}^{T}Lh_{i}h
/ t% g% w1 e# ~" r; M. t W: Gi4 r; R6 S1 s" Q2 B# q: ]
T9 e, l1 d. l: F5 w, S+ r9 L! d
- u. C3 b6 j; v* i0 Y1 q8 B2 s8 w Lh 8 X* A/ X, w+ X
i7 a1 \# C. w" s6 ~- X! U1 G
7 ]2 `' v, n* W- y
,目标就是找到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
% F3 V: K# p' Y4 i) o* _ vt) k4 ^# z/ i. i' c
LH)=
/ v I8 j# Y0 gi=1, A+ l/ a" W7 F% L, I
∑
5 V1 t( @+ k- G( D+ E& ]' Hk
5 x$ Z1 C, h6 `# u" m) Z
6 D, V$ Z0 p& v h
; l$ k1 e [$ w) W0 e$ T' _& qi; ^( h( u3 d) P7 j1 @. m1 }
T, D: }3 B3 q3 x
& C2 D" P$ I7 e! a+ ^: E' o4 K" f
Lh 8 V' g0 [0 X; h, J( S
i
8 |2 y+ |- k" H; L/ F4 X
3 {, v, |+ y V8 }0 L2 \ ,则目标就是要找到k kk个最小的特征值7 t; H# S2 d: A6 R% e1 [/ }7 d7 {
, t* i# l) v# B$ h
因此,通过找到L LL的最小的k kk个特征值,可以得到对应的k kk个特征向量,这k kk特特征向量组成一个n nn×k kk维矩阵,也即H HH。一般需要对矩阵H HH按行做标准化,如下& `; D2 C ?, t. E
! Z! V, T: ?1 a" z9 U. C- _
一般来说,k kk远小于n nn,也就说进行了降维, r3 \; `$ ]1 z4 s& b4 Y" q
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}}}: B' q0 `3 Z+ G \
h
W$ T$ v" U/ x$ u7 ]( q5 sij! ~: B. G8 I$ L$ m
∗. T& E [1 w7 t. ~
) F/ b, i7 G& g' ^, D k% V1 Q/ Y+ i& u =
5 f, _( C: R8 C9 p9 o* U( / z& ] R$ u) p5 _$ Z0 l$ j( Q
t=1
6 d) E" t& f, Q2 Q, c∑7 L7 h0 D; h, ]: m/ s* r6 O, g0 C f
k/ ]* n' y8 l+ n6 T( |" g
: |( N. M; B6 w2 I. Y% x# p3 ^
h
7 u: H1 X4 H3 c! tit
/ N4 |) O, S" K- M& ?6 v- W0 X: f9 R26 v: U B% S) C0 g
$ L% x c, `) h: J3 L# N0 ]& H# z )
0 ?7 b" H' e! D( ]7 _. b' b4 Z2$ C% H! o$ Q# [' z" V4 l3 {9 s
1" O3 Z; W6 B" N" {1 w0 e: q8 V
, k8 O# q( K7 r9 h: `
1 Q3 z3 _5 y8 e2 C5 Y
6 {3 O9 _8 S6 H) g& T0 T6 B
h ( o5 {3 n d7 L3 ] N/ T6 y5 U1 E4 E
ij1 m' A3 |' F. ?7 P: [
6 l3 s; G+ p3 ~( T$ p( J
0 |9 G5 d6 k9 i6 z+ w& b) x; J) T
2 x. |, T# \3 R
2 \. H6 v( E7 m% ^" P& O
; V, Y9 }4 v* _( b这里需要注意,降维后导致得到的指示向量h hh对应的H HH现在并不能完全指示各样本的归属,因此一般在得到n × k n×kn×k维的矩阵H HH后还需要对每一行进行一次传统的聚类,比如使用K-Means聚类
! P8 k* Y$ X: `
; W$ L2 ]3 N9 @5 y a7 b(2)规范割(常用)4 A' L) q2 L- ]. ]6 `7 w+ ^! r
规范割和比例割类似,只是把比例割的分母∣ A i ∣ |A_{i}|∣A ) c- B, r. N3 G i6 ^
i
1 m) B! p8 G3 ^6 j" ^$ o7 {. K
∣换成了v o l ( A i ) vol(A_{i})vol(A . G3 I4 p0 y( l o4 _% @
i
9 V7 e- Z) e# d8 W; z$ L" r6 b7 n9 w
, M4 L4 g3 u; c# E5 e ),定义指示向量h i j h_{ij}h
5 Z7 C$ n" T1 [# m8 ^8 aij
% M: C+ ^3 ?4 k- J" Q. E% ]6 n% i+ {: Z( z- x
如下3 n" _7 ?! D' F% p' D9 s. g: T
& T5 _' C" T. D" `5 G( Z' Rh i j = { 0 , v i ∉ A j v o l ( A i ) , v i ∈ A j h_{ij}=' h7 S3 J& ]/ b3 ]' ^6 D; W
{0,vi∉Ajvol(Ai)−−−−−−√,vi∈Aj2 X6 `7 A" g* e0 f. v% i) {: [# j
{0,vi∉Ajvol(Ai),vi∈Aj! u$ d8 H+ t; q' {
h
) f. e% j: U+ \ij; S4 G* J9 b$ U) V
7 I% a- r4 x8 H: @: {
={ + ^" ~) }. v1 @$ f u
0,v + @# u C7 g# Z& u+ E* `! h0 G
i: z% |$ V" _+ g% T3 F5 c, ?
. B6 d" g3 ]) Z2 `( L5 D0 C- z8 G ∈
/ S6 K& N4 X& @5 {% t1 E/
$ u4 T, F: b& P3 u5 B1 R# U0 |A ; Z; H( D, Y- C5 X& G' e/ V
j0 b, {% Z6 b8 j( \9 H6 f& E# `0 p
1 q% @1 h1 ], C8 e8 W
! v0 X$ D2 n& U5 D# x f4 H( cvol(A
3 u4 g$ D, L4 a( n7 b* A( |6 oi/ x$ n2 h, o+ V( O; U6 P
, a( S, G4 p: G4 `' H4 M6 K2 D4 q )0 G* a3 N9 G2 i4 I/ Y$ L' Y% u, q
1 v8 |- [' o% m* P" g ,v 4 I$ K8 ]+ U& K0 E! y1 K
i
+ q/ J4 W' G f5 `; C! J* p
e7 m/ w* O$ W5 i9 ^ ∈A 4 P$ O0 `" o! `3 Q1 Y
j
, t0 a: P& [8 x, G4 S& ]2 G u- Y9 {7 i
: g8 M6 C+ U) q. U& `( F( i/ V {- X/ O, K+ ]6 x# Q
* f( }+ m1 v0 p/ V
5 i1 j; h9 v$ s I$ f9 t于是,对于h i T L h i h_{i}^{T}Lh_{i}h
9 L1 I0 C% t$ V# [) a7 A& {i
3 I8 A5 I( @ b! ?$ C N; RT8 R/ t- K8 P# m
* w; Y3 n. u+ u, f. M( F( Y! H
Lh
2 H) C7 o6 i |* Gi
* g( H5 v8 H. `$ f
- i& V- D+ ]/ X* T% \# M ,根据拉普拉斯矩阵性质可知) y' ]* r. H6 K, s4 S+ k( ]: s- i2 ], M
5 b& ?! U4 m6 g: X2 R" g B
对于任意向量f = ( f 1 , . . . , f n ) T ∈ R n f=(f_{1},...,f_{n})^{T} \in R^{n}f=(f . q: ?) z: U; B/ E
16 C8 g' v& {& Q% W
U- l1 p# U5 B1 ?# c- p* _8 } ,...,f
& b& c# V+ ~* h4 Un
! g0 J$ F( B, g. H
! M% w3 e! R) q8 b4 W ) 1 [- Z9 x9 s Q' B5 K" I" c
T
' E! l5 a3 D7 [+ W5 b- Q* _ ∈R
$ _& ~9 l8 }; K9 Z% n4 J- x3 e2 rn' @; T4 T G' w( H
,有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 1 w `5 K5 Q8 s+ f" d2 G
T% o2 v9 i3 H! W3 ]. F3 M
Lf=
+ @' D1 I7 U9 Q0 ~2; W, L3 w) q: P! n
1* e; R$ F. ?/ }$ ]8 v4 n, l& I
/ e0 d ^3 C: Y) r; {/ c4 }
) u' [, ]: J, x
i,j=1
4 ]9 {) h! A# R∑) X, U! I! ^+ V4 W% }" [9 e3 ^; X
n# _ s. A& s: ?( W+ V# ?' v* t& l
" c; p6 C2 Q4 G* l1 Y% Y, \) J w 3 r+ {& Z$ [, e: {/ S3 S- f
ij. W, f6 r; j- u" f
1 N& w# d& s; z) Y. ? (f
- `( D7 ~2 c# \/ A L& x- Ki/ x1 J4 W; ~( S% m& g( J; g" H, o
0 R+ m& D7 G& [8 k
−f
2 y+ Q; M+ I% ^! x; {/ Vj
/ k6 \# b) w) g( I i- e
& K- T& z; Q, I8 |5 R7 z ) / w3 v2 L- r0 W3 j# Q" K( N: D6 K
2
% \( \. x6 r; q: B, S; M
2 E, l# M l& B2 l6 n0 `) \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})}) G( x, Q. B, I) v$ \0 x
h
! `, ]/ d3 w e2 Pi
% x* v. s. ]5 MT, m2 x. u/ H; i, k6 O$ @
1 o- J/ N$ r5 y( p1 [
Lh
% ~ ? u( E0 u; X/ J! Fi
2 g0 @% B- S0 ~) V9 r" l- u* r
) A1 @2 K( i. W9 j0 r =
/ ?/ f" O) e% F- @9 G20 z- t l$ D3 m& i
1
* {7 N9 p5 G4 h' J ]! e$ a/ d0 ?' n% Z( g' r
4 l |* k4 e! tm=12 `3 d; x" V. j
∑3 }- n& v" m$ p4 K6 Y) m4 B1 J$ e
$ o, h. S% h. s V
; `/ ?- N4 d, ?9 Ln=1
( i' ~4 E# W8 ~: ?∑, n0 ^$ N {" A0 C1 f% U {2 n
^) K9 l' C4 T
w
/ M+ @- D- T2 r7 w; V# \$ Cmn# g' q) _0 g6 ^7 S, c) Q
! y; e$ w" F! _$ e (h
* v( ^* A( e8 G1 O* tim _8 |! _) B' z( E5 l- Z2 `$ s
7 b Y. d! j6 U0 f. V9 g0 T −h ; S, _2 d- E7 v- z2 ^
in
3 ?9 s- ?! i, V7 `6 c( x
$ c, E9 S; |( T) n8 w* N8 k* W )
% L& m6 a/ o6 s: l# q8 {2% G' }: e1 V+ J& Q
=
& F! [' w7 F1 H7 U/ l! z, Bvol(A ! B" d1 O1 h. y
i, u+ u7 ^8 W7 x# O0 E2 s
3 b3 B# F. ^4 ~& ~4 \# u0 f )
/ L7 g/ L& v/ I; J7 } W. O2 P& ]cut(A % V5 K# r. r' V5 Y5 t5 P' U5 G
i
5 k/ f& R4 f, z; [
* q+ v3 r6 C) u , 0 W5 T8 D+ F4 r3 ~: C1 }+ d
A' l" C$ _% z" r2 D( ~& C
ˉ
! J1 i" W$ W3 u" X, Z$ i
+ S3 K" C. A- `" c9 b) r. u9 B1 r: Xi
* \ V$ c2 S" }8 E! t9 Q Y
* V4 B2 p' S- Y3 L& Q )9 Y: c( }9 z9 P! I: K. t
# r' n8 m2 T" v( ^5 K; D
, p3 B: O, p0 X) |, c
. @1 {& E4 Z- S严格证明过程请看刘建平博客:链接
" K$ ^- A! R: @2 m, {# A, ]( [" G可以看到,对于某一个子图i ii,R a t i o n C u t RationCutRationCut就对应于h i T L h i h_{i}^{T}Lh_{i}h 9 }) o7 g1 M6 R, E9 J8 L' T* r4 {
i
* D. _" B/ E" h9 r" FT5 _+ {6 d* q* O7 T# A
/ H* a/ f" a3 E
Lh 2 C( F4 Y/ p3 c8 M1 s2 X: `
i
3 z' e/ x7 ^' D0 L. U3 j; ^# L
# M* N. c. C6 o* _6 ?$ c ,那么对于k kk个子图
" {7 X( ~ I; l# i( u+ Y9 A* A3 z# ?0 D% @& I; ?; ]. s
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)1 d% k2 ^$ t w5 h6 w4 l
NCut(A & X" T& U/ O+ b4 c
1
r' w1 a ^) ~* Z. h; c
# p- l( Z& u6 a6 h ,A 2 ?. T2 j2 o% j: S5 @# g& J! M
2
+ o; Q8 g f% t; J$ J2 a) H! K
,...,A : C; ]6 o0 e* j( m$ |
k
9 y% P" ~' X) s4 D# a& a! F
' ^' z$ ~7 v# H& s; G5 U5 U )= ( X5 Q- I+ w6 l7 @/ V2 \
i=1, y9 s$ ^# l/ j7 l; I* n
∑
7 p* [2 f$ G; S) ^k& F: G$ S* F1 d5 |
( M* k3 {" n5 s0 d# z- Q2 }
h
6 \( \3 E0 Y2 \- ]i2 w7 O9 g5 N4 x Q0 @3 _ y4 n
T4 f. o/ U4 d. v
! j: w& p# M5 O
Lh : U0 v9 O0 T P7 N/ B9 J( T
i* i+ p+ R; S/ |$ T) K
6 W4 X/ f4 r; E% n) W- B = % z/ O% b, M6 g; H
i=1" Y- \" K2 f; E' h( {
∑( Q% j: Y/ M2 v6 B6 k5 B
k
/ T. T* ]* b# z' {
+ M, D K* s' I; M# G (H " e$ z+ b, x# P! K" |
T
% ^" N" k; W3 I0 I& U5 h2 e7 G LH) , a% x' z1 L3 u& w+ i6 o
ii% ]0 s2 p; f1 v& M+ m8 ^/ U
' C. v5 j/ D9 Q
=tr(H [4 ?; l8 v& I: J
T! S5 b, H7 i+ e2 t7 }+ ^( M7 D6 J' ~1 Y
LH)
0 s# ?9 Z' S3 Q4 \9 B( X
; Z) h- H, d7 d P M但此时H T H ≠ I H^{T}H \not=IH
9 }0 O% q% _/ E {T3 a' P/ t+ A* {% M p/ n( ^
H
. I4 A- z3 d F# B0 N8 w* F" B
% R) S. ^( K! d9 y( X8 t6 f=I,而是H T D H = I H^{T}DH =IH ' A4 ^. {+ d3 M! T6 n
T
& a& x0 W" e/ f- K: M, g9 P DH=I9 V# G @5 e v2 p8 E) m5 W3 N4 R5 X
0 k3 A& ]+ y" b* ~1 E3 e. }
这是因为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 ! l/ h6 j/ g ^0 |4 \( E8 Q5 Q
i1 u; Q+ ]9 ]/ w- [& _ G
T
N( F2 m$ A) H# _5 Z: k. k2 `6 l0 n- y3 {1 X% L0 i& Z1 {
Dh # B* C+ [' Q/ ~
i4 [+ d1 d$ p: [* C9 d$ O& [
0 n/ w5 {4 d7 ]+ j% n2 g) X
= ' Z9 o, X( w. y/ C. N
j=1
1 v$ ^: M4 N' O7 W: \∑% g1 K" T9 A- m' A2 z7 P
n- ?* v: J; d7 \4 [9 g; X' d
, }7 j: A1 J* C6 Q/ b h 3 |3 P! v9 X$ i% M0 |
ij2 Q/ B5 z# x, f% |# L/ N" ]4 |
28 `, G& e: ~7 y1 ~) {$ B/ z' j
, v9 h1 _+ |$ {1 Q
d
: Y6 `" A7 x5 s# ^8 Nj+ [$ c5 l9 t: X- M+ ^* W
7 J% ]" R8 {: W2 l
= / Z, }/ g E( @% z
vol(A 9 n f& |+ V# e/ A7 c$ R9 K' h
i
0 G1 g. i& r( c9 s1 |( ~! I
! t) K7 ^ k F f. _$ F )1 V, c% [6 b/ l" V: ^; b
1; Y* M* u" V8 O3 ^
* M0 h" j* l- y8 a& S
; j1 `: {0 t. G( Z; S" x# Sj∈A
m$ u5 { f4 Z$ c5 j' di) ^: j) ~0 @2 l C# e7 V# w
; N8 T+ ?0 p2 u+ E2 l* l) D
1 u: T" [ ~& s" F- t9 q. |∑: m: q+ E3 U- Z3 J
6 b! L& j0 p5 F! [) \: r8 a
d $ J2 i+ S9 {3 I5 N( ?
j! `$ i" f+ J1 W/ E W4 w) k
2 \6 p) i" @' _) u' x0 \ = * S5 j, D% M0 @3 Y
vol(A
, Q7 u- p+ X" L+ a2 U8 R: y+ _4 ~i9 j: w% `0 t7 b' w" i$ ~0 P! m
4 A# E; {, n+ Y u3 C$ l }
)- T9 V% u5 J5 X! T
1/ u: q& Q3 A# c% ~; F+ G
! y0 P) s1 l( \- { R- B vol(A . P3 F: |' t7 q# t. s
i
J2 r$ v' D, A* ^0 C& P! Z1 s. `
)=1- K: ~) O# G5 e9 f9 O) c; {. S
因此,此时切图优化目标为
- ]9 K; P! e, g" M: L# B
0 C# A! e# {+ @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
! l# }+ a7 Z9 \$ X7 W% IH9 e$ F+ X# P) O
argmin5 {: o( d+ \( e2 S R1 U
' x" D7 A7 g9 f- q' V6 l
6 ]6 h% Z1 C& X9 A' W7 ]" O% n/ D
' p; t; I6 p% m! y; b' K5 f3 |- @
tr(H 4 j& t- B6 h {" s5 {3 l
T
7 i1 F( `3 {8 u: a% E# T/ ^- O LH)s.t.H
7 T- d) a4 V" I1 }T! G, q" S4 A- n
DH=I; G& f8 a; k3 y, t0 v
8 p/ h/ s. `# |8 W8 H `* I
但是现在矩阵H HH中的指示向量h hh并不是标准正交基,所以需要对H HH做一定转换。令H = D − 1 2 F H=D^{-\frac{1}{2}}FH=D $ V, m/ j! ~4 _, X
−
8 `/ J: v! K0 D N+ z2
+ | K! m, r! ?5 i5 E' L/ Q5 |17 R8 P& P6 M2 g+ H
: z0 R' `$ T) h5 A
( F( I+ i- k5 k! 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 n& h5 R# X2 r- b
T
v0 n8 Q) {, Q& V$ d7 i0 r LH=F - X* S6 {* H, K0 p
T
5 `% i9 O* c" W0 G* Q& G D & ?; Y6 h1 F" ~9 ^) ]
− 1 `; e) G% E2 c/ w8 R! ]
2
# S- C: _% x% J) H; V/ k3 J" v5 P( t1
2 u8 a8 Y* Z% n; `$ a8 E8 b& ]
, B6 ]: b; G7 L3 Q% T& K) ]3 f2 U, {+ M3 c( _3 k4 }
LD / [9 Q/ N* w( L& L# _: ?, ?- d
−
( W5 s& {. s$ W! y8 N Q0 d' P2
g2 D2 P0 a) g7 Q }) N1
) C* @3 V* m) ?* F' E6 t) E# t2 {
% r6 E7 c6 e0 i8 o' D( l6 p/ C3 u- j
F、H T D H = F T F = I H^{T}DH=F^{T}F=IH
: p+ A, E8 E* L9 }* wT
3 l/ [' J+ T* K% c; p- j7 V DH=F
: x3 ?7 {9 V1 _: q6 _T
7 ^% l2 y- ]2 r! E, n. n/ S F=I,于是优化目标变更为
5 R2 t; g7 A" P4 G7 g; t! Ia 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
+ @6 Y6 h# o& v) s5 l0 fF
. C) {* @9 t9 H. U$ J+ U7 I3 D2 ~argmin
* A$ J9 j/ ?3 I$ r6 I+ q! F6 r2 o0 k- A- {9 \ w
7 _- n2 L( W: m# j5 C+ [: n# w& V4 h+ U' k# {2 H
tr(F : v; i8 ]" o. ?( \2 v3 K$ s
T. b1 Q* N# S+ A0 Y$ _
D 5 F; t# o6 O# @! V: z
−
& h, w$ h, K0 Q% R2/ ]3 R" I2 R4 A8 B( G3 i8 K
1
, S+ D, Y1 O, T: C7 T" k _' p3 g) T: W' e% ]0 d* s' s5 X( a: @
* r2 C2 A1 o6 ], u6 z& y/ T8 I LD
Y$ `( o+ z* n7 O2 B4 R−
0 G3 l# ]! I2 G5 i7 C1 b1 B' w1 R4 z- U29 n' q5 S# ]; b) D7 o( P. H
1
( ~, q+ t3 p! r* H
e1 K" m- s E8 _% X$ K! D& {+ C; I
, f% G8 {# L! \ M4 } F)s.t.F
2 \6 j& n! e6 |: I) O5 m; \T
8 F/ `$ Y- R k# }# A i3 k" z F=I% R8 D# e( l/ j+ ]9 u+ Z5 X
/ F8 @5 _( e& y* v" I1 l
现在,和比例割一样,通过找到D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D ! S' V" X' X6 w' P
−
4 h# }" @' R3 @9 [% m2
% u; z. k* M+ G( h+ e0 r" ]( ?1
6 A" y; h/ c) \ m# K) J, {, q/ M* b S
1 M+ k5 T5 e. u LD
3 _$ X' U# c7 ^4 M/ v− , Z$ p. X. J1 ` c9 B# }
2/ ]% @% o) U; T. R8 e8 s
1
9 G d6 g0 E; }7 p& x
/ W/ i I) }( M V1 M R* A0 \
% w! n5 `& K9 \" x1 u7 ?* C" p (就是之前的L LL)的最小的k kk个特征值,可以得到对应的k kk个特征向量,这k kk特征向量组成一个n nn×k kk维矩阵,也即F FF,最后对F FF进行传统聚类
7 z' y w T3 b4 A: B0 T, U' o+ p0 v
一般来说,D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D " f7 \% a$ f1 v( g
−
8 g+ l2 S$ u% w. @2
D; V( H6 E, @0 X' w) k11 Q! q4 {* E6 w
( Q- e1 ^6 m e+ L# a5 a
8 t& i5 a& R5 U, W; d: h2 Z LD 3 T; l S3 g+ d3 Z' b
− # j& V2 W4 J u' c" D
2
s/ A2 ^% j8 L+ K; w" A7 Y% o1
# w8 \+ r5 [! X$ e( @
4 e4 M( I. ?3 m1 p; X/ Q# o( X# e' U% B0 S8 d9 B8 X3 V3 f
相当于对L LL做了一次标准化,也即L i j d i ∗ d j \frac{L_{ij}}{\sqrt{d_{i}*d_{j}}}
7 o4 w2 A R$ Fd
, g9 U0 b8 ~+ {1 s/ u% q5 p& b5 Fi# b9 x; n Q4 C) s1 f B }
5 V* @4 u9 T2 ~3 S% F, S ∗d 2 q# ]1 T3 w) e0 n& `- j! u
j
5 o+ a. P- [0 U* Z: b
3 l' x) G) H+ x- N( G, N# E/ m0 q8 \* X9 L; s
x3 _& n( P4 Z6 C) m$ ^7 k
& ?8 F8 P+ G5 g. S8 J, jL ) ^, R; t: P) C* l0 z2 z2 S, v
ij
2 G; q0 s4 I- _7 P
& I5 G, Y- S; _9 W/ p4 z$ J# c+ t7 t, H
' I0 G/ A8 e5 J6 I/ }, h9 D: X/ Z) Z a. b
二:谱聚类算法流程
) `$ J+ N' p$ S. c9 y给定数据集D = { x 1 , x 2 , . . . , x n } D=\{x_{1}, x_{2}, ... , x_{n}\}D={x
5 U* Y, t$ L8 H, v1
6 o- I, X6 m& r' b1 E% @) y1 G0 j. G; ?* ^6 t- y% H! B& g+ a7 A
,x
9 U; F9 C) y# `- w# S2, S! i: N4 k F+ f! |9 K
+ U% b) |) H; c( D. g& W ,...,x * H% c1 m3 ~' q
n! ?( ~. q3 C1 s. ^9 }( b
2 e; q/ D/ B- {$ E9 `# S( T/ x
}
1 o- P( U- _1 b, o+ M9 a2 S) O
" c! V4 C2 a3 J" b2 x根据输入的相似矩阵生成方式(一般为高斯核函数)构建相似矩阵S SS(AffinityMatrix)
# \. G* X" T' p2 l( D9 l根据相似矩阵S SS构建邻接矩阵W WW,再构建度矩阵D DD
" _) \8 w# G' z! d计算拉普拉斯矩阵L = D − W L=D-WL=D−W
' a3 k9 v9 Q. V9 Z5 }( c得到标准化后的拉普拉斯矩阵D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D
5 O# X' V! k6 n, q* f− * }8 z! @8 ?9 x! o: R/ Z1 I( C
2
# Z, f/ K, f6 @/ T, Z1
' P( c" R; a# E2 p$ [5 X
, k* R+ w7 A W% J- v& c9 y( ~ J9 n- I9 L6 Y
LD
8 `. _# C+ h+ U4 C" X3 X8 {9 T4 [− " h0 O( I5 Y2 R
2
* J- s v( S6 |1, m9 y3 r) W& N& b) k
2 N9 r+ N% w, Y( Y; V2 c, o+ X# s8 D
8 }2 S9 b! o, O/ _7 u% ^
+ N0 W- d- }! q+ i2 C计算D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D
% b3 f' j% x! W−
0 G$ _) W7 O) J: Q" X3 j( Q2
% P4 k# [) F3 i: b! ]# ]& D1
% p, e- T6 s- l/ `9 u/ _
* @4 r/ w$ r# R$ Z5 h( P% N& N' n! b: c4 }
LD ' B; A7 N! L% t. m0 Y+ v& J" Q
− * M4 C. X/ V! g7 a6 w0 k# A
2! w) }8 ^. ]5 {$ I- G
1
+ w7 d* M5 d. E6 W3 ]" c7 F# k" y; m# ^& p
# p' x* Q6 n" w- z: Y
最小的k kk个特征值对应的特征向量f ff
5 Q3 [8 {6 |6 X8 Y2 V0 U( G将特征向量f ff组成矩阵并按行标准化,最终组成n nn×k kk维的特征矩阵F FF
! y: G* ^: Y9 |, j0 p. y3 b8 t/ tF FF中每一行作为一个k kk维的样本,共n nn个样本,采用某种聚类方法进行聚类,假设聚类维数为k 、 k^{、}k * x$ F% \8 G' z7 v
、. K1 e7 K d- d
$ c8 u' X8 R, C( D5 i得到簇划分C( c 1 , c 2 , . . . , c k 、 ) (c_{1}, c_{2}, ... , c_{k^{、}})(c ; j- U9 l2 o8 E U+ ]4 r
1# Z* l% T+ N9 P! O( L* d8 N
4 ~+ o& Y9 B5 i# g6 W2 W4 y c) O
,c 7 v7 n* J/ ~% U5 a3 N5 W. c6 r+ |, e
24 r- P( c4 s: p# u) ^% n: R& Z6 _7 ~
( x; j5 w" f( h1 r2 z% G; R
,...,c 1 O" Q3 S0 H3 L, L0 j2 w8 u
k 2 u/ A3 @3 l/ [7 f
、! K2 ^& m) _$ V6 ]# A9 m* o7 e
) A/ W/ m# {) b
& V7 Y% q7 U F P6 e )
% U F1 f! W( C8 q三:Python实现3 M, q1 u& \% M9 G3 K
import matplotlib.pyplot as plt
( T/ }* U* A m: {# Eimport numpy as np T, \+ z$ f6 q2 l
import pandas as pd
& A- T8 |+ ^' Bfrom sklearn.cluster import KMeans
9 y9 I5 ?5 i7 |. J- u, N3 L8 hfrom sklearn.metrics.pairwise import rbf_kernel
. q+ U* y. M7 i: Nfrom sklearn.datasets import make_blobs& K+ N0 e# V6 v
from sklearn.preprocessing import normalize
4 ^8 R1 F/ \5 x: i7 y& W8 K* c
6 U; Y( D0 \# |: pdef get_affinity_matrix(data_set):
1 n$ Q4 D: W& b! B2 O # 利用高斯核函数计算相似矩阵(全连接)
* l9 m, x$ q2 h3 U rbf = rbf_kernel(data_set) Z# \& U# }2 L8 ~( ]. }
for i in range(len(rbf)):
, e, b) D8 b- k/ T/ K5 w7 w- r rbf[i, i] = 0/ U. \% {/ @0 _
return rbf
/ e5 y5 U, P/ r
0 }9 p1 f$ e% L% b, ]
" J% T9 J' h `7 [def distance(x1, x2):6 a& s1 H3 [8 f
"""9 O% e1 n6 F7 a; @
获得两个样本点之间的距离, B2 l8 a5 S7 ?% Z, x
:param x1: 样本点1
8 L2 c: W2 v# e* E' L3 u/ z :param x2: 样本点2
' i, j( L$ j, K3 g" {: E9 D! i :return:
0 F7 C, _6 t+ d: o0 v/ ] """
; k6 u& x: j6 z' s* H dist = np.sqrt(np.power(x1-x2,2).sum())5 b" k3 G! J; v/ r1 P7 b
return dist+ o( ?# H* o$ M- v, o5 s/ V
: x$ d5 Q% @3 _* Bdef get_dist_matrix(data):
$ X _9 I1 O4 }! v5 N. E# l) X* W """
& G. L4 ^% R6 A 获取距离矩阵
# A( _9 t9 M% X& y# M :param data: 样本集合
7 p1 W# B$ D0 E0 e9 `' @& ? :return: 距离矩阵
: f* M$ r! i1 X2 y """/ ?( C2 T8 a6 Q: l2 F) _1 M) |
n = len(data) #样本总数8 L; r. A6 [9 f
dist_matrix = np.zeros((n, n)) # 初始化邻接矩阵为n×n的全0矩阵, }2 @" k3 m1 o
for i in range(n):
+ Z" R1 X7 o2 J6 M8 z0 ^% Q for j in range(i+1, n):; }/ I. d" f5 P$ J
dist_matrix[j] = dist_matrix[j] = distance(data, data[j])! q* W- P: y: E2 \9 \
return dist_matrix
1 F# ^6 e" x) T" G* A6 J$ ?: G. G: b& r7 B8 Q5 y, [: N# s& s8 \, c
def get_W(data, k):, O' r8 t! q+ Z1 f! M
# 获取邻接矩阵(K邻近法)
; u$ ?3 \$ f8 N# o3 l; J: a n = len(data)1 k1 u" v$ Y$ U8 N
dist_matrix = get_dist_matrix(data)4 g: t' o7 M9 B+ L
W = np.zeros((n, n))
8 @1 M( N1 o) V9 k4 Q3 d for idx, item in enumerate(dist_matrix): z/ Y. A9 {. }" i# _; k, d
idx_array = np.argsort(item) # 每一行距离列表进行排序,得到对应的索引列表
! T. H$ I* e" N/ L8 l8 ^ W[idx][idx_array[1:k+1]] = 1
@3 I1 I v( Z# x+ O$ e9 h" E- B transpW =np.transpose(W)' E: x. C9 r/ z( }3 F) y* Z) b" |
return (W+transpW)/20 W# ^& D2 u E! p7 g& x: s
& o* ` l/ z6 ]% Y7 |def spectral_clustering(data_set, k):* h! _$ r. c0 J) t0 G7 J8 U7 T
# 利用相似矩阵S得到邻接矩阵W4 s) u) D, G7 J8 Z! ?2 U
W = get_affinity_matrix(data_set) #高斯核函数(全连接法)- N( y; G2 m) G& A/ E: \# U
# W = get_W(data_set, k) # K邻近法& V: o. z0 P r4 Q4 w
L5 v3 u+ B; o, I) }+ C, F
# 计算度矩阵D,并得到矩阵D的1/2次方的逆矩阵(便于计算拉普拉斯矩阵)
% t I$ Y4 c3 p, l. | q7 x7 o& ~ D_inv = np.diag(np.power(np.sum(W, axis=1), -0.5))) v! r" X1 |, z' V: w
3 k* N; A: b2 A
# 计算拉普拉斯矩阵L=D-W" \3 ^- O* C. a+ R$ j2 f
# 标准化拉普拉斯矩阵l = D_inv*L*D_inv=I-D_inv*W*D_inv
; n. u/ a, P$ B7 o* _0 l' X L = np.eye(len(data_set)) - np.dot(np.dot(D_inv, W), D_inv)8 u+ `! B O5 C F
- V1 z$ [; P! G/ I5 G # 得到特征值和特征向量
+ G3 `* S3 G, M' s. \2 p( i( t/ m eigvals, eigvecs = np.linalg.eig(L), B; @3 z9 W1 s* g5 G/ Y
; b5 S9 ?) ^! M0 A% ^! m: C # 找到前k个最小的特征值(索引) }0 M& r" n6 \- t0 \, V/ z/ m1 D e
k_smallest_eigvals_index = np.argsort(eigvals)[:k]# T% i4 A! Q' J5 H9 Y
7 s {" l/ i$ L. f
# 取出这k小特征值对应的特征向量,并正则化' ]5 j% k3 ~8 f, E$ _, Q) q& U
k_smallest_eigvecs = normalize(eigvecs[:, k_smallest_eigvals_index])+ s& q2 U' U u% n
: h$ w8 P$ ?$ X* C6 Q, n
# 使用K_Means聚类$ s+ o" U+ I" s& _( m* p# ]2 k
return KMeans(n_clusters=k).fit_predict(k_smallest_eigvecs)
( B. ~5 Q# e: C
2 _9 L8 A& f3 X
/ a7 W; u( O5 Q+ J; G1 f) Zraw_data = pd.read_csv(r'E:\Postgraduate\Dataset\jain.csv', header=None)* z2 T, D, [! ?
raw_data.columns = ['X', 'Y']
5 z* c9 O# n0 M3 Gx_axis = 'X'
: \' y& o: p# b' [( ~1 Yy_axis = 'Y'
2 P) v! T7 ], E9 h7 ?, r g& s
examples_num = raw_data.shape[0]' L" y" a0 C" j+ ]8 Q
train_data = raw_data[[x_axis, y_axis]].values.reshape(examples_num, 2)
, b: v K* V! Y! [% \
( h) N- ?. R* n3 N# O: }0 B) l5 ^+ d1 B) J* |
min_vals = train_data.min(0)
+ r0 I! @1 ^* M* i6 smax_vals = train_data.max(0)
. s& H+ v2 G$ w( k: x. lranges = max_vals - min_vals7 q# t1 B5 I- }
normal_data = np.zeros(np.shape(train_data))# R& w. ?: X- N% h
nums = train_data.shape[0]" T: c. d# A5 D: J4 x& A
normal_data = train_data - np.tile(min_vals, (nums, 1))
& b, S9 V; u& n. y- M5 @# B: Onormal_data = normal_data / np.tile(ranges, (nums, 1))
+ e4 }1 F8 h! }7 J0 V" \2 ?1 j; B! e8 {0 h
6 G. N C- R Z" P. |' jlabels = spectral_clustering(normal_data, 2)5 O* q1 y9 B( U/ d6 }7 T
, N! a5 t9 \. u! h
# 原数据
$ o) r$ H' ]! ufig, (ax0, ax1) = plt.subplots(ncols=2). t9 S3 E; E4 ~5 p; Z
ax0.scatter(normal_data[:, 0], normal_data[:, 1], c='black')( h1 B8 k3 S7 m$ v( X
ax0.set_title('raw data')
, g) _) t# @: o. M# 谱聚类结果* Q$ |9 d( S8 c4 q$ U3 {
ax1.scatter(normal_data[:, 0], normal_data[:, 1], c=labels)4 A( a: B2 X* `! j0 |8 _
ax1.set_title('Spectral Clustering')" \% \2 A8 E6 |0 T) h
3 y+ G" w9 ^+ b4 k/ x& c5 X2 kplt.show()7 d. w" M# w. c0 N
/ w$ V @6 f( I1
6 P1 f' R% d0 U& Z+ o, @/ N2
. x" S5 F7 T$ [% ^- S3 }9 C) Z/ a& Z3) x3 _" ^4 o$ O0 A/ z
4
2 K$ I; Z' T5 \' A5" ?' K2 ]/ K" ~$ c4 |' y _
6
, o0 } m& l, p+ o" W75 X0 _3 {. p0 ?
8
' f% f- R4 f% L( ?9
4 z; r" y3 |: `/ t: J10
" j1 ~! [/ p/ y11; w7 S7 {; [7 ~* B' Y
12
9 x1 r, T5 d" J! Q1 L13' g- z) N; r' v) I
144 G' ]/ d1 a1 `" q1 c! t7 z; F; ]+ [
154 D5 _, X$ d9 I0 ]/ @+ A- \
16
1 o: s1 |- V5 I175 f2 }1 n; i7 @6 x3 C/ }/ X
18! I5 {4 Z4 q! f9 @+ T; _$ c0 C0 w
198 `) \5 d; C# @9 P, t
20
; Q6 _7 {) C: [5 ]& f1 a6 X4 S21
0 b1 d* E6 A( R22
1 u' Q0 t: V# s) E S: \23
: l5 \* E' m2 v" |% h2 D* G24! n7 T; M# i- O) I4 x
25! |* J& |9 n3 D& p2 v3 w( }
26+ L0 T! b# I1 W6 O; w, Y1 V* N/ U
27
& c9 j u# I+ m2 r1 Z3 d281 @" R& S4 W( T2 s4 i
29
4 i U- E0 m! @) Y) w301 G! \8 G/ x9 C! ^
319 @* b2 p7 t a. a8 q, x* C
32
8 d. e1 K, z6 Z# i( {7 }33 ?& \. W8 V8 e# b& v! b
34
! q! L) T \! g, y35
" T/ m& b4 l; h36: ^ S. m% ]% C7 j- j+ e
379 s* W- g4 E- F4 r
384 M" H5 r: y9 C
39% P1 x2 Z- C) a
408 \! J0 T+ w; W7 {7 b
41
" d G b$ g7 B: V42
/ T( Y- W$ x/ K; H" p. _/ u/ y: L$ \4 t43
/ B7 N* ^& k5 }: ~# b* b- P& {; n44+ B" K c) L5 W: J! ? H
45! T9 x7 {4 S+ d* Q) [
468 O5 `# B! e9 K' O
47
4 V1 X3 \9 n, |48$ J( s1 }+ U6 Y! O
498 N3 @7 g$ ?; M
50
6 w4 H4 f+ V1 H# I51( S5 q! x* A5 Q* T4 L$ y1 T% A
529 n F; U' K7 x* p
53/ g2 I& l( d4 l f
54
8 [4 A2 i3 _/ t. @55
/ J6 Q+ [0 s7 }56 V, e9 L4 m/ R r
57
/ m+ e" ~# _9 p0 n# z" y/ H3 ?9 x58& p! y/ y, b- r% J" N
59
8 Z3 K$ A: n0 i( D) t606 A3 O! R2 B' [
61
& r2 p7 z2 M9 D! J9 f, g9 c62. Z2 ^2 N2 j2 o. r" z
63
2 N2 F# C1 a- K) L$ _64
4 }9 |4 h- T: T658 Y7 H2 P5 O7 X& i
66
' p1 Z* r# }, m8 D67
0 x2 v3 A* x! n( V68
. b" W4 l( _, l5 n% ]- g69
) t0 G7 I' e4 [3 n) x4 q. J2 y70
- }7 y5 a* S! _2 Q715 F) A. d! q+ m/ b/ F7 Y$ W
72 |2 f1 z# @3 {( A
739 j9 @9 @/ X7 p+ r& G
74
+ ?. E5 {+ W3 K* c. E I75
2 c+ S3 M* n: n; D" k4 ?5 G" `76
, ` Q1 k0 O! R/ H6 g' L77
6 s# u) m1 Y' a- Z8 ~78% N: W% j. o3 s
793 N- S2 ?9 d- v% }# G
80
! r+ R- p2 T$ H. f! `8 x( W812 u* w$ D/ B/ G3 f: Q Z; J( N' Z
82
U3 g; @+ a; w; d4 m3 d* V& v83) u9 E6 ^$ W4 ]: }; K
84
4 V( z" T q# C- J/ ], @, s85
- R0 |1 w$ d# h z860 X" c$ Z1 k9 J; G' V
87
; H2 F/ {8 P" G" w# u; d6 W" U+ P889 q2 y7 @' \5 u3 c" d& o1 b. e
89
; v# k: J' o4 G90/ J: a) ]/ _& X; u4 a% o
91
0 k- y5 P+ I y92
$ f6 v- p8 y7 ~$ s& e D) \93, w' B% p/ x- F. B' H
949 Y/ l# X( u$ p' d8 i' e" N1 N
95
* I8 F2 ^, k S; ? S; [2 C96# z: S) S9 ~7 R _5 P
97( R# T' i4 a/ i# a* E8 `" X
98( `5 H) |0 Y( c
99
8 `! J# I, |/ _+ `% ], u8 u7 u$ g1001 P- ~5 v" N: D$ ~8 T/ ?
101
( D( D% S. s7 o102
, H& C" T+ f8 a* ~0 d S1037 W/ t! ]% t. N2 m. w5 @" p" p
(高斯核函数). F. `- T# Y2 Z, Y: h, \
3 U" q$ i ^; |0 O
/ a( ^$ y5 K" e" e( \0 U8 \( Z
(K邻近法)
$ v0 ~* S, p1 m1 R$ b% u& D! k3 v& f, x8 \ t' \2 Y( k @& b
# T' v7 O0 m0 F, Q0 @四:谱聚类算法优缺点
) Y" n- K; }# J(1)优点
9 P+ e7 i1 ^+ g9 _$ t4 e谱聚类只需要数据之间的相似度矩阵,所以对于稀疏数据的聚类很有效
7 P6 L g$ Z1 T k* H6 G使用了降维,因此处理高纬数据聚类时复杂度要明显低于传统聚类算法' f4 a$ z, t! n3 l' M$ ~
谱聚类算法建立在谱图理论基础上,与传统聚类算法相比,它具有能在任意形状的样本空间上聚类且收敛于全局最优解- f- w% F0 e* o- B/ V9 s# `. \# e
(2)缺点9 \# p" F. ?: W0 e4 I0 _9 E1 x
如果最终聚类的维度非常高,则由于降维的幅度不够,导致算法的运行速度和最后效果都不是很好
8 W2 P" A' o% j, B+ I聚类效果依赖于相似度矩阵,所以不同的相似度矩阵得到的最终聚类效果大不同相同+ I6 i6 n, Y3 X) E
————————————————2 t L# Z5 _* M$ M6 i
版权声明:本文为CSDN博主「快乐江湖」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
7 Y6 V8 X! C. ^0 V) w原文链接:https://blog.csdn.net/qq_39183034/article/details/126747494
% F9 M7 l& t0 a% ~
# v" F2 u6 |% r6 ]2 S
! x/ S& ^* {9 f' C! ~ |
zan
|