QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2957|回复: 0
打印 上一主题 下一主题

[其他资源] 【数据聚类】第八章第二节:谱聚类算法之切图聚类、算法流程及其实现

[复制链接]
字体大小: 正常 放大
杨利霞        

5273

主题

82

听众

17万

积分

  • TA的每日心情
    开心
    2021-8-11 17:59
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    网络挑战赛参赛者

    网络挑战赛参赛者

    自我介绍
    本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。

    群组2018美赛大象算法课程

    群组2018美赛护航培训课程

    群组2019年 数学中国站长建

    群组2019年数据分析师课程

    群组2018年大象老师国赛优

    跳转到指定楼层
    1#
    发表于 2022-9-12 18:41 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【数据聚类】第八章第二节:谱聚类算法之切图聚类、算法流程及其实现
    ; l" V8 b* E( v/ A; T: |
    % R- S, Q' g! n; Y; p* v本文部分内容源自刘建平博客,在此基础上进行总结拓展' P* ]; E7 D* i1 j
    & z$ k2 }, t% [" G
    原文链接/ `$ z; k: b! b0 r( z) u* p5 E3 y
    文章目录
    " S3 w& f) P* O一:谱聚类与图划分
    ( E$ ^3 M- I* {" C; q0 A; u# A. X6 c(1)比例割. I4 B" r. ~. w& r/ t
    (2)规范割(常用)* w6 T: u- @+ l  ]; t
    二:谱聚类算法流程
    ) {0 M% s* Y& z" W. X4 P三:Python实现, Q8 c3 h6 D$ D* M1 r0 e1 k
    四:谱聚类算法优缺点
    9 m) y( K& X% t. t5 s6 B& h(1)优点
    0 w' ~8 j$ L1 f9 F2 t(2)缺点1 F2 ]' e; |$ j, G2 l: K/ w
    一:谱聚类与图划分2 n! m, E  H. k* l( \; \7 I( [  q
    无向图切图:谱聚类算法根据数据点之间的相似度将数据点划分到不同簇中,因此将数据点映射到无向图之后,可以转化为图划分的问题。对于无向图G GG,切图的目标是将图G ( V , E ) G(V,E)G(V,E)切分成互相无连接k kk个子图,其中. q" f) m+ w+ r" B
    , a6 c9 c" ^# X
    每个子图点的集合为{ A 1 , A 2 , . . . , A k } \{A_{1},A_{2},...,A_{k}\}{A
    - d, }! j; `; T1
    % o( c4 _. P9 I" V, `. m# o7 D) O0 W2 Q
    ,A . O( e) N0 `  N9 |$ ?% h
    2
    8 x. J/ M- Q$ c! E. s- j' y' i3 T1 @8 y. x; d& |, M+ J
    ,...,A
    * H+ T) W0 p3 V7 a0 tk+ W8 b/ u& Z9 \& i1 W. P

    8 u0 X, v- h0 s% t  S6 X },且满足A i ∩ A j = ∅ A_{i}\cap A_{j}=\emptyA
    + P- ^6 j+ K7 z9 C9 ], M( Ki
    " `* A9 v7 X& x/ }& E) `# n9 Z# @/ q* G
    ∩A $ R% D- N! V4 ?  t% ?' j2 q
    j
    6 {+ S! g& m! P, k! i/ `" S, P* x( v
    =∅、A 1 ∪ A 2 ∪ . . . ∪ A k = V A_{1}\cup A_{2}\cup ... \cup A_{k}=VA
    1 c) j+ L1 T, c% `  g* z; Y1
    " O; S+ |, Q0 S9 K
    / y+ J% S4 j# |3 ? ∪A
    . w/ O6 M/ k% e/ w! `20 n7 W; b- p9 m# i+ z6 U

    ; V# s/ j! C. N8 Y1 Q8 M ∪...∪A
    - |. q  R6 R) Z2 Xk5 _8 U+ e! `6 Q) v

    1 E2 w, A$ K2 r4 X, U5 L- a =V" ^- I( `4 Y  u% Q( K
    对于任意两个子图点的集合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)= . @! R9 x* p2 z  I) p2 i7 G8 T
    i∈A,j∈B
    0 N; U3 s9 v6 `" R  y7 T/ T1 ^' R% v1 W: c
    8 w5 i- P- V+ n. F8 Q7 ]/ Z* h
    w
    8 E2 [- u6 n4 ^4 V# Iij
    & ?* i4 q: Z- a9 R% r
    $ T& ]% V: z/ [( X  t  c8 w) ]* N
    * g' H! H9 @$ H对于k kk个子图点的集合{ A 1 , A 2 , . . . , A k } \{A_{1},A_{2},...,A_{k}\}{A ' K$ p5 x8 n: y% N. l6 Z: N5 v' T
    1
    % B% I" m/ h6 G8 H5 w0 J$ b
    + D7 K6 j7 [8 B7 g ,A - o6 k1 L9 u9 E. j
    2) {% N; {  `2 C# {+ ^

    : x" [0 B4 a+ V* ~+ ]+ ] ,...,A 3 g: b, `  x" J
    k3 {* t. ]' k. g) f& x6 A

    + D2 d2 b' J* l  _) b; c },定义切图c u t ( A 1 , A 2 , . . . , A k ) = 1 2 ∑ i = 1 k W ( A i , A ˉ i ) cut(A_{1},A_{2},...,A_{k})=\frac{1}{2}\sum\limits_{i=1}^{k}W(A_{i},\bar A_{i})cut(A
    / [2 c1 r9 d  f- x7 f6 g6 b) d1
    , S$ o& J2 e' u8 J/ E
    " D0 b  ?' O+ T/ ?. r! ~& G& w2 E ,A
    5 t8 q& X% s5 p24 J" B/ ]  w2 ~
    + F+ J* q1 {) l
    ,...,A
    * U3 i( N) ~  l. K8 [k
    # m0 s5 p3 e6 c  J) a) F
    ; W4 e4 O4 n2 L$ i )= 7 R$ S; k& S% W  ]
    23 ~% D& D) I5 x
    1
    ) `& f& }1 @5 c- q4 f/ f/ I
    % m4 M; K4 _5 ?* e' x9 X; A1 P  Z+ f
    i=1* M6 |3 N" a1 y9 |  u9 _
    - Z) F  n+ r7 y" ~% p
    k" l2 U* T7 @* t" p! P
    " b; q9 U% c( l8 }6 h, f- X
    W(A 9 k0 G7 @0 u7 V' l4 s
    i
    / C8 P1 b4 T5 ^2 g( ?2 q
      M! B+ r! D1 {" D! l- J( w , 0 c* L$ _( P  `6 j7 _7 K
    A
    2 z3 m! W) L& S! H6 H+ ^ˉ: |7 Y" n6 D  J, r% ]
    ; }/ l* O: o6 G% d9 Y1 _1 c$ |% Z8 V
    i
    2 `2 Z6 J1 |3 |+ w
    8 e5 d; i2 w3 a- T1 r: J0 F ) (其中A ˉ i \bar A_{i} 6 \2 h" k* `- a, n# l0 `6 ?
    A1 Z7 e6 i; g* Y4 k, ^9 p) t! c, g
    ˉ5 \; j0 e* S0 Q  K9 k
    ! i( c7 ^& L$ [% i2 Q3 p
    i
    # c4 O- i+ {. u7 F% U  u2 P- z, c& X
    为A i A_{i}A
    ) B% _$ K! N+ n$ c$ _" U6 w9 Di$ m% u. w$ F/ g* P& @1 p) N
    $ `5 p3 [* g; v0 a9 u- I( f
    的补集)
    + n7 v  G6 ?' r" w6 Q- {: N. ^可以看出,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 5 [) l/ V1 V2 E8 G+ r
    1
    9 f, b/ H' ^3 H! V; l# Q; s2 A3 G% ~6 y4 T5 ~+ W2 ^8 [
    ,A
    , h: c4 t. ]) y- X+ A  N% X0 B2/ s  `$ G: F1 B3 W

    . Y. U6 I# w& P" N. } ,...,A
    6 Z# i' d9 Q! C- Uk
    / W' i4 E# j4 D# i# C
    ) O* r( y4 Y! y2 ~4 k" ]6 | )= : X- l! v9 U4 y/ d) S5 x
    20 ~, Q! E* H( ]( e* c, [
    1# z* T3 z( R# ?) N; o5 S( S
    2 R8 ]" h0 U# o" h

    & P( t! M$ K, Di=1
    1 Q* \) P% W  a1 \0 {3 S7 B+ D" W( u6 O8 A5 E' r
    k0 `7 N  i! U* a' {: X+ r

    9 L/ u  z7 L# ~  O6 b4 n0 u W(A
    ; T9 d4 z$ H* ^' vi
    2 z3 p! ^- B  q. l! S# C% i  K, q; ?% L' s
    , - |; S3 D7 `- j
    A1 c9 g  l; F: e3 P5 X5 Q
    ˉ  F# d+ o0 E+ x

    . ]1 I6 C: i! V6 {5 `7 N2 [i& ^( U( f; B* L5 v/ g$ t1 [

    + l6 Q$ T8 m/ D, r )在划分子图时并没有考虑每个子图中节点的个数。所以在某些情况下,最小化c u t ( A 1 , A 2 , . . . , A k ) cut(A_{1},A_{2},...,A_{k})cut(A
    % g7 `$ F1 \7 s" p1 X0 O19 |5 z/ v0 ]) L( f$ A$ r
    ; v1 v" ], U7 a: ?
    ,A , V4 e- ^& S6 K  `3 P
    2
      W4 k7 u1 ^& Z5 J3 ?+ Y2 n4 _2 |! L4 K) P' B3 H/ {- V
    ,...,A
    / {" p3 O) Y+ z( ^& b# d1 ^k0 C, d( n% c3 O8 a/ b
    + N, N& y  N! Z* c4 j
    )可能会把一个数据点或是很少数据点看做一个子图,导致子图划分结果不平衡+ q, z9 e1 d# }7 W3 {' a4 H4 G

    $ k6 P) ?& b' N例如下图,选择一个权重最小的边缘的点,比如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 8 S' o% w5 i0 M  j& D3 i( p% e# f
    15 b6 W6 H; z. A& M7 Y, H1 N
    7 k9 I. \  x5 l2 Y' j% d
    ,A
    , ?1 A' {0 B8 q2
    ( I2 q0 E' g6 D8 \. _. ^' n% z# j: O" M3 p
    ,...,A 9 I! t' {1 k9 X5 q0 B3 v$ h! P5 M8 v0 e
    k
    2 z; D3 B8 `4 S- |5 n  b
    8 ]' I/ _7 u5 d' }0 {1 k$ g& a) a )但是却不是最优的切图; C( ~9 x# t" U
    7 G/ \8 Z. b: P3 _, m3 H. P
    为了解决这个问题,会引入一些正则化方法。最常用的两种方法为比例割和规范割
    0 ^6 D/ [5 N* D* ^+ e6 _) u# G, r/ F1 q
    比例割: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 7 n! ~) c7 ~1 w; a8 ]$ h
    12 a' a9 p* s. t2 ^
    ; p" M1 ^& A. H" Q
    ,A . A9 g/ J$ N9 I, L
    2
    : [- B+ c6 a' A5 _+ z3 w9 r& S7 ~6 O! ?( T$ m
    ,...,A 2 x" |9 m/ ?- ?3 m  B8 t
    k
    9 Z8 d" [" u# }* D- s" s8 O2 v6 z
    )=
    1 ?7 k. S$ s( V8 d2  e( `' G+ R  `2 H
    1) ?. D4 t) L# T+ \
    * e% U9 k$ P! B/ s  v9 A
    ) ~, J$ U) b' ~& _; h
    i=1' m  g$ c' B5 f9 N" S6 t

    + M( d/ g) k+ p, _4 Nk$ {6 I9 B' r2 X8 u* }; ^* c
    , \/ f8 s4 g- g- [4 O* h% p
    6 u5 R- _4 s$ Q+ W
    ∣A
    ) n% ]+ a) D: V1 U" p% _3 {i" f0 N$ ~3 A: S; x5 r; p% h- o
    : A  r7 i8 G0 N9 A: M9 P1 B7 n% U8 w: t

    5 l  p6 J% ^4 Z+ R, kW(A
    ' ]* H5 J) \1 R, ~+ L+ u- Ui
    $ h1 u+ u. m3 s9 J$ B
    4 d9 Q' \; a  }$ h , , Q/ v8 t$ ^& V; H1 `3 R7 ~6 ?
    A
    / F5 o" c( @) P7 P5 Kˉ
    0 a% t0 l' _# ^/ Z5 i3 K! w/ x9 a8 u1 t8 C" r; S& m
    i  A' n9 g8 ?8 x# l  p

    9 Y7 [" L; N6 T% ~/ L" x# r )- P- ?* M! p3 E. t7 `3 n# Y* ^! x7 t% W
    0 N( B/ \. m& Z7 ]' t
    $ p+ C" d  g/ O8 o
    规范割: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 2 [- [' o5 U4 e( W* p- u
    1( y; n6 O4 J0 Y
    ) a( ?# c2 z9 |# ^  ~- t) G
    ,A 5 w( l1 {) E# e/ U# L
    2. Q2 r7 `; I3 ^- P+ Z+ y
    6 w6 ?. i& a: s, _6 b$ M( u
    ,...,A & B: K1 }2 e% j/ c& E+ [2 R5 p
    k
    ( }; |( I: b" X  G- _$ w4 J; n4 m7 c5 c/ d, @' V
    )=
    ! Z" D0 Q9 Z4 q2
    + V) G: d, c: U" T9 x1 d, N1
    8 \' v7 B& l7 w$ |9 m* A
    , B! }  g" P5 U  u# W7 [" |$ X
    ; B) O2 t/ N& o, ?  E0 ri=1
    8 x( y, k" [: L
    ! @& u  v# D' w# v# o+ Z6 Vk
    2 Q6 c1 N$ m$ g& i7 e2 |
    $ Y( i8 G. k# r0 _' U# [: x% F* a2 u2 R, X
    vol(A
    " m/ g4 [' R+ q+ k0 m2 K2 U2 S( ei
    % @: q; z6 Y1 |0 l/ O3 L+ e% @, h9 a4 P; m+ d9 X( f6 a. i8 a: x
    )% @7 Q; \! q' l# A% u0 k
    W(A 0 p4 c  B. j) Y
    i2 N; h! z4 E. r7 z
    , D- H; P2 `$ j( K7 }
    , ; Z% J& j' z. g* p
    A$ N2 P* v% o0 {8 |( o
    ˉ
    ! B* Z0 J7 s" o+ C7 n: j+ A0 w# _7 L2 d3 I
    i
    " _+ `+ K/ G  g
    ; ^# W* _) m9 w )
    / S) U0 f- _2 ~# q) j$ }* F8 {9 t
    / c. y# P+ T' L/ B9 ^0 L2 s( i6 E" ~/ {0 G' w  Z0 d+ m2 F
    (1)比例割6 ?. p( A7 n) t
    引入指示向量(点击可查看指示向量定义)h j ∈ { h 1 , h 2 , . . . , h k } h_{j}\in\{h_{1},h_{2},...,h_{k}\}h
    " |" n! ?" g4 k6 gj
    ! E+ u" C; b5 o$ b' c2 {2 T+ V2 Z& _8 o/ F! o+ C7 \" l& z1 P5 s2 H9 A
    ∈{h . b/ @2 @+ }" W( m! b* R% E4 N6 f
    1" O% \$ Y7 s9 n5 ]5 z# B( k

    # N$ k" z8 ^& q4 ^- o0 u ,h * ^* S% o7 \. {" V
    2
    5 j( O% s9 c7 x# K. n: i! S4 _: W4 v1 E, b
    ,...,h + J5 K7 ?5 F- a0 C
    k+ j2 z$ Z! T. m) A! \3 z) s' c
    - ^# Z  L) h; B& R! |4 A
    },j = 1 , 2 , . . . , k j=1,2,...,kj=1,2,...,k。对于任意一个向量h j h_{j}h 0 L( O. |9 y3 N9 m/ J6 [
    j
    9 K' C7 T: v! a8 L4 H! W6 V3 m3 ?2 c
    ,它是一个n nn维向量(n nn表示样本数),定义h i j h_{ij}h
    , [0 [+ U! r; |0 b( c* W4 Pij
    , n+ p) ]2 S/ O' `' o
    ! [' d# t5 h' S# p: p 如下
    5 W- j" ?5 l/ F' \" T* W- d5 M. j* X& f# M- J# t9 W2 k
    h i j = { 0 , v i ∉ A j ∣ A j ∣ , v i ∈ A j h_{ij}=
    8 }  z1 p  J7 P{0,vi∉Aj|Aj|−−−√,vi∈Aj
    6 C1 x1 d/ |+ F2 R  D{0,vi∉Aj|Aj|,vi∈Aj$ Y" S& x& P( k2 X. l; G7 {
    h / T4 f, o/ u% y: h5 J
    ij
    / j) X6 e& E( S
    2 _, M& W( U# q! x ={ , w& i/ F9 ~6 G/ ]
    0,v
    , i3 z% N, G: Y+ Oi0 H) B% x9 v2 Y8 ~
    * L# p, u% J5 p$ D# i% }

    8 |( s  V# n0 M& b& k. U/
    / N7 g" H  V% j, fA
    4 ^. d) {2 o$ U3 ej
    + \/ R, z( G  K  D7 x+ S6 i# y, O* M! K
    ! I# q* d! m. y
    ∣A
    : F2 j( w# z* H# U* Mj' M7 f, w4 x# w3 E& z! V- c

    # |. \' r" A- T6 ]( M8 l$ P
      O- }$ A+ o1 r) W: W1 _& P
    & t: Q5 R3 X* m ,v ! [$ A4 g9 K& v& i8 u8 L% g
    i+ N; {  R% F( o! n5 @7 g
    ) c% X* u2 m* D& J6 \' D, ~* a
    ∈A - f4 b7 C6 u5 C& Q$ Z1 s
    j1 d4 M8 o& E; ]  K( L1 I% u/ m& a

    9 O$ q! G/ L: ^9 o, K! y- n- o
    5 Y" f( s8 V; r; }* H3 ?4 @/ B* l$ F4 Z4 i9 F

    9 U' V' U- ?& W4 b. v! |1 w: C; ]$ g- h0 x/ ^0 J
    于是,对于h i T L h i h_{i}^{T}Lh_{i}h
    ) X2 l. K2 V- y$ D. r0 ri/ M$ o" r6 D2 B* ?$ p- `
    T
    + y' o+ P- f+ i- ]" t: c. ]
    . \' G0 e- g9 m/ J Lh
    / S' x! s: u: Bi
    % P# h1 `" i- w, j8 O3 S" `# b0 m+ D+ ]. C
    ,根据拉普拉斯矩阵性质可知
    * {0 x; D0 z: B  R! n, D9 B
    5 b" E: m5 e! K1 t7 f5 s对于任意向量f = ( f 1 , . . . , f n ) T ∈ R n f=(f_{1},...,f_{n})^{T} \in R^{n}f=(f 7 L& H3 V2 @1 o  x  O" v. R; P5 }4 c
    1
    + m6 x. z: T& k# `1 e2 Q8 j- E# g& @& w: _
    ,...,f ' |* }/ N& `* u; Z" y8 S6 }& t
    n
    % [6 f) w5 R9 u4 L. B! P
    : Z+ n9 m, X# W+ l7 {7 c ) / y! i0 u' J" r6 \6 m
    T3 D1 j& n! G0 q9 y
    ∈R
    + Q; j$ `4 ^* G& E/ vn
    1 F7 T0 f. s' 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
    % _* f; \: H$ QT
    - I) V, a% z: ^2 J& c0 T. D; d9 T) U Lf=   G8 ]$ A9 J; N
    23 Z) c! V. I3 m% i8 I1 O: C! N
    11 c+ D; v) G4 l" M
    . j" S. c" [) j' Z+ _2 {, ~

    7 d% w! L& L6 I1 ^! ]i,j=1# H' }9 h+ W: b9 x5 G. Q9 N" C
    - h! X/ V$ z2 J9 {3 Z" d
    n
    " b! q4 n2 ]: ?& c2 Z% M
    2 `- A$ r3 g+ {7 j  ?: x w
    8 s% q; ]7 n* _( N- t5 K0 X5 gij; ]  ]) a9 ^- R" m  Q
    ! G+ V: \4 ?' e9 S4 m
    (f 1 o4 N0 e* l" b: p. e% B1 L- F
    i* ~! p( X9 N3 O" ]5 U

    0 l* @* P) Y! E' i −f + I- N/ w+ U8 k$ o) H- c; x2 |
    j6 ~, J, Q# A# M: X9 a- a

    / a; Q% L. d1 J+ z ) / {. {, c+ V/ s- X# A  i! v
    2
    9 m# t" @* R- `& M' Q. ]% H3 @) x8 {8 j3 o) Z, P+ ?) L- p- V! a
    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}|}
    1 [/ L  M6 X/ k/ j: U+ ^h " m% g- b4 G' Q$ a7 f8 D4 U
    i8 w3 \8 n% Q, J; T8 Y6 q2 V
    T
    1 H7 j5 ^4 D4 A+ U8 W- q1 @* m( }8 l* s$ h& w. ]7 h5 a9 d
    Lh + J! m0 X8 R7 s. v5 O4 b" S- L
    i, ^  x- B1 N% K2 L
    ! D# g  |9 V0 G* P& P2 i
    = ) s, u1 Y2 j1 h: I0 r* w6 s
    2+ _/ [* T  O; v" `5 Q
    1
    5 `4 z  K& M- U7 h1 G6 G
    * Y% [* P9 Q6 h! @4 f4 g9 ^6 |1 K  t+ U% M! C1 Q( X
    m=1
    ' e* A- l% p0 e- n- V, f& S# ~' C5 K$ @" s4 Y
    0 a2 V. L4 n8 Y/ ]7 _* s8 X
    % L5 R4 \: f, {; i
    n=1
    / B1 s. b1 ^0 Z" w7 J% a: V
    ( W7 h* g* ^6 w% N, E( z7 T/ G8 s$ D( h; t5 V
    w
    ! X$ N. {) Y. o$ kmn  ?# M3 ^5 K% q( q6 }8 C( W+ a( _: i
    # W- e5 F2 O; r/ O4 E! L/ |
    (h
    6 C% T, P  y  A9 o+ r7 r& Pim
    " S4 l, i3 }* F) h" O% W0 \- s. q& I8 ?5 G% h' y6 }* u
    −h / g5 d( Q* f  {- Q
    in
    % o$ n3 Q$ H3 M$ i
    8 l/ O2 u4 g) P8 T3 D+ h ) $ A- k9 l$ Y$ N3 J2 j7 {
    2
    , ]; w+ \0 f0 }6 T! |# R8 K =
    7 n/ D8 C0 X  a! V4 e& y* F∣A
    $ X7 G0 W' a  [i8 x1 `# A  c0 D) A5 }8 M) a+ Q
    9 f" T1 O! L  k/ R% O' E
    ' a- @2 ?, B/ o4 j. F; ^8 z5 J
    cut(A
    " {' c/ B; r/ r, k' r9 ei' R! T2 _7 j, x: y7 ]2 x$ |, Y, l
    & k6 a2 L8 P- T) ]; Y/ v) W  R
    , 1 w" e! M; ]! f
    A% @3 N" U0 G4 d( Q) {
    ˉ
    6 L% u/ T+ E- m% ^7 f; G; ?& k# s  }8 I% R9 d
    i; ?" ]6 i; {0 ~& q5 t$ b  Z

    + U0 V! j$ a6 H* @/ c* U5 ^ )
    ! y- H  r; f7 D) k3 y% `5 I* r+ c3 `% d, @, |  L

      K% m4 s3 Z. L0 A3 i1 s+ H/ b! J' U5 k1 o+ i5 L1 y% a
    严格证明过程请看刘建平博客:链接
    7 z9 M; L# J: L4 e; }" K可以看到,对于某一个子图i ii,R a t i o n C u t RationCutRationCut就对应于h i T L h i h_{i}^{T}Lh_{i}h / d0 {. i* Q2 n! \
    i2 k2 I) Y$ K  m3 ?0 n4 _3 `5 F/ G
    T% v- p! X. @1 S. Z6 _' I/ _

    + b6 E" Q6 L; j: w# c Lh
    0 D! n2 k* [; C$ s& [, C5 x" oi
    # T% j; c+ s. `2 S" n% y2 V; x( [9 ]9 `: d- M% `* P8 {
    ,那么对于k kk个子图
    7 V6 `0 }* B/ P6 y
    1 x. X1 O! G8 m- r' I& [( bR 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)2 R2 _, R9 s+ z5 P, ]
    RatioCut(A % \6 {! [: `) g3 h) w0 Y
    1
    - q: K% [  e, r! }8 m3 G! P+ S, R7 k+ M) y
    ,A   J  ~2 j! F( U3 c+ A& S
    2* g) Z7 v* K; t
    1 J4 T. C8 _$ {- ~
    ,...,A * ]7 V( k% P  f& g6 n; R7 W
    k
    % L4 J( K9 O  |0 H" H/ E2 L4 e; B7 b# J6 [) g
    )=
    # j4 I' [/ V/ Z& o: h; }# G; Ki=1
    3 f0 _' G% L* t+ K' N0 G3 s2 r2 v; _6 S& t
    k/ x4 [# Z3 |8 ]' R$ ^+ l
    2 j* |& j8 k# `, m( h' D% w
    h
    # |$ i! d, k  d3 q8 X  g, ci$ f! s9 m  Q3 \8 H
    T! ^7 B4 R' ^* P$ }, o9 l) f
    " n' M$ `1 s- P: \' B5 b
    Lh 3 }4 G' k- O2 E) q/ ]
    i' R  t/ L6 t3 J: W

    4 V$ h3 i0 g" \$ s! n+ _6 b; F =
    ' b! X6 g/ z' ]! C; f3 B7 g3 G: P  ni=1
    - b- Z; \* O% v
    1 U' l$ Y0 L1 E: {1 f' s, S+ t( Ok
    ( G6 k# l& ^5 ^' n
    ; ?+ U4 t; C# O. ], n' k (H . L: o  B  E( D" d7 ]
    T
    5 J( N, G% d$ r6 t7 g% h8 ` LH) 6 e, {7 m) U7 E' s
    ii
    ; r. E% }  K1 J; h$ a7 K$ w8 [4 Y# z9 Z! A
    =tr(H
    % B9 l& a6 V& I2 C+ o7 J7 z, oT
    7 ~9 |) e( d  t7 b* S LH)/ S+ c+ ]3 j$ C
    & Q/ P" H3 G) r, A, y0 r+ `
    因此,R a t i o n C u t RationCutRationCut切图本质就是最小化t r ( H T L H ) tr(H^{T}LH)tr(H
    / q% g$ b9 M. k4 A/ pT
    + A. g5 b* |. K3 ]4 D LH)。又因为H T H = I H^{T}H=IH ' A" `' O8 P* T: V
    T
    - c4 A" z% t0 w) O( T/ L5 l H=I(单位矩阵),则切图优化目标为3 N3 g& v$ M& K  U
    , t. B9 I" M7 y
    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=I4 _: v6 R% s% \8 w3 N. j. N+ Y
    H
      V2 U" ?& V4 f( uargmin; j+ E" D( \) }

    $ d' p& [" \. R( m* T+ F6 F" N* T: j, s) n
    5 l/ V' I5 L" c! U7 Q/ A3 H
    tr(H 2 P# z# @' {& l, {$ L: Q9 ?
    T. d$ k3 h0 K6 b: |
    LH)s.t.H 0 a; }$ n8 T- D, b  G2 ]: a: |
    T
    ( P4 N& }, D" d% y H=I
    5 q5 A4 P+ k" a1 H3 E& g
    5 E; y; w' j, c对于优化目标t r ( H t L H ) tr(H^{t}LH)tr(H % \2 C& t$ R5 ^2 ]. o# C
    t
    ; r, @+ b, K: M. K- x. e- Z) K LH)中的每一个优化子目标h i T L h i h_{i}^{T}Lh_{i}h
    : ~& X9 G& K; \3 z# U: n; ui
    8 Y; J# f) y. M5 K1 lT$ l4 g' b" `3 K: W! l3 ?& I

    ) r$ p: q4 F& y2 \ Lh
    ! U! {( ?$ p! M4 ~  o9 a& i) ^i
    3 U  A; C( V' J. M- C+ t
    0 B  q. d3 [' p1 m8 D/ r7 ~( ` ,其中的h hh是单位正交基,L LL为对称矩阵,所以此时h i T L h i h_{i}^{T}Lh_{i}h
    ; q# {: r7 J- L7 D3 `9 xi, X) s. C  {+ D) I- _2 {" s2 Z6 q
    T
    ! O, x# S4 L. u& l6 C; i( @( v) w4 c" x7 n7 J9 W% w$ ]
    Lh 5 @+ `" u- @8 E0 c* A- O" p
    i& i( X2 R2 A3 s- d) t5 ~& g

    9 b& K7 Y: Q1 s6 L 的最大值即为L LL的最大特征值、最小值即为L LL的最小特征值。而在谱聚类中,我们的目标就是要找到目标的最小特征值,得到对应特征值向量,此时切图效果最佳。所以对于h i T L h i h_{i}^{T}Lh_{i}h
    ! B. T: Y! V  K! |i2 D" m* s" z. l2 j' q, w$ T
    T
    . i% x" D" ~/ n, m$ p  E7 z& F; K6 g( Q: P- T! R9 p5 C1 i
    Lh
    $ u3 Z8 O5 |8 N4 si! `, R& e, Q6 K* `

    - e4 {0 [4 T& C: S ,目标就是找到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 w' i) a9 P; l% z& R( A/ Q0 O5 J6 ~t
    3 z. O' f0 _9 q* D2 C0 m LH)=
    * O6 V* D! @' j6 B, ki=1
    4 O; v/ b2 s9 t" k. W" r1 F) Z0 t' j4 c5 d, r7 J
    k, U' ?- U$ E. V2 V/ M* m' z* r
    ( g5 Z$ d9 R5 c7 `7 q" z7 X
    h : q7 ^! i5 I( G7 ^! C. n2 R
    i5 l7 N3 l  i( I* C. k
    T& C8 R* Y% C) Y

    / `7 X$ C( B+ r& L" A/ _ Lh 8 H: W- \3 y8 c
    i6 y: Y% P1 d- v, r
    / g! L7 @: K; `3 L# A* z- t
    ,则目标就是要找到k kk个最小的特征值+ l% B+ d+ h0 o$ q+ w9 D; I
    " c. r- R3 i# h6 y3 l, C9 P
    因此,通过找到L LL的最小的k kk个特征值,可以得到对应的k kk个特征向量,这k kk特特征向量组成一个n nn×k kk维矩阵,也即H HH。一般需要对矩阵H HH按行做标准化,如下
    5 h" H5 k1 f( t8 {3 M% _4 |7 z- e% o  E9 j/ ^* y9 c/ ]2 b3 F
    一般来说,k kk远小于n nn,也就说进行了降维& y; p0 j  ~9 v# W' y
    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}}}
      u; J! O+ a! |* q7 K4 d3 Kh ) ~- o( u; A% A' i
    ij$ `5 P5 S, |$ v0 w

    6 ?+ N7 V- Q$ [" X% A; W* V  s/ H0 ]1 `$ q
    = , f8 o2 {1 t* x2 @2 r- H$ N8 d
    (
    , c% d6 c* ^5 k4 tt=1
    7 ]* S/ j+ s0 r; ^8 S
    7 q# W, o( O. Nk5 a7 ^) [2 \( b% m( w

    2 Z) p; D% P3 V* g. k" }% R/ y h 7 Q: p9 C3 j3 E6 J
    it
    ! Q1 ~3 O4 W! d2/ h, r; }. C) R/ g: Z

    $ p1 s- p' Q; y4 Y; m, [ )
    : J! n; g9 O; J  u1 C  _2' K2 {+ K  t% S, M' w9 s" u
    1
    ( P, W3 J4 ^9 A$ Q8 y9 W% ]4 S& H$ r7 V- T' D, m

    " O( I& ^, X: X" j
    & U. Z; N# f& s% Nh 0 A+ j; K4 i% v7 }; n
    ij; W8 P; r" v: ^" ~; ^
    2 L) m* B6 O; l! y
    / Q: h3 o3 Y& E  ?" N) Y' m
    / e0 ^7 l9 Z2 G) z, \! Z
    3 b- D3 c/ V8 G9 y

    6 _, p' |8 }' g5 z% \. Y这里需要注意,降维后导致得到的指示向量h hh对应的H HH现在并不能完全指示各样本的归属,因此一般在得到n × k n×kn×k维的矩阵H HH后还需要对每一行进行一次传统的聚类,比如使用K-Means聚类
    / o  C0 s: Y+ T- S5 Y& r* v# W% F: S1 N5 w/ q5 W% }+ W% z5 u( ?
    (2)规范割(常用)
    ! L& ]* E2 }5 v. H- ]' }规范割和比例割类似,只是把比例割的分母∣ A i ∣ |A_{i}|∣A
    ; l; A( Z, ?0 |) H& @: xi
    5 N( ?. p4 y% ]. E
    ; T: w( V3 z; g$ ?& L: A; V- N" t ∣换成了v o l ( A i ) vol(A_{i})vol(A 6 x" K2 s) E5 a: z
    i
    # f4 d/ c2 F9 ]2 v7 l2 Q! k+ O
    % M, q' n; B# R/ q% D ),定义指示向量h i j h_{ij}h 2 o7 V8 n4 m7 u  u3 B! W) W9 p
    ij$ o% q7 Q! ?  b- S) s  R1 ~
    " G4 s- j4 U9 ~1 r7 a$ h2 {
    如下# l" Q% c7 f% q0 w
    ! M/ A6 A: L9 Q" `
    h i j = { 0 , v i ∉ A j v o l ( A i ) , v i ∈ A j h_{ij}=
    % `8 _; }% y# ~{0,vi∉Ajvol(Ai)−−−−−−√,vi∈Aj- X( ~* u* }2 E& Y
    {0,vi∉Ajvol(Ai),vi∈Aj
    5 m7 p0 ~7 ~2 m$ \' s* ^- E6 dh 3 d2 H: n( g1 `
    ij2 I+ b$ L7 H# H/ \8 Y

    ' S3 j: D7 W2 {; c. c ={
    2 L& }: R/ g- |8 ~" r0,v
    : `% b4 V1 ^; S! z6 J% |: M7 di
    / ]0 {$ Y4 j5 t' A! ^3 X4 K# f, N3 M3 U$ Y4 l" S1 {

    3 k# v8 t5 C! A, g& V/+ D7 N' S4 ?; x/ f# K& U
    A 8 V3 i% y6 F# }& K5 j
    j
    ( N* b8 f- J, s8 M2 a9 u5 K9 Z1 V# i9 I$ A* e1 r- g
    ( v# A  O! g+ c' g+ V# \6 B
    vol(A ( Z) [! e, t0 l1 l- U0 x
    i
    & C' O( k1 |& l9 i4 R8 i0 p1 `
    * Z& h" }) l6 A$ b) H( a ): L2 W7 f' V9 x& ?8 p
    $ w  n  L! H; ~4 ^
    ,v , @; Q6 g; K. U
    i
    , Y& z$ z* ~8 l/ u' _# l/ _; N( E7 c; z
    ∈A
    - d6 M; K  _; S  n* A+ p) O2 O: [j
    7 ]2 U2 L$ s' {# n& P5 o" v: j9 F- ^$ R
    # h% r" v7 @1 h

    , c) H! Y6 b9 b+ `% v  N7 e$ s- ~* J! t" }7 c/ Y& W

    9 ?1 x" T6 [+ j; Q于是,对于h i T L h i h_{i}^{T}Lh_{i}h . {/ Y- J. b- H8 E9 B1 D& b
    i- J, d7 p, }! s, G7 Z5 X. D/ a
    T
      [5 t/ D5 r7 _& N- O: Z9 Q1 L2 r3 H$ {% k: W7 c! u
    Lh
    ! K5 V" e% E3 d7 S4 li
    " x2 n* b1 u: Y6 k( b
    ! T4 K, l* ]+ ] ,根据拉普拉斯矩阵性质可知
    ; t- o: u! [6 @! _( f$ Q9 o7 `, M4 @7 `
    对于任意向量f = ( f 1 , . . . , f n ) T ∈ R n f=(f_{1},...,f_{n})^{T} \in R^{n}f=(f 3 N' A- ^0 ]& N9 h& s6 J% o
    1
    9 X- ^9 r. Q5 a0 q% B3 G9 n* C! M; z* |* b7 a$ N! Q! u
    ,...,f - i+ I6 [8 A% f- V
    n
    " w6 o. t: b0 {( G; J4 }9 i0 a' g6 X3 v% F9 m/ D. {
    )
    8 O# {+ q) E+ kT
    4 v2 O0 z+ w5 f% D9 @; j  L8 i6 g! Y ∈R 5 B6 o1 |: E  L1 t
    n
    " o* [6 o7 I) O/ q ,有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
      u& i( C2 i: t" X7 u' hT2 `2 W! O) K& v$ X  N* F
    Lf= ) u# i; i, H. T, |% H6 t! G8 L) ^
    23 l$ \% K) H4 S- E
    1" M, v* H' ]3 x  }

    5 |1 J# e- Y6 u" w; _  N$ p" C3 `5 D& _% m/ Y0 f9 ?
    i,j=1
    & G7 ^) y/ Q  }- f7 Z* g3 D3 C7 ~+ O0 w
    n* e: T9 g- C% O! g) {6 Z

    ; @9 `# _1 G2 x( B2 w! K w ( y- _* k* K; n, C9 D
    ij/ F/ K$ x( U9 _9 y& \+ R9 K: s
    & U5 x+ X! F- x  d
    (f 5 w& D) a' L' Y9 [6 O( c
    i
    6 R! |# U+ q. m$ b0 s! Q: c. C) ^6 Z
    : S% }. r- [$ A0 `1 w1 C( V1 n −f 4 A+ N2 b3 B6 Q1 j/ X$ b6 B
    j( ]& |) l3 I  W+ Y/ G8 m

    3 r- e0 C5 j6 B4 O$ a( a% Q ) 7 I% y/ p6 Z. y% ?6 }
    2
    . Y, f. z: T, V* l4 W* m' V8 f9 ^; N9 P/ s, [
    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})}
    + J+ E9 T' ^; z' q8 p4 b( n/ ph ' z( m# @, n5 y6 w, K
    i
    % X# Q/ S, Z+ M* N" CT( U" j( i8 V# h% ]+ w

    % ~+ ?9 D! {5 n" I- F  o Lh
    5 c0 x3 t( q/ H$ c( A0 |- ci
    8 K# n0 @2 R7 @5 d* l, d% L8 I' s7 ?+ }$ ]! m
    =
    ' {3 n0 p: d) \2
    1 o; x! ~5 r) v2 k5 ~) r8 t* m' p1
    # s& ]  ~& I, ^4 k( |% F. X, w8 h& I# d

    * p8 S4 j9 r2 j# _m=1, v" @* C$ u  [: ~

    . r- S3 X8 {" f( S% j. Q8 y
    . y; j& p% e5 d2 q: q/ b- |# f" x' L, D" y7 H7 s
    n=1
    ) M3 H6 q2 u0 e
    % R& o% {4 E5 X- T; Q6 R7 J4 l0 ~0 k2 p8 m. S' Q7 O) W6 c
    w ' h" H) Y7 K' e  [+ [6 L
    mn
    * O) H; v4 h6 d3 H7 R: s
    % S1 b& `9 c; w" `! `$ ^: D# B (h
    " q9 w1 U* h  H% z: I# o. yim
    ( `. J* v) x4 r) r/ C0 C# b$ n
    3 ^0 H; b/ k7 U3 ~; B' b −h 9 f* {3 p* q8 Y+ _( I  S, t: I  P
    in
    0 x/ q3 y' T2 X% e! ^/ j) P. ?% B4 o6 P1 P4 R: ?1 N. W3 `& o6 k
    )
    / @9 @; L( Q. R* n6 f3 S0 X8 B; _% G) m2
    , z/ f# ~9 H: x- |3 o0 t =
    8 m/ u; c9 K$ B0 A: Z" z  Z% Q9 F4 _) Avol(A
    7 Y; L" j; h$ Q4 I# E* Fi
    : |/ A) X/ S8 z
    9 ]' d" \; d0 g3 z! m+ e. e )
    8 B2 Y) d1 x8 C6 q7 d6 ~cut(A
    / z  t, N: y# [2 `+ Y" o. R- X. x5 c4 oi
    . }5 P+ `' W9 O, m, T: P2 y: D) K& a6 _
    ,
    ; V2 R. k' P) ^# _8 s6 g  V9 ^! XA
    & k  \, j' A2 k6 Rˉ# T! `/ r% p- k! ]) e* ^8 c! W' i( T

    4 @( q3 \- l+ f4 J/ t7 F% X9 w" Gi
    # h3 k4 u" b8 y- U7 F! O" j& R& z# a' M/ G7 V
    )/ z. T5 e8 t; E0 _9 C
    8 I4 p, C  ^8 [

    , u; m1 C" A% H* Z/ b# N4 |" c6 w7 E
    6 G- L5 i' e! r" P严格证明过程请看刘建平博客:链接
    1 {* v9 p/ C, G. K& @' 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 8 F+ F( O  Z- l" m" u
    i
    9 Y+ k8 v# k, X1 b$ CT
    : ^4 q" F$ j8 e! R* F% i" W8 I2 O7 P+ m) S
    Lh & O* T9 F2 V- O; I% G
    i6 ~4 v, z9 [0 J0 Q" H) k

    5 a: _! Z1 P% z! J ,那么对于k kk个子图! r* o- j8 O+ l. W  ]

    . {3 R9 b& q' h+ m, Q( XN 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)+ t1 @8 R' I/ \' C7 U/ C
    NCut(A
    # I1 {' K1 @) |10 N+ L2 a2 k& c

    3 ]4 T  `9 e# u5 D8 M ,A 1 U/ M# v; j9 E8 a1 t& H+ R7 ]9 f+ A
    2: o$ y9 h( f: a
    + |8 t) ]1 t# _! T
    ,...,A ' j2 _+ T/ v* C. [6 d# X$ L: [
    k
    1 |8 r/ K0 l5 v! {% l+ T  _8 W
    0 z: n  w1 R" w )= # ?6 l6 r8 M: }6 ?) T
    i=1
    4 S$ m# F0 ?( W/ B( }8 N( x9 q- _7 ~7 Q4 V* e3 u& ~
    k' \2 K, l6 [& ]: {) C

    7 ^, \5 Z6 T8 M7 {- h) o h
    3 b# B% r" H- H5 V) h- {1 V: |i3 M( Q3 n! k5 R4 X5 N. q
    T& {* j) U" [' F1 K

    3 V, c; O7 K) n& A( Z Lh - w/ r3 s6 r% x; K
    i; a7 `" p8 `3 K6 l+ `9 L! K

    9 }% H4 g# P. I = 6 w) U9 |6 [5 @* Z9 G
    i=1  @7 ]3 S- U. g6 R; I' _
    % \$ X. _. o% g1 }7 e  b
    k
    + v; ~% H) c4 }. \/ [* C/ c. ?% K% g  t
    (H & c+ l5 z: ^9 ^& ~5 E6 C) @! I  g
    T
    ; X# ~0 N7 Y: j LH)
    & H8 s- x6 O5 o5 u) I$ r9 }ii
    % f+ o" e! W$ ?. s, V
    & j  ?2 o- z# [4 I1 d+ k+ P2 i( N =tr(H
    " j0 b1 d, i9 pT
    3 [3 R( u$ k: c. H5 v LH)
    ' u$ v1 @3 t9 y$ g
    ' @8 y% z5 @4 x/ K, M/ y但此时H T H ≠ I H^{T}H \not=IH
    % ~. m7 e+ U0 }# WT. D0 ]3 p+ c7 C2 o4 z! W
    H
    0 p3 r7 f4 L- N+ K4 x( K; U- k
    : Q# @6 ?( P$ c7 o, x5 D=I,而是H T D H = I H^{T}DH =IH
    + `3 e7 @% S0 V) ]4 OT
    8 A0 \4 w! C8 P& n2 Y0 m DH=I
    , g2 Q2 U9 u$ g8 \8 S- }$ Z* {) g( }; v. u
    这是因为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
    ( _' K( S. G( Ii( ]: _/ E2 @* i
    T" b& R9 l' g( g1 {- U. Z
    : @3 f) G  R( U5 ~" l( v
    Dh
    , s" S8 K- m3 I5 J, T& |0 ei
    8 E' O" S" H) z( c; R% T7 E- G. B" V$ a% i
    =
    & A$ E& c1 h5 a+ Rj=1
    - h3 ~  y) y$ i( ~7 k* ^' N  I3 Y1 Y7 F
    n) o3 {- _5 [. |) B4 }8 C  \' [
    , G4 m% b- v7 l4 r  T
    h 8 d" p$ M0 |$ o6 [6 l3 ^9 Q
    ij9 Z6 F) l1 U9 o  T8 w- Y( p9 c
    2
    5 J& r# d9 e  Q% d* G/ H3 l$ t+ Y
    & J3 a$ [8 Q, z& G3 m1 q d 5 @0 G4 k; R, ^0 {+ l6 U. c
    j
    1 f0 c( q1 _& g& B! x! A
    1 P: J8 \) g- ^7 _# u = , `' T. r3 M) z' |# L
    vol(A # L- t3 M0 ]- e% P7 {
    i
    + D/ l# I6 \1 F& f
    + i) j4 W' d8 A )
    : }) I7 Y3 T# ]6 k# K1
    9 a4 Y- l& k, c0 ]
    : ~# a8 P# V$ u' b# M
    2 K% o9 a0 ]/ O5 z) wj∈A + D2 S) a- ?5 \. B; A9 P7 y; H
    i( T/ v6 L% V( Z/ K* F

    ' O& n# G. r4 F* x# ~4 ^( e4 }: f+ _) E2 e3 f

    6 K3 w4 d7 N4 {$ S; s1 W1 @" v
    * A9 M7 F! O! F  j" n9 ]: H d % K2 `2 [9 S' c, [" B' X
    j  R0 W7 m" H* Q/ I2 D, R
    6 l4 m. w( u0 y' x9 g& G0 e
    =
    8 {4 C( K  @& x7 ]. O# lvol(A
    # }: J' b  y" _/ @$ ci
    , D3 U  V1 l1 _" t  Y+ p+ X2 `
    3 K: A3 ?. }; B: W3 D) O )6 o5 S% r) R0 l. o7 {% K8 _- n
    1
    6 t) B) b* p" h+ [1 l' ^; h+ F
    4 o- P" t  w: {/ _: o7 t5 C5 _* B- g vol(A
    ' {9 z! I/ ?0 w- wi
    : @  Z8 O( p7 L6 E9 W( Q3 J1 K. ~# b: v! _- y
    )=1
    6 f  h0 L' x. n  [% @因此,此时切图优化目标为: |7 m4 {& J2 w  X" w' _# E& A

    & i, H8 Y! Q  ^6 ]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% Y8 A4 }, w1 e
    H
    2 ~  c3 N. a# {' X( s! ?# Y2 rargmin
    : m, z5 J& _  Z. ^
    ! @+ b. t0 t. l0 |5 X2 a- I8 p& F5 J& X0 N

    9 V$ r& O6 U3 e tr(H 9 B" }8 ~! ~" R  D4 a, a# f
    T
    9 ^! D/ L7 R& C. T  d LH)s.t.H
    ' t# k/ Y8 a2 H: c% fT! e5 _6 ~3 [8 D- J" q+ |5 u8 Q' ~
    DH=I" p/ C( |+ w6 k
    * X; q9 B0 i6 z- d- _. V3 o
    但是现在矩阵H HH中的指示向量h hh并不是标准正交基,所以需要对H HH做一定转换。令H = D − 1 2 F H=D^{-\frac{1}{2}}FH=D
    % d) X/ y4 Q- F( k" `
    # F/ n  H2 T9 F% H! y! d2 ]$ n29 P2 G9 f2 r# p  `1 z  w; p0 [. M
    1
    ( M% Z+ B2 m2 K0 z" |; Y0 f( `6 X; D+ C- C& K* f& N
    - x8 ?/ @1 c$ x' e5 f$ T8 B" ^
    F,则H T L H = F T D − 1 2 L D − 1 2 F H^{T}LH=F^{T}D^{-\frac{1}{2}}LD^{-\frac{1}{2}}FH
    + m' }6 z6 o, I* z- v4 {T( x0 b( Y% W7 }! U% b
    LH=F   W) C; t) R: s4 N& G6 v
    T
    5 o$ D% Q" b' b0 P4 [ D
      _, \9 T* A) q% _6 N7 k0 p
    ; \* C8 g! d$ i2
    ; u# `* @- }+ h3 [0 V3 D' G1! @% u6 B2 X% o4 ~' p: H

    7 f6 e4 J. y7 Y/ O2 G: O1 j7 l7 c# M$ e) Q! }
    LD
    9 n& d# J) d9 a; r# ?" u8 w& N
    7 P8 B* I. O. m- A3 ?. @7 Z28 v  _, W$ ^$ Q( U  u( d* r
    18 D8 ^/ R0 ^( d+ @' Z) J
      M6 \9 k4 ~4 r0 Z/ S+ u! p

    ( \* O& L/ s. {& F1 `, O F、H T D H = F T F = I H^{T}DH=F^{T}F=IH
    8 z# k3 L2 \/ U: YT  M+ p) N/ I, j$ w9 _' i5 ~/ s
    DH=F
    " Y' U7 Z& y, v- @/ W+ h/ g4 kT) V! b4 `- @7 V, {# ]
    F=I,于是优化目标变更为
    + z" K  c) T' a. P7 H5 Na 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
    7 U# _4 m2 _; h4 E% w4 eF
    3 ?5 c% M" q$ Z$ m- fargmin
    4 c5 @0 N  N7 `, R/ U$ y( c2 f- ?: t7 A9 j9 `$ s

    ; O- M9 m" r* @, H8 i: e' F. ~+ n& n
    $ ]& ~" S% W0 R- A tr(F / J" {+ d9 l5 C$ N
    T
    ! c# H6 P$ D+ V% g; {: n4 O2 h D   s; R2 P0 o3 v6 |  g
    $ C( Y# B7 k' |  R/ J4 J
    2
    8 f) T6 H! p5 d& k) q1
    5 N: }( V& U- e. q& z5 V. P8 d% ^5 o8 W
    . `/ b" A; K9 r
    LD
    2 s3 v( i8 ^, ^
    & s, j9 F9 m" o4 O1 f. l* d  f6 R2
    ) y  O0 u4 k! ^0 A1& |! n. Z6 S( I. ^

    6 _: [+ l  Z) J6 K( B9 y5 x1 D5 g& d+ L% I6 H
    F)s.t.F
    ) I6 C" A' k1 A5 |T
    5 R" U: }5 ^! ^% b4 x& C F=I
    2 Y3 b" a$ ]8 @% B; [# _/ u6 c
    现在,和比例割一样,通过找到D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D
    9 ?1 j4 t# C3 ?  {6 h
    ' w  Z) n- ]' w* g2
    & ]9 G6 @2 G( |* O$ \2 y+ F( x. |1+ R* _9 ^3 x+ P) i2 h$ m" K6 a
    4 s' @6 o4 t7 ]/ ~# I! |) _6 ^

    9 I' p+ R0 ^# r! ^  k9 i, Z( L LD
    : V4 c# q/ e% X# N
    : {" b1 |8 Q. G1 y22 d7 x% G8 y8 r8 p9 w5 X* _- D1 S
    1# G- p" c. {- e! ?) z

    1 ^: J8 k! p7 i# [
    * X9 R- ^+ o* e# E6 c8 J9 u" o (就是之前的L LL)的最小的k kk个特征值,可以得到对应的k kk个特征向量,这k kk特征向量组成一个n nn×k kk维矩阵,也即F FF,最后对F FF进行传统聚类+ }# |) x  F5 Y2 Y7 C+ T

    4 n4 Z- e0 K: C$ h! b# p8 y一般来说,D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D
    " k; }2 Y0 R1 m( F1 V9 ^: Y" ]6 I/ Z2 ?
    26 l2 G3 ~& d: Z) e- s2 n9 y
    10 Z3 w4 [; f: ~7 w3 y5 w; D
    % \3 k: f* |" p8 J. j& Y
    * r+ [( X1 Z5 G8 k
    LD 9 h" w  l# @; y( O- `. j( M
    9 N9 @+ m% |2 J  b" N1 O
    2
    : s: I* J( C& t; y  y! q* u& B, U1
    ! s- L: x8 B( K8 S! Y7 T/ `. a- s# W5 {/ @$ R6 w8 L
    $ K# M! t$ ^+ I2 `0 ^6 G& D
    相当于对L LL做了一次标准化,也即L i j d i ∗ d j \frac{L_{ij}}{\sqrt{d_{i}*d_{j}}}
    ! k9 b3 |6 x' |% n, v% P+ C/ ad
    / z1 a9 s6 X8 ]* V3 f9 I: g7 di8 x: H9 `$ ~3 m
    ) T0 _* E% h4 ?$ `3 T* y& M
    ∗d
    0 g3 Y: E" X, @6 }# p7 w# Bj
    8 m+ G! W0 P' u4 o2 X/ B8 O7 K5 p5 Z, F$ T( D; @
    / e' v5 _8 r( e1 q6 v
    + I3 Y( |0 p* E6 e) @2 t
    3 Z7 I% Q0 d# K( ^0 }' v
    L 9 u) B6 I9 o' ?  A7 E- N/ V  d
    ij4 ~  z* u# E' a
    - E0 P. n; f7 e" ~& J

    $ B8 K+ c7 S: x( c2 ?# H3 I) ?% D- S( v2 L2 i# }  ]/ {

    : _  [3 y4 D# L3 d9 D二:谱聚类算法流程) p- b! s$ {% N, x; K" A+ E3 P$ H, B
    给定数据集D = { x 1 , x 2 , . . . , x n } D=\{x_{1}, x_{2}, ... , x_{n}\}D={x # Q6 n: |6 y% S. I' d3 E. h
    1) s; @- J" c+ b
    6 G4 s* ]' K% O3 G+ }! o/ A
    ,x
    / j2 f: C! d+ O) K( j; Q2* w' \, p1 q; t8 F

    , _) J9 [5 r. X ,...,x
    5 t, y" I/ }* mn
    % o2 z5 m' z  |/ i7 z! Y
    0 t* a3 o7 {6 R4 @ }7 c. m7 S1 s2 f
    - b  d) p( ]) e2 T9 A) W  {
    根据输入的相似矩阵生成方式(一般为高斯核函数)构建相似矩阵S SS(AffinityMatrix)4 s  m0 n8 k' d& ?7 _9 W0 y
    根据相似矩阵S SS构建邻接矩阵W WW,再构建度矩阵D DD0 K; L) P3 s# o/ v7 X
    计算拉普拉斯矩阵L = D − W L=D-WL=D−W$ T: [: O8 i% E8 W
    得到标准化后的拉普拉斯矩阵D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D
    1 `0 z5 ?% q# j/ Q
    % g7 K5 I0 s8 D6 K$ m* m2: h% D! s& ]% k7 n% S& I4 K
    1
    + o2 r  e% n1 c) T! d# F' K2 s4 Z5 c
    - y0 m. B$ O; C8 H% k/ I
    LD , r& y- G& J4 I2 K
    , b0 U' U6 s( e, b* y, g( x
    2
    ' V+ f+ b: |8 C% n/ e4 H13 {' m5 x5 `# N; v+ A

    1 W& J6 L6 z) o$ @* V+ {7 D( H: d4 a; A; Q" }

    % Q' p1 D. Q, A8 g* m计算D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D 4 B3 q) l! [' [6 t9 z. W8 ~" |* X
    / q3 [: Q7 {5 N& u( t" X% d
    2
    : }6 N# ^# C) e0 F1
    6 `7 i8 I# m5 I- Q: }4 O  B( j" X- V. |' _5 [/ l

    ; d, {" F5 r9 }: j9 K. { LD
    1 E9 q6 e7 ~: x" Y. R5 @
    & t9 s( I8 `2 E, m$ o: i20 h7 C; f+ g7 u4 O' _
    1
    4 S5 {' m, W% [
    4 H' ~1 l+ m; u$ n) U$ i9 r* W
    2 c& `9 f) L8 O; ~$ }; W6 A 最小的k kk个特征值对应的特征向量f ff
    9 O# {) @- E+ ]0 a1 t将特征向量f ff组成矩阵并按行标准化,最终组成n nn×k kk维的特征矩阵F FF/ r6 d4 N7 b. X: _9 T) R/ p
    F FF中每一行作为一个k kk维的样本,共n nn个样本,采用某种聚类方法进行聚类,假设聚类维数为k 、 k^{、}k
    , R( r8 Q( R4 b/ e9 q. ^" v) w$ R' |' P6 n/ o
    4 D6 H* [" b( l
    得到簇划分C( c 1 , c 2 , . . . , c k 、 ) (c_{1}, c_{2}, ... , c_{k^{、}})(c 1 p/ R' v' B0 v
    1
    0 {: d$ ]9 l& d1 b
    3 T; z* b: S- ]! { ,c
    # B1 V' g' o9 x0 e2
    + h3 B  n7 ^; X. G8 r+ }" l" s# X; d: W; ]' i9 x# [$ O4 k' q5 \" G
    ,...,c / W( G1 g. o) P6 e" d
    k 7 O# S; K* X- F
      s* x* ?* B! _! x! w  n" ^
    6 W+ O. [! M& U1 ?& X
    9 l/ k; F2 M8 N. i
    )  j$ s7 w' B- y- H! |7 V
    三:Python实现
    8 i* P: o$ i5 J6 l$ b# T9 X: rimport matplotlib.pyplot as plt9 _# W- J' |4 U4 Y5 x; K5 @" W
    import numpy as np
    ' O8 q6 E5 s# Ximport pandas as pd! G' k( M; @/ E9 O8 W/ ^2 c
    from sklearn.cluster import KMeans
    4 N5 k. O( J' Y: W9 K; l, f0 ?from sklearn.metrics.pairwise import rbf_kernel5 o9 i! f2 ~" y* d, L# s* l
    from sklearn.datasets import make_blobs
    3 Y6 K4 d, I0 X) P5 A# D6 B: w- sfrom sklearn.preprocessing import normalize
    " }  v+ a  J7 ]0 a% O8 b
    : C- x# h' w* Y# Sdef get_affinity_matrix(data_set):: V: {7 X. [! b' _( g2 r
        #  利用高斯核函数计算相似矩阵(全连接)
    % f/ X; N5 Y7 i: ~; o! [    rbf = rbf_kernel(data_set)
    ! ^' }) z  ?! Q. {$ E2 Y; x    for i in range(len(rbf)):& W5 V* V( `# L2 [$ E  F
            rbf[i, i] = 0
    ! n% F. L( B: M& F: R! j    return rbf# W4 G* t" F  x2 ~' S3 t
    $ v5 H* W- P: I0 x8 O. I

    - E$ J7 y0 |3 R& u0 d: ]5 Udef distance(x1, x2):
    8 Q2 I: |+ u, z% e9 o# Z    """
    6 {5 O5 a7 F6 Q% u" H' M    获得两个样本点之间的距离# n4 ^+ l7 S; \$ b) u0 h
        :param x1: 样本点1# A& L1 A: L. R. U: L
        :param x2: 样本点2: e/ F, c; g: X8 P
        :return:
    + k0 K: i, d: ]    """' w# Q  r8 t2 [
        dist = np.sqrt(np.power(x1-x2,2).sum()): K# v! `2 e: u* B* j
        return dist
    # v; ]& \& h2 u
    + z: a! [1 k9 H0 Ndef get_dist_matrix(data):' b7 l' ^  z" l5 g8 {, ^
        """$ O. {% p' s4 u# w# n
        获取距离矩阵; w; ?8 P" u5 d; g$ s
        :param data: 样本集合4 d& F- [; Z6 y( @
        :return: 距离矩阵* M& r! c3 W: G( ?, v* R
        """0 u' ?* x# _% |7 ~3 w" M
        n = len(data)  #样本总数
    % @8 u4 x% i- u, H9 @    dist_matrix = np.zeros((n, n)) # 初始化邻接矩阵为n×n的全0矩阵
    : |1 x. q- A. n    for i in range(n):  ^# z$ B" \: \5 ~& Y. ?
            for j in range(i+1, n):' C9 C- x, C5 H2 j9 B( n" A5 K
                dist_matrix[j] = dist_matrix[j] = distance(data, data[j])2 m) p* `1 z6 n" M  k0 f. M
        return dist_matrix
    % ?2 E' q; s, _& P3 P9 a- v2 ?. x: j6 Z  q! I  e
    def get_W(data, k):
    1 F  x3 W& E  R    # 获取邻接矩阵(K邻近法)
    1 x# b" j& A9 U5 P7 u! j    n = len(data)( v/ {) ?7 T5 c
        dist_matrix = get_dist_matrix(data)( f- m' \5 t! T- ]. [8 B
        W = np.zeros((n, n))
    - I, ^# t. T& y$ j% X  }" ^3 n    for idx, item in enumerate(dist_matrix):
    , H! i- d0 h2 D' V        idx_array = np.argsort(item)  # 每一行距离列表进行排序,得到对应的索引列表
    1 Q- B% z/ q7 H& \! |1 \, V% Q        W[idx][idx_array[1:k+1]] = 1
    0 p+ @. e" V6 n" S0 i' ]: h8 T. \    transpW =np.transpose(W)
    ( a; X7 @$ U% a    return (W+transpW)/26 y) e& X$ r( q9 e4 ], D

    ) l" [6 ?9 R7 Hdef spectral_clustering(data_set, k):
    . h$ |! ?3 l, h% T6 l9 I    # 利用相似矩阵S得到邻接矩阵W% @3 _) Y) Z9 l9 o' {, R* `
        W = get_affinity_matrix(data_set)  #高斯核函数(全连接法)  ^9 ^; A; ^8 \
        #  W = get_W(data_set, k)  # K邻近法, N# H/ o7 ^+ V! X3 R
    ' A2 j, @# f. a( E3 {; c/ A
        # 计算度矩阵D,并得到矩阵D的1/2次方的逆矩阵(便于计算拉普拉斯矩阵); |3 W& a( G# t+ w6 F; |, A
        D_inv = np.diag(np.power(np.sum(W, axis=1), -0.5)). e. _% ^( ~" e( S2 ?

    & G8 g) ^) d1 [+ \( u. P: ]' D    # 计算拉普拉斯矩阵L=D-W
    0 L1 y! A# ^' D( k+ q; x    # 标准化拉普拉斯矩阵l = D_inv*L*D_inv=I-D_inv*W*D_inv
    % f# f6 M9 X* E    L = np.eye(len(data_set)) - np.dot(np.dot(D_inv, W), D_inv); \' `! Y4 y$ p- ?9 _0 ?
    / r. f8 q4 X9 i& X6 e/ x
        # 得到特征值和特征向量. ~5 b" f; {6 R6 ]8 N! v2 E
        eigvals, eigvecs = np.linalg.eig(L)
    / r5 h: q2 C5 u1 I
    8 V, T! j: J. Z. K* c7 n    # 找到前k个最小的特征值(索引)
    9 m- j& [4 w3 y( d4 Q/ ^8 \    k_smallest_eigvals_index = np.argsort(eigvals)[:k]' k3 Y; @, a+ i4 O2 v" h

    ( x9 |/ |0 F: N, ]3 s) E  Z; c5 a. q    # 取出这k小特征值对应的特征向量,并正则化
    9 H2 ]4 f3 W% {    k_smallest_eigvecs = normalize(eigvecs[:, k_smallest_eigvals_index])2 {; G3 e3 f* x5 f  B2 N

    , E& i5 ~0 \' d" i' w% \' \    # 使用K_Means聚类, O* K) d7 x9 u- p
        return KMeans(n_clusters=k).fit_predict(k_smallest_eigvecs)
    & s) k- j6 T1 C0 `; V; i4 M7 @6 H7 U
    5 m; ]& H& ^, N
    raw_data = pd.read_csv(r'E:\Postgraduate\Dataset\jain.csv', header=None)
    / M4 D$ e) G: M0 X5 ?, R3 p9 e. traw_data.columns = ['X', 'Y']7 @0 g) ]+ c" V! m
    x_axis = 'X'! ]; d) W* n1 T
    y_axis = 'Y'
    * K( n# U! [! ]! `
    & e1 C5 t5 r; i" u9 i' v% Fexamples_num = raw_data.shape[0]
    : Z. K3 N8 d3 y, k4 o& V3 T8 _. Ntrain_data = raw_data[[x_axis, y_axis]].values.reshape(examples_num, 2)) u5 z* G# C3 m! q
    ' o- j7 d% i. t; \
    ; w9 {$ F3 w1 b  N
    min_vals = train_data.min(0)2 q+ t. l, i4 H
    max_vals = train_data.max(0)  k9 E" C. _  F, q- K" }' i" o
    ranges = max_vals - min_vals
    3 ?  y, n) g+ p) T4 |- l9 e( Unormal_data = np.zeros(np.shape(train_data))( D9 ^- l9 P% y( b  h. n+ q
    nums = train_data.shape[0]
    9 p, J% T) P( o0 x2 T# ?  M+ qnormal_data = train_data - np.tile(min_vals, (nums, 1))
    / K7 W& ]: o6 Q" t- Cnormal_data = normal_data / np.tile(ranges, (nums, 1))7 n% w! V; X* Q. p: N

    9 E1 w, r) g5 D3 g- a, slabels = spectral_clustering(normal_data, 2)' }7 u5 R) q* }( L" C7 J# O

    % g# {/ @  j3 S8 e( E" ^( h# 原数据# h6 w9 D' q# ^( w3 n8 R; z; C
    fig, (ax0, ax1) = plt.subplots(ncols=2)3 O4 O. p# B6 U: h; p
    ax0.scatter(normal_data[:, 0], normal_data[:, 1], c='black')  _; ]6 E, l; \3 j
    ax0.set_title('raw data')4 N& }+ J$ @0 u# n3 w
    # 谱聚类结果- {3 L8 l2 _) |8 N2 v
    ax1.scatter(normal_data[:, 0], normal_data[:, 1], c=labels)
    ( N$ r- U8 d6 l- h3 _ax1.set_title('Spectral Clustering')4 A/ Y6 J* ~' b/ W  f
    6 O- q) x0 \- l* ?- g
    plt.show()
    ( t- U6 s$ G3 z2 z& a) h& F! T, U/ {2 o
    11 f  n- V# _& r+ q5 [- i
    2; h/ H; E' ^& ]" t8 I  X0 M( r
    3
    , ^8 z# p$ F" j# l41 p% k+ C& a% d
    5$ D5 e3 U3 Y8 k6 A) b1 f
    6. H4 ~" X$ ?$ M1 Y. S
    7, r+ Y% s! Y: F, |' b
    8
    - V! G/ e9 F/ y* {/ c  f4 g, K" ^* `9; L! o; `$ v  }, @
    10& N/ ~0 t2 ?& ?8 [& w
    11
      U) ^: V) x4 n4 D12
    9 }8 J! P' C) t/ x9 Z13
    ; W; T9 Y2 _1 Y) x8 M2 A- F14* h5 @7 x9 f0 v, y
    15( _( c. l: `5 L, M
    16* \5 H( R5 Y7 F9 o5 W& x2 }
    17! G0 T: c& i: k4 z
    18
      f7 ~: i# M5 U: ^191 l) [! E1 z6 v3 M% u, X
    206 d9 Y1 Q: M! v! c  X7 W& W
    21" G! e6 i9 r: x% M3 `5 D
    228 u% m: \' G: {) Q& R' t
    23/ e# x8 E8 R+ n% j" k. H
    24
    + Q4 Y- W, h  O/ ]7 o25: _, k! r( w3 g# o) ?8 b0 Y' L
    26
    7 X% Z! {$ ~6 l. G& b/ J3 i$ i27
    9 x& I% R0 n7 q$ B28
    + _. s" d! l% m. v7 m29
    " `5 [( \7 i) T2 r% R* R' A& U5 X1 G30* v; L, _- a" N' w' H# o
    31
    * V% l- o+ i4 J' t, ~" `. l32
    4 R) l5 f$ z  Z! z$ s3 C33$ i+ `  T* J7 z( s( ]- c
    34
    " e: I0 v* h+ `* I% g9 q35
    0 @3 g& a/ e/ i4 Z: D36
    + i+ ~3 m3 u# V& }6 l37
    ' N- \" y; r! U1 C38$ T" E3 X! \0 J2 C' l
    39# G& m; {3 |9 W# p
    40+ L. I) _  U3 g
    41
    9 j; H3 p, `; I" }# h, c' g428 @8 s/ c* A0 i% n" F- p8 L
    43' M; {, `; X! I5 n* h3 c1 Z) |
    441 S! U  G1 q( [- t
    45
    ( D, N) B. V. Z7 w, W( S3 t! T- x9 o46
    & {- ?% g4 A5 `# J0 E3 E2 r47
    $ g4 f; I* t, J, g48
    1 S* x. L$ ~9 X' ^491 v! s# [8 X' C3 @: z3 L$ [6 Y- _
    50( `; W& s" d! q; m4 j# P' u4 H
    51
    , N% H# G* c: _& Y3 Y* \52* E% N. [  h# i( _2 [
    53
    , @: Z% d7 d) e3 N! d545 O9 E* t3 o% s1 a6 s6 {
    55
    4 N0 \$ t8 Z& ^# _56
    + U0 U: t; }; L* Q57' V+ y4 C# X* R: H
    58" H" T: d) `6 r$ [4 y3 }2 S) c; t
    59
    / P1 G+ G6 }" m' W% l" d0 h! h4 Q60
    1 I/ f3 y( a; F( m$ G61# k4 M7 V$ V$ |# r
    62
    / ?0 X3 e- }8 y1 H% P8 f8 h63
    8 L/ K4 x' B# i1 D64
    . P4 V2 u! F( F* j' H; m2 J" Q65
    , l4 q$ l: S8 o) ~0 e66
    2 y, `! w9 e5 V: L# V67
    ' m" l. \0 s: f  _" B68
    6 D4 T7 b  B) w& b69
    1 H' g' r( D0 m" ^5 |70
    " _$ h3 n% v8 Y! [8 p( h0 f71
    2 U; a6 i9 W2 R. F1 l728 f4 ]% ?; C' X' ?6 [# s! T
    737 |, S. P- q6 D8 o$ B$ R
    74  {+ [8 f. U' L2 ~7 |! H4 \0 }* U" f
    75
    / x0 N& e# j4 u- k* J76
    3 e0 Z, T7 o1 |9 _/ C; d77$ J& Q1 |% `! d5 W; q1 w4 A! ~
    78  {( E; _9 K7 C) V. k# Q
    79
    1 L) w0 w5 i& b4 i3 ~0 h80
    / t' R3 Z. f& C3 b. n- A0 Z81
    2 Y: c  R$ w6 t: R82
    ' K* ?! J2 R' F, C% Y83! c. E' t. Y9 w/ {
    84
    3 u& s+ S$ ?  F85
    ! S+ ?, H% u8 u, e86& q$ n6 d& I% W- ~& ]3 F
    87
    + v. u( \% |3 Z* N5 ]885 k+ m5 Y" V8 o, _# f
    89' a+ H* o. x% m4 ~# W& k4 {
    90. H7 C5 B4 V( _0 B7 e5 H' }
    91
    $ u+ M" h2 e% h: U: _& U92
    / M" |" I# M# {6 S93
    - r  M0 T9 x( s- T# x/ h94. m& H6 g! |4 p, ?0 ?+ \& o8 `; E0 t
    954 y1 i/ F$ [& e3 e- L8 c, ^
    96
    , T* ?, B% r6 ?) [- J97
    4 K- R% q# ]+ {+ \/ i98
    2 _8 F. y2 m4 D" l+ l8 d, R. b% J99
    * `# W% p' f' u' X- g6 d100
    # N4 Z3 F/ y$ p2 @6 Y; r101
      F( r9 s: [: H- f( c6 u$ f102: k+ B5 `" f' ^( c3 A
    103
    & O) b* g+ W% G9 X(高斯核函数)' f: q3 k2 p, Y! }. w* f- s/ g

    " M1 v' `$ D1 C* k' w" |. F4 Z; @9 I" r; s* l4 B0 k
    (K邻近法)8 T2 N3 r; r. a7 A3 N; ^

    - z& a! }3 Y! ^
    $ S, t. M8 \# }9 ], ?& n1 E; k4 _( P四:谱聚类算法优缺点6 a, K; I( e- e0 T4 `
    (1)优点
    6 `  N( k3 t# `" r2 d& p谱聚类只需要数据之间的相似度矩阵,所以对于稀疏数据的聚类很有效( Q4 g% H8 k. m. A; q" ]
    使用了降维,因此处理高纬数据聚类时复杂度要明显低于传统聚类算法
    % j! v. {: p% t+ c谱聚类算法建立在谱图理论基础上,与传统聚类算法相比,它具有能在任意形状的样本空间上聚类且收敛于全局最优解+ c: n" h( ]) j$ o
    (2)缺点
    6 p5 t, \6 q# t! o如果最终聚类的维度非常高,则由于降维的幅度不够,导致算法的运行速度和最后效果都不是很好
    : W) e1 j) L+ {( H+ G6 M: Q聚类效果依赖于相似度矩阵,所以不同的相似度矩阵得到的最终聚类效果大不同相同
    1 Q, x1 d' S# ^/ ?6 A————————————————
      v. ]3 ~' O* b6 _) I1 {/ Y版权声明:本文为CSDN博主「快乐江湖」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。4 q8 A7 k6 i6 ?$ c  n
    原文链接:https://blog.csdn.net/qq_39183034/article/details/1267474943 A( E" j% T  G& v3 d! [, I* o! I
    # y" h7 p* h: r/ [- d4 k3 R
    8 U, ^/ _" X/ Z4 k% Z: c/ P
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-4-21 20:13 , Processed in 0.509179 second(s), 51 queries .

    回顶部