QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3102|回复: 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
    【数据聚类】第八章第二节:谱聚类算法之切图聚类、算法流程及其实现: Q* |; ^" V) o: j
    + [0 s6 t* S$ ?0 a% ?
    本文部分内容源自刘建平博客,在此基础上进行总结拓展% W- H7 b, n8 O0 ?/ P% ~
    / m5 o0 Z  k4 c/ L% k5 N3 C& i
    原文链接
    / ^4 ^' F6 A6 V文章目录
    5 l- k, I" W% u4 v一:谱聚类与图划分
    3 J& M! W9 I, n. Y% @, x( |(1)比例割. H/ t% b7 F. e# g" d
    (2)规范割(常用)+ ]0 ~$ v. ^: ^6 f: u3 b; G4 G. G
    二:谱聚类算法流程
    ) X; r4 S) c( N  n9 \6 L三:Python实现8 ?0 z( c. D+ X
    四:谱聚类算法优缺点5 O0 ]. Y+ f1 D8 ^
    (1)优点
    2 P  [+ |1 ]$ v, M(2)缺点
    4 c% p4 p! t9 j一:谱聚类与图划分! Q) q7 ?; v0 w* Q9 n* r
    无向图切图:谱聚类算法根据数据点之间的相似度将数据点划分到不同簇中,因此将数据点映射到无向图之后,可以转化为图划分的问题。对于无向图G GG,切图的目标是将图G ( V , E ) G(V,E)G(V,E)切分成互相无连接k kk个子图,其中3 c# T4 K/ v, m$ p1 a

    3 n( t- Z1 w$ y+ D. A每个子图点的集合为{ A 1 , A 2 , . . . , A k } \{A_{1},A_{2},...,A_{k}\}{A ; o7 J6 R5 Y' c' w, H6 O: Z, G  T
    1
    * o. b+ ]2 w; J' b+ `​
    1 b3 P; F- r; P, d; Z+ ] ,A . E, z0 b" n6 \/ i- m+ c
    28 L1 H  \' e6 r" {$ f! e, z
    ​) s( b7 {# m! L- K! c: v6 k% U) ~  j
    ,...,A
    9 k3 j% d0 a' N; e- o4 t9 qk
    9 u, `- F* p' D( ^1 I​
    9 G# Q; o7 l+ l, W },且满足A i ∩ A j = ∅ A_{i}\cap A_{j}=\emptyA . b% H2 ^' Y: t9 m3 j0 @* i
    i8 d6 ?8 A8 q. p8 A
    ​2 |9 l: T8 D( G& ?4 w/ [6 R
    ∩A 5 j% ]4 [# I/ L" ^0 f- A
    j
    6 z( ^4 j7 ^8 N: z7 i* \​% ]# n% t( v, A& s. e/ `4 n
    =∅、A 1 ∪ A 2 ∪ . . . ∪ A k = V A_{1}\cup A_{2}\cup ... \cup A_{k}=VA 7 I1 g5 M- t4 s! E" ]& \
    1; a3 P( ]+ d  {4 Q9 w  j
    ​% a( g" W4 F- N' [  @6 d) c4 O; W9 A
    ∪A 1 {3 Z( q8 v* d2 F  l! C; K
    2* m! ~7 F! j; o0 Q% T3 h
    ​
    ! E9 A4 `3 ?' e; I3 z$ I ∪...∪A
    0 ]# ~. s1 r3 V1 U' a( z) C$ Pk
    9 [1 R$ i( N( v1 V8 B! V, I​0 |; C9 [% `+ p3 {( h1 }8 n
    =V
    ; c8 z6 w3 l' A# Q4 j* w对于任意两个子图点的集合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)= * v, o/ s# u; y
    i∈A,j∈B
    " A/ ?1 m. C4 _∑0 y' U) `5 a  b
    ​
      f3 Y& \8 g) k) r; G/ J) d w
    1 h5 e+ j" Y! e2 Qij
    / {) J! q. S. r3 L, j7 R5 J​
    : ~2 c/ p3 f; T; v+ J. ?6 m
    / N+ i4 c! k8 M1 ^& C* J  Q$ D对于k kk个子图点的集合{ A 1 , A 2 , . . . , A k } \{A_{1},A_{2},...,A_{k}\}{A # t- s( m2 ?# ^1 F. |+ q5 ?# U
    1
    8 J' a5 R$ K" C( `7 H' L​
    ; Y/ p  ^, A8 r8 q1 N" y ,A 7 N5 T8 }6 u. z6 e+ V
    2" e9 Q8 a4 o; f+ T$ L; ?$ P
    ​7 q7 X$ }1 O. l
    ,...,A + A3 z6 B& y! u* N/ e& |
    k
      q. D9 g4 r: z+ F$ o8 f8 Q​
    5 s, E$ s. T$ E4 S0 G. a },定义切图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
    0 B( ?" w' `/ P  z1
    / S; b! b5 K' G0 Y​
      A. K8 W1 \: U ,A
    / X8 W9 I  Y0 E* m2 r2
    . c* ^1 S7 A6 K, N: f; @* Z* h​
    , \, o( \) o# w# q ,...,A / Y/ j) Q3 j! m/ M3 g6 D
    k; h4 \6 G  Z; t
    ​( K+ ~4 x3 y8 D9 m/ v% `
    )= / z7 S. x* ?, q. k9 V0 G$ {
    2: k# D  [( t3 q# M
    1
    7 \, Z, e; `1 E& ]​  M3 b2 H. M6 o$ J  ~8 U4 M8 }% m

    * p* _- C6 f2 }i=1
    & M: j# r2 h9 [/ j1 p/ r, K∑
    , x. F! }! K; ]8 L( Nk& ~* T0 r% `  A; x! c
    ​
    / _$ H2 K0 X2 I1 _ W(A
    7 _+ L* {2 A2 X+ d8 U- c$ e! oi
    ' v& r  m. |% l3 u3 q3 M​3 B0 h9 V" ?5 w. J  P6 `. n) Z
    ,
    9 y! ?) i+ P  l- v* n( z& c" HA9 _5 O6 S* T! `
    ˉ) G* b, a* g) j2 o- ]: B3 H) B% T

    3 f( f) v/ k5 ni
    3 }1 J7 @7 b! d4 N) c" i​/ Y4 W; `; ?# E4 |
    ) (其中A ˉ i \bar A_{i}
    9 h6 ^- r, A0 ?) ]2 K' dA& O4 D8 L) _. {/ Q
    ˉ
    : f( t8 z8 c" q# u; L
    0 |+ K5 k3 ?# t, ~' g' L# p0 n% Hi$ \1 _; [. f) \- l9 A$ ]6 w
    ​1 |+ S  n" t: \; ?9 @+ V. U
    为A i A_{i}A 6 u, n+ e0 {9 z2 y; K$ C
    i
    * e& t4 s) Y- E) _5 C​
    5 h  n; Q7 s- M% l2 g 的补集). c/ W  D1 ^7 M/ t/ R4 X* m9 p" w
    可以看出,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 : n, p% Z2 x) [/ t$ F! B
    1# g( k7 ^" c4 g) i1 }# o9 r
    ​
    & F8 f# [3 O& ~2 ]' u/ N8 G ,A 7 `' y' x2 e) P2 Y$ T$ n  g
    2# Z+ g' T* t1 N$ m8 d2 K% y( \
    ​
    6 R& u$ Y1 i* h ,...,A
    ( L% B' `) p7 ^k" z' z& i$ X/ L% i' y! ~
    ​
    8 u( P6 ?/ |( L6 t+ ~9 b )= + L5 |3 }! i$ c, D
    2+ G; u6 y9 @7 W
    1
    ( M  D! i  x. k& K2 v/ f4 F$ ]​- q3 K# N  r. y" W2 B7 Z
      p' L8 R( y) K
    i=1
    ( i: t: H. m% x9 G: Z∑, X* z8 y  o! Y% C- v
    k
    * e; F, g4 m# R7 b9 r+ p​2 t( A  J5 e! \: C: L4 x$ n
    W(A 7 o, P8 A9 O7 V8 f1 K" Y
    i
    . ]# N3 d' t- M8 u& A' t6 J+ D​: P' H( v& u: `7 d* C! \
    ,
    , A7 c, l7 G: _0 d% f6 GA
    7 [0 z- L; C1 j9 Q6 qˉ8 [4 t- E8 |* F# {

    8 K# E( h  Z# K" C, O' c' si
    / M( _+ @" y8 U2 W) v​
    . O& W0 s+ Y2 c* d )在划分子图时并没有考虑每个子图中节点的个数。所以在某些情况下,最小化c u t ( A 1 , A 2 , . . . , A k ) cut(A_{1},A_{2},...,A_{k})cut(A 4 q: s$ t2 P+ P8 k4 i% f! K8 p
    1
    ; c$ X6 v; S  `  w: c( D! r3 a​
    " |! x0 T) [2 Y0 o- j4 ?. c. j ,A 3 N3 V" v# S' h
    2" _9 j' `. l) _% |) J' b: i1 B& t
    ​
    3 s' V4 `7 ?; w2 q ,...,A
    2 A( Y0 W: V$ }k
    ( `- p) R7 a% X+ v# u​
    3 i) [! V0 S& A- H4 _' I )可能会把一个数据点或是很少数据点看做一个子图,导致子图划分结果不平衡- s/ {7 k) ]4 M3 h- o; K2 E5 t
    : {+ J* i. X& D; K
    例如下图,选择一个权重最小的边缘的点,比如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 q( A$ I  Z) I  h! h; b! {
    10 p/ R6 t/ j; T) _
    ​
    + F3 q2 u) K. v6 D8 F& N ,A 7 U) \- E) Y8 h5 H
    2
    9 q* G6 S  l" y* s. G​
    1 g/ ~, E5 F, u5 R* i( ] ,...,A & y2 t. O& e6 h$ g* ~2 ]% l  [
    k6 T3 U( Q1 \% ?% N4 {1 X4 d
    ​
    * R5 z$ O- J( Z )但是却不是最优的切图/ r- k8 T# v8 C. t

    3 k  M5 f; V/ N, a3 {# A% C3 _为了解决这个问题,会引入一些正则化方法。最常用的两种方法为比例割和规范割' ?+ ~6 E# Y0 K% C9 l2 |' Q
    , M3 o5 j; U6 a" b9 I$ g
    比例割: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
    $ h( y* T, o' b' r. F+ W1
      z% d7 }2 S; h- Y4 s) d​% R) p" B2 J+ p  s) r1 X
    ,A
    " I8 w3 N* }! U( G" u/ z2
    ' f, }/ T* H; s0 Z& ^​, A4 J7 ~; K3 X0 W2 t1 A
    ,...,A
    ; s5 o; N6 R1 B& pk
    ' L  c; o" B$ U+ @% r* T​* ?) d/ J; F2 l- w+ x2 V
    )=
    2 _) d! p( K- b: Y4 W, T2
    . q; ~* ], k9 U" t/ J9 S14 H" k; V3 h: T4 U1 ^* J2 j$ J& Z
    ​
    , z6 W. L! g4 m/ V2 P9 ~" N+ L! k$ C9 Z& W) `" `) X
    i=1
    0 Y6 ^4 ]- ?3 f: R) y( N∑
    / i  q, r6 L8 }4 wk7 Y  L9 }; ]) x5 m
    ​  g! R3 }' Q, A0 ^" k5 j! ~

    5 m# u. ?& e% F' M∣A 1 q5 ^) [) z, [# J9 {, r- T! P
    i
    ; Q$ P7 ]6 ]+ w" Q9 C​
    " r. p4 J+ K4 J- q. t  K2 z7 W& E ∣
    1 |+ v& q' C' Q8 ]; WW(A   \! W  r7 M' O7 L7 q, Y- Y
    i5 E/ i+ t6 {. v4 R. q/ ~5 n6 O
    ​$ Q4 ~1 U. S& r
    , 1 ~) `2 H" C+ H/ Z& M  d- o9 t
    A
    % a3 M3 O# q, B! k* k( E7 J, j, bˉ/ m" k8 n$ w( _; h4 `
    " @' g2 i& `) U- h) l
    i( o$ H5 Q, ?7 T% J
    ​
    % b% v2 q  x. J ); x2 |. T0 x. }% m, C- ^( I
    ​( W$ `1 ?" d3 V: x

    $ \8 I' ^/ i) L$ D5 v规范割: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
    # b! Q3 H" B0 V1
    4 g* W6 F* A. p+ n+ f4 m​" _; u- Y; ?1 _' f" s; b
    ,A
    3 o+ A7 V; o6 i' o; e  a4 t2
    " a* n) q6 g& F9 l4 a​& I' p. g4 \8 `9 ]" Y3 W: j/ W' [
    ,...,A ' r: E: g5 |0 }7 e- S) w' _$ X
    k
    7 B2 b7 g: L* l​
    ! w6 B( N9 Q! K1 ~" Q5 |7 b )=
    ' t( P4 B1 ]/ v% |5 j9 }8 V( V1 D/ u2
    # A& E' ?2 H! d6 X1 `" A& Y15 l  `+ H1 V$ X1 [4 e6 U$ k% V5 q
    ​
    ; E# S4 w: V3 v' p
    ! h6 A7 x8 D5 Ri=1
    5 W0 \+ o8 K: q0 k7 y∑
    ( d  P" c+ G3 n8 g" p- Rk" f* V, r& ^# n' ?
    ​9 q% a  Y: }) Q* f1 n2 f. ~

    ' g4 ]3 b4 C8 @; G" v5 yvol(A " S9 s7 ]' k" h- \
    i
    * s+ d+ G3 X' k$ E) P/ Y- E  V" C" L​  p. a7 T$ a' d& L: {, i1 r6 ]
    )
    2 w% j# d) j, _8 _W(A - z- ^: d" f& ~- [
    i. J+ s) k. ]/ k1 a
    ​/ |8 N5 a7 Z! N4 z
    , , J9 q: M" H+ l
    A% x+ G3 ?9 I! U" R
    ˉ
    : I( Q5 _, [  }6 ^( H$ u4 K" }9 q
    i
    ; Y; E( H; x7 ?0 b​6 z) c* X7 M# W9 U" M( g
    )
    8 r0 \( i& o( `7 [/ E* ?# _7 f​
    / P/ L1 h# {: ^- D  k, _$ R* F, E; B8 a1 @) ^
    (1)比例割
    # J/ }" p, G( w% j( n# o引入指示向量(点击可查看指示向量定义)h j ∈ { h 1 , h 2 , . . . , h k } h_{j}\in\{h_{1},h_{2},...,h_{k}\}h & h& X- b' c4 f! b4 t3 r' O1 w8 v
    j, s0 c! w( l$ s$ t$ B9 d9 _( \8 U
    ​
    # K8 d; z( \$ f ∈{h
    " V9 D/ d( M- {1! E7 A9 r5 M& R. ^: [
    ​
    8 F. V( t7 t5 @+ }4 E ,h
    : j9 m/ B4 W' p. H' Y% k2
    * f% i8 k! ]5 W- {  l2 Z& ?2 z" `​
    ' ^/ K0 Y& l8 b9 M+ k, }* g3 O8 ^+ ^ ,...,h 0 w7 C4 Y' O, d% w- Z6 R: @
    k% p1 s/ s8 v8 {  c7 F1 L% ?% T/ U% p8 D
    ​
    5 w% ]! o3 R, A3 z },j = 1 , 2 , . . . , k j=1,2,...,kj=1,2,...,k。对于任意一个向量h j h_{j}h 0 u( @1 s/ C) q$ @4 z
    j& I7 U! q1 V3 E' M. m- y
    ​
    " `! u7 o* [( l! Q3 G# M ,它是一个n nn维向量(n nn表示样本数),定义h i j h_{ij}h , n/ Q& l+ w- k  \' k- k
    ij
    * u1 s# r1 l5 r​1 |/ Z8 e3 B9 `' m& f# n, b) E
    如下4 D+ y% }& M  n7 i% o

    ! e( J/ K/ n2 c. @6 a: hh i j = { 0 , v i ∉ A j ∣ A j ∣ , v i ∈ A j h_{ij}=; _7 F; b/ x2 y
    {0,vi∉Aj|Aj|−−−√,vi∈Aj  W: E' K( o# j% \1 l1 m
    {0,vi∉Aj|Aj|,vi∈Aj. w; |: ^2 p  S2 p4 J1 |
    h : W: Q! u; E/ K1 p, m2 R
    ij
    * c( N- {% Y' E$ ~; b1 Y$ b​
      B2 g# A, Z/ j8 l* b ={ 7 e! D! R9 g: Y$ d
    0,v
    0 Q3 G8 W, z' z! fi( N- @% l. H, k6 m6 d
    ​1 w1 B( p7 [: o/ ]  Y4 l
    ∈1 Z7 f% x, r0 w, j" \; l% A# A+ ^2 x# a
    /) `5 a! D. b# O' y! q
    A ; ]3 a* A% X* T/ R, e
    j0 o+ g9 N  `+ _& S+ Z2 a2 W
    ​
    % W8 }/ v0 b) _* B: }+ Y+ k* X- S" T. H; t
    ∣A 8 M  g! B' v0 g( S
    j# i' v. B4 V  C3 h6 a. U$ w
    ​
    ( d5 g/ m1 h/ y ∣( L$ A, v1 w& Q) l" q
    ​  M9 k. ?9 x2 I6 R7 H/ C
    ,v
    # h7 [5 E) W' [1 yi
    9 g+ l& d& G4 j​
    * t  e% f( ~6 G$ j- ? ∈A
    # h9 n7 `- S. r/ J  g0 jj8 k  W$ l+ W8 \" q
    ​
    8 y* F) F9 H- I( T0 T
    " \+ \* i! a; U$ y+ t​
    2 s+ M" n  K5 [4 D) R4 a' J  \  g; K9 a$ }9 U

    ; f$ t/ @2 I# B% n% o+ e* Y于是,对于h i T L h i h_{i}^{T}Lh_{i}h
    6 j& f+ ]! W/ K# k. \$ ci4 t' `* [7 C  [, m2 k$ f/ K
    T1 s' |6 f) m8 B  c2 }
    ​
    ' e/ Y$ |/ o" _" ] Lh
    ) @8 B9 ?6 ?5 s7 n7 ]4 s( u2 u0 Wi
    % Y4 F) g# t9 \3 `0 ]9 o# K​/ W  b0 U6 j0 w  U
    ,根据拉普拉斯矩阵性质可知7 ~: h# Z% |1 u. B

    # v0 `4 y7 p; n) Y/ m对于任意向量f = ( f 1 , . . . , f n ) T ∈ R n f=(f_{1},...,f_{n})^{T} \in R^{n}f=(f
    * ^( p  k  L& L& N1. E0 u  L4 w9 n0 }8 ]. V- D% n
    ​$ I& z( ~( a6 [+ }$ @2 `9 Z8 P( |
    ,...,f
    - w3 V( N9 p! C! I( ^: s& Hn
    ' {; K0 E2 U1 Z6 ]1 [​+ _1 x, ~$ C  m, x
    )
    & _9 r; `, F9 x+ }T
    1 l" q1 H2 n1 N# L/ k ∈R " s& X9 l% Q5 N! B/ R. W$ a- m
    n- {. F- m6 W! b
    ,有f T L f = 1 2 ∑ i , j = 1 n w i j ( f i − f j ) 2 f^{T}Lf=\frac{1}{2}\sum\limits_{i,j=1}^{n}w_{ij}(f_{i}-f_{j})^{2}f , ]5 ~6 @0 f- V) Q8 F; D# O
    T1 V. _' V5 I1 x5 P* }
    Lf=
    , [1 w# t. g2 e! i2 M! f- Y, v2
    . L. {# G, Y0 [: V8 J9 O' T1
    5 p/ S3 y1 k$ u5 V: U​
    3 @( |. D6 j9 Y9 O, W  S% M/ d( |5 M
    7 [2 |2 K. `; f( k, d5 J/ D! Mi,j=1
    7 w. m" {* ^! y+ D∑2 {  @! A/ [/ p6 J( Z; m
    n/ Y1 B+ w. g* j
    ​
    2 R- Z, A. d$ n$ q5 P- v6 w w 7 `" t6 c) q( @9 i, @# j6 J1 t
    ij
    8 Q1 E) e# m6 ]: j+ E# i. a​- L7 I+ g4 x8 r: Y4 _9 g( D: z
    (f ' i9 ?1 H6 X2 Y% f+ W
    i
    + f1 N! i9 n6 b. G" n+ B2 c; P8 _​
    ) N7 J$ X/ a" d4 k/ }+ p −f
    : e" `, Y9 q# K: K$ Gj, `& B  E( z" [4 s9 P/ ?5 n
    ​
    7 ~/ t' \; ?* K" ]( v; x, B )
    - a# z+ B6 N, F; I2! N* a( S( D$ A
    ) Y# e! ]0 P$ b; l. J# [
    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}|}( U! O# f6 M, ~( ]
    h
    # k6 e3 k. I7 G6 f' C. E# p5 gi
    - V* A% I4 @9 x- ]0 V# z+ g" s' CT
    ! F7 B0 H* K  _0 P​
    , H. {/ o( P$ W* I3 ? Lh ' U" K* _4 c* I" i, _! f' L
    i
    & b. f! L6 Z0 _+ ~. i​4 Q: V4 x5 t/ [' @- C
    = : d/ D# G( l+ K! j) q
    2% r( i8 r- i/ [" Q" L
    1
    ) x  \& X; w% d2 j; X  \& e​; r9 X, k+ s5 A$ q4 h/ u
    ; t; g& C# K+ K
    m=1
    * x% t0 q5 N+ }! Y. p∑
    4 t$ w5 `& D* c& ?6 I, k2 S​
    4 t9 ~( R9 `) T/ o# y8 Z$ f
    - h* G9 A, |8 J9 n3 [n=18 V/ u- T4 g  O  W: p1 ^
    ∑4 g9 e. D& Y/ Q/ \' H; c2 s+ ~  }
    ​
    9 K2 {. j( d# z  n# L& ~: H w , e% r, e8 b( p6 H9 ?4 a$ j
    mn
    $ d2 G8 ?4 ?# {; ~1 _​
    ( f. y% @6 C* m- H (h ! O9 F9 o  g8 o: V& r# Q) {7 Q
    im4 r+ K! P# S% ]% ?  s
    ​7 ]2 ^# m: ^. W, [' m
    −h 6 r: S$ H1 A/ Q/ {
    in& _8 K3 h0 E. D, o7 x6 Q
    ​# ~4 J7 g8 u3 c# o$ b
    )
    ; R5 o, N+ X% ^  u0 f2
    8 [: I8 Z. {& c! C = / {- x% f% O- {; a, d" Q( U
    ∣A
    % i& m# I$ b+ e2 [. I9 x! s0 pi$ P# i! @# b1 H) b( \; D7 {' |
    ​
    4 V. ^/ w0 L9 ]7 U7 x ∣. J+ T8 {; U% C0 t: {
    cut(A ) I2 H% X, I% \( {& o; n
    i: l8 [5 O% M! S; C* ?
    ​5 Y1 f4 n, w+ S- d' j
    , # S% y5 U2 M: A' N5 m8 ]
    A' Y' g) y$ o3 z
    ˉ+ }; X  I% S- a& \
    ! P% X- U$ y% P: a7 b( _
    i! o+ n/ e7 f# U9 P7 \
    ​
    . h) V- r9 u0 x+ e& } )
    ' d/ K. Z$ X; @' p! g2 p, V4 F9 r* I) s4 x​
    4 O+ g9 I% H8 ?0 ^$ _. v( \6 a7 G: r* x3 y# {9 ~7 P- a9 I  v7 P

    & a0 ~* O% K( J严格证明过程请看刘建平博客:链接' z' x6 K% Z5 _+ ]7 p2 |
    可以看到,对于某一个子图i ii,R a t i o n C u t RationCutRationCut就对应于h i T L h i h_{i}^{T}Lh_{i}h
    * H; i5 Y% \! e# k! J" ji" X. F6 U0 M0 c
    T
    + h; `* i2 b, V​
    1 d4 }" p4 U/ t7 p" D# b" e: ~ Lh
    5 R$ R  B) K5 n% c1 _: E! li
    ) o2 ]' H( h. G; q, `6 q​7 v4 a, H3 U+ M" x* y1 u
    ,那么对于k kk个子图% \, v) @8 F5 U9 q# s$ P+ P1 [- e
    - A7 n' R, Q2 J  d8 r+ c" m; @
    R a t i o C u t ( A 1 , A 2 , . . . , A k ) = ∑ i = 1 k h i T L h i = ∑ i = 1 k ( H T L H ) i i = t r ( H T L H ) RatioCut(A_{1},A_{2},...,A_{k})=\sum\limits_{i=1}^{k}h_{i}^{T}Lh_{i}=\sum\limits_{i=1}^{k}(H^{T}LH)_{ii}=tr(H^{T}LH)
    0 l+ j* y  O1 @& W$ Z( iRatioCut(A 6 f+ e. `. W/ c, L6 i
    1
    " _9 O2 `7 U4 W8 b. y4 D​4 ~' P4 y. U5 W( f9 M8 e
    ,A
    + j5 v1 D" o/ c; y6 E4 A0 a9 b26 Z) P6 U5 }- Z1 G* O+ ^
    ​
    % m7 a3 g' x* G! E0 e ,...,A
    1 ^; f+ z  a% E7 a4 y# yk7 U7 y: T- [4 c* g
    ​0 A- E: V, N& M5 d9 [. B
    )=
    8 E4 a+ S$ x9 h( ri=19 e# v! x& _0 `3 H
    ∑) G& q: u1 r' Z9 _1 x4 L  _
    k
    * Y8 I5 y9 Z- z$ ]4 Y( c4 o- [​
    8 z# Z. F9 r) I& h( X1 Y7 a$ ] h
    6 d4 F+ Z7 Y! W5 i1 d1 Di
    9 e8 {) a8 R" h! D- r$ d0 NT
    + |, ~( \( r3 R9 H  y( f$ ]' E7 I, o​5 c# b4 q. X  X( h" \
    Lh
    " J" L. _3 j3 n/ p- I" mi, Z& I  s5 k, @9 o
    ​: I  T8 v' O; `
    =   y/ w$ G; Y7 P5 S8 k# d) K: J: r
    i=1& m# }+ Z( V" i+ \/ T
    ∑, i: a( g: S8 p/ s' U
    k
    8 v5 h- O5 @1 _; ~0 I​
    0 J3 G& z3 f7 e/ K2 q# T( ^. b2 ~ (H
    4 N' s% Y! X# r$ D2 t! DT
    ( I4 B5 c0 y. u6 c4 B LH)
    2 F5 A4 j; K4 Qii
    6 ~' ]% `  Y, S8 u​9 [# m0 B& k( T! o1 B4 C
    =tr(H
    ) G" R- i( y* Y/ E  {T4 \  H, Q% \$ z: M/ _. O3 {" g
    LH)
    " p9 Z- }9 i! \% k* J2 l+ o' c+ A1 F7 K1 b- W
    因此,R a t i o n C u t RationCutRationCut切图本质就是最小化t r ( H T L H ) tr(H^{T}LH)tr(H
    4 l, S4 y% L% i( f$ iT2 i: L8 O  `' e) R. r/ |
    LH)。又因为H T H = I H^{T}H=IH
    # K% ^* h" j8 U0 n5 U8 OT, ?) g' @1 j- F  l; ]3 B0 L% R
    H=I(单位矩阵),则切图优化目标为
    / Y) c( C8 Z2 ]* X+ o5 h6 `- t  e+ b2 d% u6 X" O7 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=I/ D4 q6 y. f4 z7 Q, O& ]0 _+ a
    H) G- n6 N4 R8 r$ R4 s; u$ q
    argmin
    4 k& J5 ^- |( g, A5 T​
    7 W- y4 h% j8 S3 N9 k4 {
    ' `# ]* V, E, X4 \​9 ?& _* w* c- U3 Y2 J8 c
    tr(H
    / e4 R- p$ P+ |4 Y' ]T& R+ h- T- r0 y5 }1 H
    LH)s.t.H 9 [0 q0 J) x* \
    T6 k/ x  \0 i$ Q
    H=I) |5 F  }& y" K

    " N, b% |4 v6 F对于优化目标t r ( H t L H ) tr(H^{t}LH)tr(H
      j3 d5 t' S9 {1 h5 r# Nt3 }) B, r8 ]  V" J$ }- @
    LH)中的每一个优化子目标h i T L h i h_{i}^{T}Lh_{i}h
    4 s9 v. [0 f( }! ^  q+ Y% q: ?i
    ) ^3 M5 c3 f9 {+ Z. _) qT$ [0 f; f1 D$ E' j
    ​5 S7 d6 W! \; e
    Lh
    1 [0 }9 H+ J  N; x, T: yi
    1 |6 a1 m6 K$ Z& K$ o4 r​
    $ r# b0 z8 }* F) N! M1 r( q ,其中的h hh是单位正交基,L LL为对称矩阵,所以此时h i T L h i h_{i}^{T}Lh_{i}h
    3 j4 Y5 v( B; x" H8 xi
    ' Y. B* M- m0 x# Q) U6 ZT
    6 X7 i5 S* e  r8 [: b# j​
    ! i: N4 y8 d" a+ ~4 n" P! i1 S- g Lh # Z0 Q  e$ H! v. c" N) w; s
    i
    7 R4 B5 D. z( J* }0 [2 Z. ~​/ f; a5 b9 ^6 |$ d* D
    的最大值即为L LL的最大特征值、最小值即为L LL的最小特征值。而在谱聚类中,我们的目标就是要找到目标的最小特征值,得到对应特征值向量,此时切图效果最佳。所以对于h i T L h i h_{i}^{T}Lh_{i}h 3 b* e0 c1 {" A/ [& a! |
    i
    9 ]1 T8 E1 `  h  ]- ~4 B5 R: l" S' fT; _( v$ s0 M& L! J1 d7 o( q! ~
    ​0 \+ S' n2 f8 s5 P8 K" U1 x
    Lh
    + n+ K% U5 ]# [  P8 {" zi
    * f* r6 O2 f- T, D: _  T$ ]​
    6 j) u7 r0 x' n0 f ,目标就是找到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 ! {! j% z4 x: ?, ]; Z
    t  Q# Y6 `' a  F* D2 N' G3 x! S
    LH)=
    / t( H' X' h- B4 \% @8 D% {i=18 T  u: |; G9 J
    ∑
    3 F) W+ l: ]7 E6 lk" [5 v4 t) n5 B. T. r
    ​
    / k& i& W" N' F& }8 w9 U h : I+ |  k! W4 o1 [  J& B
    i0 E# F; S: b1 J" Q
    T
    4 x3 Q; z1 b9 }+ C3 u​4 @" e! ?7 d, E, _" f6 Z+ f. S0 [8 i
    Lh ; f; q- q9 Y- e; B
    i. ?4 _* o2 I% v9 A+ I8 [
    ​3 O2 O4 u+ @+ ?+ I; ~, s& p+ E' z
    ,则目标就是要找到k kk个最小的特征值0 C# Z: Z% I4 m9 ]3 H
    9 D* a9 V9 @7 w& j$ Z
    因此,通过找到L LL的最小的k kk个特征值,可以得到对应的k kk个特征向量,这k kk特特征向量组成一个n nn×k kk维矩阵,也即H HH。一般需要对矩阵H HH按行做标准化,如下: F" ~5 ~$ q& W5 u$ O, @) R1 Q
    ( Y+ O9 U8 d) i$ w, r* _& u
    一般来说,k kk远小于n nn,也就说进行了降维8 l4 h3 b: M% ?7 c5 |( z1 ]9 Q' 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}}}
    1 |4 P& Q# Q: T$ V' {. yh
    4 g8 ^9 i+ @' j8 I) R! Aij2 B2 \; B' [5 {; s1 v
    ∗; {8 L6 Y0 y. K, n. v; W
    ​
    5 Z3 }; c; r% x1 t' M =
    * _$ y, Z3 m+ K* D) b  P(
    $ `8 V# t# B- U5 ]  Jt=1
    * V# F0 k( \" f8 K/ i) n2 @( @) X8 E# X∑
    + O3 H, ?+ h! f& T% U- H4 d- e9 \k
    . f1 ?  `, z- U* l$ o5 N​
    0 l8 H0 I, }8 B" a h * F. v# _7 j1 j) `  N2 `2 }6 V
    it5 Q% F- k( w* x/ i
    2) N1 P6 ]9 t1 w/ ]0 X+ Q4 }
    ​# F5 y0 v- ]! D! }
    )
    4 W$ A" [2 l9 ^- m1 c6 H# r0 e8 g2
    4 E  H( u) E! x1" }# u( @! W; L" n+ M9 g
    ​
    3 A6 e8 V3 Y: r6 I, M" C7 u5 C1 `: X+ B) p# |( R

    - j$ B% W: I7 j7 E/ a1 e. c; p6 Wh
    ! Z! Y1 y8 b/ [+ T( }$ Bij. A5 u& G1 V% A. i  e- u8 U# ~
    ​
    ) Z3 K) m( v  p% d% W; b" @6 c8 ^; B# O2 h% T" X
    ​2 X9 ^8 C" F4 ?. G; D3 R3 Z
    - C* [' J. }2 u: l
    ! J$ ~! v  G) l5 Z$ D
    这里需要注意,降维后导致得到的指示向量h hh对应的H HH现在并不能完全指示各样本的归属,因此一般在得到n × k n×kn×k维的矩阵H HH后还需要对每一行进行一次传统的聚类,比如使用K-Means聚类- b% P* x1 l3 B4 H
    ' E; ^) K. W& Y* H% }
    (2)规范割(常用)
    8 u( ~; h5 O; k/ |& A3 u3 j规范割和比例割类似,只是把比例割的分母∣ A i ∣ |A_{i}|∣A 2 }* J! ?& X& m: g1 B. e0 q1 Q" L
    i( k9 k1 L1 V1 o
    ​
    3 k& V. i+ j+ F  B; }1 Y ∣换成了v o l ( A i ) vol(A_{i})vol(A 4 ^5 v, X3 E+ D0 v0 G9 h) n% f
    i2 o7 \+ _! M' T: C0 x* B
    ​
    3 N9 Y3 f3 z) G; a) ?  L ),定义指示向量h i j h_{ij}h ; P+ O+ \7 y6 ~' z# R# N
    ij$ O9 Q, k9 h6 Z" L  p- E6 w1 @5 T
    ​+ u- ?7 \: q5 U) r
    如下
    2 @3 I; M: P$ `; u  v: V8 r
    ) P; ?9 r: b5 h: }3 Ah i j = { 0 , v i ∉ A j v o l ( A i ) , v i ∈ A j h_{ij}=; E/ K# h5 U; j; t7 x8 s
    {0,vi∉Ajvol(Ai)−−−−−−√,vi∈Aj
    ! e$ Q2 P* s+ A# u# N5 Y2 F9 w{0,vi∉Ajvol(Ai),vi∈Aj
    4 b4 ?; y! y. h; w' x& zh 6 j1 ]9 ~. ~: J1 m
    ij
    9 L& x3 L9 h0 c​$ Y9 U& F5 k5 y# h/ Y4 E9 C; X5 ~8 c
    ={ 4 ]" ]2 }) S% s, E' ]) \2 u, a
    0,v ) b' m- |, \( p  W
    i9 S: B6 F- I$ l
    ​/ q8 F: k" i- O* S2 |
    ∈( p" \1 r* A% ]4 P7 w
    /6 {7 S& Y8 H; ?! Q
    A * u! }4 G+ b0 K$ _. C/ t) n
    j) ]6 U: B7 a3 O  |- j
    ​
    8 d# a$ R' J0 a% q- A6 ~1 Q% B) {& f. O) G+ o& _
    vol(A
    # `1 `5 k2 }6 ?! ]1 O6 r2 \" }3 vi  F& K6 g; Q% v2 F; E
    ​: f2 J0 C0 f) L7 [& `2 V" [: Z
    )
    + ]/ D/ Z7 r' L8 R8 L+ l​
    ( V% X0 b/ f. @ ,v 9 {4 t; o. i: o* [2 F
    i! c7 t1 `+ |) ?6 Z4 I
    ​
    0 R, t) r7 s" j! B* S ∈A
    $ W4 s2 C. k" m+ R0 hj
    6 C4 `: L* W0 S  q8 P$ t4 F, A7 w9 q- Z​
    ; Q/ B9 q7 T$ f' J# k# u: ]
    ! `5 P  D! {3 n4 O; I) ~+ ~) W​
    / r( Q/ l6 l5 b0 m6 s, a% t7 |1 H* k* Q& |6 H  q
    8 K8 w' L: w; ~' E/ C
    于是,对于h i T L h i h_{i}^{T}Lh_{i}h : _; N6 j; @: z( @& o
    i
    9 x! t0 l7 t; vT
      g3 R) J' f8 m! M+ ~​
    & E8 w2 U" }1 M Lh 0 Q  n! h; V2 ?$ _+ B- g
    i
    ; Z7 b4 Y# q3 }% x​
    . B+ K* I$ W8 q, c+ U; A ,根据拉普拉斯矩阵性质可知. y# {4 s2 Q/ a* A8 {' P6 h
    4 B" `( @  n$ l# j
    对于任意向量f = ( f 1 , . . . , f n ) T ∈ R n f=(f_{1},...,f_{n})^{T} \in R^{n}f=(f
    / A) {* n, L6 ~1& v2 @$ H! L8 k( J3 u2 h  j5 b2 Q
    ​
    ! S- A% @+ c" _* H. ~ ,...,f
    ) T5 {( W( G% I( Un  ^0 p; f( K. |4 r: T& r
    ​$ D( b" ^  M3 c6 _
    )
    , P2 |- t# ~4 H% V; dT
    ; u7 f: P5 N/ p/ n' k' \! d' B ∈R
    3 D) o7 m# [: o. j7 \: a7 y4 Jn
    3 D7 {9 i0 l( s: }8 `& v ,有f T L f = 1 2 ∑ i , j = 1 n w i j ( f i − f j ) 2 f^{T}Lf=\frac{1}{2}\sum\limits_{i,j=1}^{n}w_{ij}(f_{i}-f_{j})^{2}f 2 d/ Z; ^+ @; Q
    T
    ! ]' w1 K( q5 P* }8 z Lf=
    ! \2 T, V5 i( s, P3 P+ ?26 ^( Z; h. L" q: D2 D
    1
    . ]) h; R* w  h  z8 b​
    % x: X" l( n  d( i: Z% w& w$ ~6 r( ?
    i,j=1+ D# ?* B8 v& Z) }$ y1 F0 d, g
    ∑. E: K/ j- I1 B! c3 K. ^% k1 g
    n% Z8 Q$ q: a( G
    ​- U/ F; r+ t/ E5 T2 S) a9 |- x2 e9 y
    w
    6 v% |; Y3 ]8 K, G$ c7 Lij7 }" s! J, s0 y# }
    ​
    1 f# }( G+ `2 X, V$ Z (f   u  r! ]3 ]+ l' F$ w$ k( T
    i5 [8 y( v7 P1 s* \$ j/ G5 y
    ​7 O7 N7 t# A: p! ^2 u% V" L
    −f
    - y8 @; i+ H5 V& `j6 w: T' r5 D5 I+ y5 T: C0 E
    ​& Q- q0 j0 `5 L/ b
    ) 6 _* u/ [+ q! M0 E
    2
    ' C% A& ^' b6 Y* R4 v; f& ^
    0 B, f1 i! b3 g6 b! M" {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})}) Q. D  n0 W' w7 f) `+ ~6 B0 y
    h
    ; }5 e$ o0 [6 E* g/ Bi' G4 V- [8 Y- Q" K, G6 H
    T+ m) G7 f. U# Y) n) e  h$ U
    ​
    - P% j7 H+ N/ \7 P  S( A Lh
    2 i; E& M3 R' X1 f! I* Z# _& si! e. H9 [- ?9 d& {+ m2 j
    ​, h' s6 @4 f9 ?4 P% ]0 o
    =
    7 t3 Q% \$ }1 v4 }& X. W% N5 k) c2
    6 o+ ?: S* N  S1
    - d- N4 _! f5 L  A  Z+ h9 a( o​6 U4 @- p" y4 n7 Q, ^! ~1 m# l

    8 _- o. ?. t4 }m=1
    ( M% h1 }2 H' D. g( L+ _∑: S! r+ @7 i) J7 m" w
    ​/ f5 g1 p6 N. o3 }( h

    ; D. e3 o7 i3 H& e* Jn=1& q1 ]" c! _# n" r
    ∑& w& z6 j) l/ ]
    ​) R+ K7 }# x. `* }. _
    w
    : |* y& a( j- L' S8 }mn
    ! R2 Z  x5 w8 q0 i8 B8 `$ k​, s2 _. K2 c7 R+ ~! s  M
    (h 6 k4 V: @# X) L" g! U9 N. X
    im* k. [, O; H* D/ j
    ​9 Z3 X; e7 A! k  o7 [' l$ U+ @
    −h , ]. A' S* w! v# ^/ C! A8 ~  [" G- z
    in
    , G' L. J5 u" B- m$ C​
    8 B4 D* Y" W1 j ) 5 b; V4 x/ v; M$ k) A( t
    25 L3 U1 Q! x6 U% S) Y
    =
    1 A4 o/ v% z7 ?( t9 R3 Y# ivol(A
    " }, Q. t$ }- g  K+ F7 W" Ji0 S# H5 g+ i3 D: o* j/ u
    ​$ L; L; j: P! |. E, K
    ). ?5 r) ]' T: w$ w
    cut(A 8 l( ~7 M2 R1 T2 w" V
    i* I: I2 ]" L" R# H! n8 Z
    ​
    $ b  p8 v4 f1 X ,
    1 u: F/ c. h) T9 o% m& ^  F0 |A
    ; u- N8 i" N- n/ }7 Zˉ. _- H! ~1 o- n; u
    % ]2 q0 k( A: C: x/ b2 c- A
    i# m8 ]9 w0 z' }* j$ P3 a
    ​0 x+ K/ D, j6 f' r6 F
    )
    # f' x4 L: T  s  ]; p" m: n2 t, o​8 B5 _, p; N! F3 ^9 b

    5 {! s4 @+ F8 v- s4 g4 D# l% [. _9 v/ ?2 g% G
    严格证明过程请看刘建平博客:链接
    3 }" e& f6 {' m  _8 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 4 x* `8 D  t  h' f8 I2 g
    i; ?6 E8 V0 Q2 W9 `
    T
    $ |- T, h" {  G+ F: Q​
    . l3 p' T$ z  h+ O Lh 8 e: d5 m+ _) ]! f- B
    i0 g5 }6 c5 h; t9 b. l+ T: w2 h! O
    ​% O4 X: H, d! L4 @& k4 N& f' k. I6 }; f" `% r
    ,那么对于k kk个子图% l# q' Q2 o: R& ?

    7 m5 H! {' L6 `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)
    & O! K: [& B) C' T- i. c4 V9 B% ]. |. iNCut(A
    8 l, t* P! C/ X4 F' a/ T- e( y11 a* z. ?* A9 \+ @. w/ o; P
    ​
    3 @. v) c, w6 @1 A8 O ,A $ p( \; g& s$ I9 g9 Q, w
    2/ m. t/ z( g. y
    ​2 n( g& H/ s" O' u' ^
    ,...,A
    1 t* H1 x5 f8 V3 X* g( [2 ]k
    + O9 t3 i  J. v8 S​
    4 I9 A7 M# l2 b )=
    ; Y/ L3 Z$ z0 a2 Ji=1+ i3 }# H( K4 O4 }0 a6 ^$ o9 c1 d
    ∑2 m1 g) A4 G0 X. F7 |1 r. P! F
    k
    : J/ {0 |  ~$ v' k3 k​/ p2 o7 g0 V" e( s+ J
    h
    5 F3 B0 d4 m" B% s: ^' yi6 n5 I- r9 W) H1 P$ q4 q
    T' f$ r1 e$ d, s! r7 A
    ​% v8 U) L1 a' o* V( z4 b# o
    Lh : n9 ~# s9 D; {$ W8 Z
    i9 h) R- g. X! F$ Q; ]
    ​8 \" R' r6 k* [! E' X6 d5 l6 {0 q5 C
    = - }$ Y3 ]* G6 H- i: j; {4 f
    i=1. c* b# ]: E0 t8 R. M
    ∑' W* ^% J; A! x
    k
    % }  I! u. a- W( o$ H3 b, Z" I) A​9 h% \. ]1 v5 n7 u6 I0 }
    (H
    " ^  ~# F5 E& OT
    ; D" y; u3 {& r0 f LH) ; ~& R. ~- c/ ~% ?+ L- ]
    ii
    " u3 J0 M* ]* Y/ V​
    6 S3 v; `/ w9 v4 q* q3 P" g, h0 l =tr(H ) ?4 R% j2 y- Z6 _% a
    T: \4 ^/ m: C; X
    LH)
    & ~! G7 p0 l2 A- X0 b6 E' l: x6 V* Y8 o- T! `8 _* Z
    但此时H T H ≠ I H^{T}H \not=IH
    & [" g# Z8 D1 p% DT
    ' |, p$ N/ R* d; O6 S& ]7 r; y H! R. j% |! z& O& X7 [& t$ ?
    ; }7 V5 J1 _% b7 p7 N
    =I,而是H T D H = I H^{T}DH =IH 5 _: T) d$ U" N- h3 u
    T7 ]- r- B. X( G' `+ I5 T
    DH=I# c' e& ?1 p9 \, q) t4 \
    ( [- P2 u& L) @% J* J. o+ V2 ?% a
    这是因为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 ' [2 ^' Q0 u  t3 h# w4 \" a- U
    i& y% X0 x: s3 c( `( ^, X! T
    T
    4 G0 V) Q* s6 f& e- Z​% z0 O+ s7 o- a, e9 m8 A3 W
    Dh
    5 [% l8 F3 L( c" {* L3 A  oi4 N/ m+ H9 i) D# j' w
    ​8 O, b0 G% X5 q( |2 O
    = 1 V0 `' \- [  Y
    j=1
    - d$ O* a9 z! i' C% J! Q8 l' f5 a/ Y6 Q∑
    $ }/ _2 b* ]& U$ a3 {8 Rn
    & m/ O9 E* \: G# x* e​
    0 ~5 R4 H  V( D* B- u9 L% R9 l: U h " X) c1 d7 m( C" y
    ij& J" X) L* m" Q- J3 U
    2
    8 K+ r' S6 x+ {$ m4 ~* F/ w2 W​6 O5 M2 h8 H9 b# u8 S2 ~2 @
    d
    ' n' f$ K' |1 N8 y5 r" Z5 \j4 z- E1 x# q8 m1 g+ _
    ​0 q9 B# x$ F. U' Y, L5 h7 j8 r
    = 2 p' ?: D8 z0 ?+ E
    vol(A
    # C, A9 h+ P/ H$ U/ A% f0 p) S% Bi" w: n8 R& x  D; ~& E
    ​" t. g6 m& {! g9 b: j7 T/ l$ y
    )
    # P; `" M# }; a, A6 p3 b! W5 @1& ]3 @, d3 m3 c" f. X2 i! a, `
    ​3 e6 I) B8 b; l# v% D5 c% f

    " d+ @9 r0 t5 b* [. w( `) J5 H5 kj∈A
    * i5 x- S6 T3 |& W7 ki
    , F- R2 ^) ?2 W! ~7 A​) P; P+ z+ o5 t$ ^

    ! Q  B, B" H% _" w7 w7 J∑- R! j- P  J# o# q2 ~3 X' `
    ​7 k' _( M5 P% y
    d
    1 x6 h! j- x: l& T$ Z- a, Zj
    9 G+ T* l& c9 \) I/ C  _, h; R. x0 h​9 S6 R9 r9 n9 C9 j  p  O
    = / |+ M9 U1 o% ]$ o
    vol(A
    5 v& Q& @. L2 k$ V! [" s/ Xi4 U+ s& a4 Q! Z5 L
    ​. t9 S2 T3 r3 Y" a; q
    )
    ) b: G% u4 t) A7 J1; O7 H  l+ g1 M8 D4 i( s
    ​
    5 j7 x& J8 T7 P vol(A
    + [4 ~3 D1 ^9 q3 n6 Z0 Z3 Bi
    ' f8 t/ l% s- V0 L​
    8 Z( P) J4 W% n- W, h7 Q )=1
    7 c$ @- t. P; ~$ p; f0 j因此,此时切图优化目标为, f$ ?% W( B$ p$ F. U
      G" p) i& P2 f9 u
    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( W2 T+ ?5 U9 \2 Z2 X  F- ~* ~
    H4 R* h5 t; q/ x1 x
    argmin
    & n0 J8 T: _/ b! {) E0 L1 w9 q​+ Z/ W$ M# e, B4 l* k

    : W' ~/ I5 _) I% h; m' m6 u$ X3 N9 o​
    ! {3 a2 Q# r. B$ j) y" a# c* A tr(H
    . X* z+ f5 O; E( l, ET! ~" `) o& {( W5 {& c2 D3 b  r# |  y
    LH)s.t.H : J+ v0 y1 K* H. G2 L$ a( m* _
    T; l1 M0 ~8 M  t0 @! j. x$ y2 |
    DH=I
    * L5 J' d  y5 {3 T
    + p! E: W8 I+ e$ P但是现在矩阵H HH中的指示向量h hh并不是标准正交基,所以需要对H HH做一定转换。令H = D − 1 2 F H=D^{-\frac{1}{2}}FH=D ; j5 V- ?; M( u' d) C2 R' H3 }$ _
    − ( `- p0 M3 @  A+ g. S
    2
    2 A% {" H% H# d' C$ J1! @- W) B/ a8 V6 c. l1 V
    ​: k" Z5 F4 b4 H; B
    , J4 H# r% V" C+ d0 [! S
    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
    ) H: i4 J7 R. n7 ^T: f8 l7 s9 Y5 B" k
    LH=F : m- y# r/ R$ `6 }
    T
    * E6 \4 H( w* ~3 h1 o' D5 {( A) a D
    8 N5 v) ?/ o- k6 X/ J3 _: Z5 S− 6 u; s/ X2 W- k4 @
    2
    / g& ^& ]2 s, X& Z) R2 L8 [19 m. D* Q2 I5 }
    ​
    ' [9 a, _- B) F' p+ N8 t7 i+ H0 M6 t7 C
    LD
    & [- q6 M8 C; F: {% l0 r− : ^7 m7 g! B2 ^/ E2 e  {* m
    2
    5 Z: T& _+ r0 x1! {3 Y2 b( a% a% B% ]! m
    ​
      T' i( j8 l+ ~8 V" Q' m
    0 o  y( i: y/ v5 s* t& d F、H T D H = F T F = I H^{T}DH=F^{T}F=IH - e( A. M8 p! U0 W) M( h, u" N6 N* O
    T
    * Q4 G$ j+ `, N4 V# O DH=F   @; s9 L9 T! G- O5 z, F- g4 }8 {. v
    T% _8 z7 |+ Y, z
    F=I,于是优化目标变更为
    & @4 X8 i' f4 t. K7 `+ {; 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- g3 `$ K5 j! [4 N
    F2 q# y9 x# O5 o  i
    argmin
    ; ]$ C- B/ l, y. g( I​
    - T" b) Q' W) G# a" j. ]8 K7 b- r6 N
    , o. o/ X( ~( O​# r. E4 J3 h8 \! K' }3 ]5 n- T
    tr(F
      l5 |' w: b# q1 kT) r& @/ ]- @6 f7 E! P
    D / V$ F) B$ C8 m! |# A# A7 h
    −
    3 t1 n1 q) s, T8 J$ N" s+ p2
      p( \$ |% z5 E1 V8 W10 B6 O# T! G! g  O- a, I
    ​1 Y, O1 L3 W# l# g1 B0 X
    * t: Y' C" n8 Z4 C% @
    LD
    / E4 y2 h. D5 B− % I+ [+ P: |* Q! I/ v
    2( O% C! {. I2 h  N! w9 t
    1
    ' N3 z0 D- @6 A' G* B* a" C​
    1 q2 m8 b$ ~0 B7 t% Q# T
    + T" s: x* G- j% b8 s8 X F)s.t.F
    8 H+ n4 k3 b2 ]+ JT$ e$ o; ]7 i! d) z$ R) G& H
    F=I
    ; d' X4 k: e- {/ z/ v( I
    6 a0 t' V1 R: {  t! e现在,和比例割一样,通过找到D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D
    8 }# Z& z( F8 w$ i. ?5 c3 D4 Y−
    2 c5 U5 ~4 [% S' O% n1 V& \2; D2 m/ N( }  ]! {4 o( |5 A+ [# m
    1
    9 z8 D) J+ h4 l* ?9 U! X​
    % R5 ?% B5 z; \9 k! z9 W2 A* L% K8 R2 [
    LD
    0 C8 r" R+ y& b+ y5 \7 ~! p−
    . {: x8 B2 M! h4 H. h23 I4 ~9 p/ |) o, i1 H! R
    1; n6 G9 D% M& \% c6 o
    ​
    / \4 x5 b/ Q7 Q% x1 l7 \9 g" l; o. [$ X& F
    (就是之前的L LL)的最小的k kk个特征值,可以得到对应的k kk个特征向量,这k kk特征向量组成一个n nn×k kk维矩阵,也即F FF,最后对F FF进行传统聚类# U* s+ E% w+ S

    / F+ N, }7 _" ?& c: J- O一般来说,D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D
    # G7 h6 G" M# S  i  O− 9 J) j# u6 ?- J( s% O( r( S
    2$ P/ J  B, N: y* X9 i8 w/ u8 A
    1; z# q' h$ q. T! g
    ​
    # e1 b2 k# c, |! ^2 C5 X9 n, L1 }$ X) A9 b# }; `1 ?2 |$ k
    LD
    4 o8 v+ p3 o5 S) Y−
    3 P3 W2 F6 f, X3 w( E' f) d' C2
    ) ]. ?- G7 k$ J, S+ m6 j% W& ?1  k" Q  M4 J6 m; ~, \4 u
    ​7 D$ ?5 j$ c2 |. r7 \" p8 z) h4 U

    : ]! v* k" P, A9 n; z 相当于对L LL做了一次标准化,也即L i j d i ∗ d j \frac{L_{ij}}{\sqrt{d_{i}*d_{j}}} & p' G0 D0 x/ W2 y4 |) Y
    d + O8 W7 m7 U% r  o
    i
    ! c7 d' W* _9 f8 w​
    3 X1 W5 [0 L  j: B ∗d
    6 H" ?; s' v; b% G, u( a; ]j, Z, n& D9 a( v+ J$ q$ j
    ​
    & {" Z) O# [, P2 `4 x  S6 |; @7 d3 V6 Q, v7 V0 s
    ​
      N: c. n; j8 q6 X: K: e5 ~
    ( W" }0 {( e# c0 HL / w: o, B: H- T* W" ?' d2 a7 v
    ij
    + j" j" d$ ^# q- w( g& r& R6 P6 @​
    * A0 N( ?: F" d9 v% A# W# o/ A
      v5 h3 x! ~, c! ^# Q​
    . `8 r8 x4 o9 {, n2 }
    . y, v9 d- y% e0 r0 q, l$ G二:谱聚类算法流程
    1 ]: l; L6 s+ b给定数据集D = { x 1 , x 2 , . . . , x n } D=\{x_{1}, x_{2}, ... , x_{n}\}D={x
    9 _8 F$ g' \% L3 y0 ^4 `8 i1$ l$ J% M( J, ^" @) `) {; }6 J
    ​
    3 B3 p7 O7 O  n7 t- O ,x - f" G& {8 `  k; q8 \# a/ [
    2
    ) I4 Y, S2 f" @2 m1 \* |( P: I8 K3 N, p$ j​% M- i5 ~! W  e+ a# @
    ,...,x
    " g+ J+ k! |% d9 c6 f, n( Tn( t+ _8 x9 R9 Y& C
    ​6 T( w3 \1 S7 t% g* H1 ?. v4 e
    }
    # c) I8 S) z2 U! o/ J: r6 A; B! ]- K
    根据输入的相似矩阵生成方式(一般为高斯核函数)构建相似矩阵S SS(AffinityMatrix)
    0 N4 {% k2 o2 f# a  B根据相似矩阵S SS构建邻接矩阵W WW,再构建度矩阵D DD
    - U+ a* U) k# i: X5 @计算拉普拉斯矩阵L = D − W L=D-WL=D−W
    2 d5 Q" s7 m9 h5 c1 V得到标准化后的拉普拉斯矩阵D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D
    / m6 \2 G- h# T, R−
    ) i; ^" |" f0 i6 O* l. P2
    % k+ w2 S5 k9 H  s10 I5 w) }9 p* }6 {- z
    ​( }0 n* @/ r' S& v0 F9 |' L

    5 z; n- y/ H- r/ ?, T% F LD
    / S$ I, i0 b9 n# d8 N8 h−
    " ?- a8 q, b+ N# K' d% i) x2  x8 ^( D  C& B2 X  \; b; I. M
    13 E. P/ P* o9 ^2 Q  P5 U9 {
    ​
    ! `1 R! D; N% z- N8 V2 z2 V  S
    + J( W# Y& r- u+ |. ]) Q
    1 r6 N: q" I- ^( S计算D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D
    ! [0 m" ]8 B% ]; U$ V9 {−
    $ }6 ~- y! s6 f0 w2
    # m5 B- l6 P1 r; S, N. |; Y) {  D1( P- g1 m% r* Y0 v& |
    ​
    4 L3 {% {$ c" ~2 T: Y" K8 Y0 L
    5 g# v" F' D3 G5 L LD ) L4 D3 ]: r! x6 K: k; f
    −
      @& h4 n' j/ }/ ?0 m2 y& _2
    ' x  Q$ ]. M2 G* `% _; }1 m1* N+ Q" ?1 X  c& c' I
    ​7 E, {9 e1 C* j$ Q& i" ]3 E5 l

      x7 p4 C" c/ g 最小的k kk个特征值对应的特征向量f ff9 h; J" I  ]3 J: F% x; _6 B/ }
    将特征向量f ff组成矩阵并按行标准化,最终组成n nn×k kk维的特征矩阵F FF! \# U; z6 p+ `& ^& N  A
    F FF中每一行作为一个k kk维的样本,共n nn个样本,采用某种聚类方法进行聚类,假设聚类维数为k 、 k^{、}k / S4 s- r9 K9 x  W( H9 Q, }9 `9 t: B
    、4 D, Z( X6 |5 I. u
    0 }8 J6 P. ]! u5 d- s
    得到簇划分C( c 1 , c 2 , . . . , c k 、 ) (c_{1}, c_{2}, ... , c_{k^{、}})(c 4 D- l0 `% L! B: [8 Y- ~
    1
    ) Y% ]" T) I+ a, j$ A​
    . B4 ]0 I$ ]5 o' O3 N. |5 ? ,c ; T. C3 |, _2 w
    2
    ' |5 j& n" R; N$ p7 N​- b! f( A8 `- f: c, u  I
    ,...,c * J: ~4 x" o8 r7 \
    k
    4 e( B( Y: T9 R. Q1 j、
    4 f9 c4 j; c, I6 Y: ?6 z! F$ [9 z( R' l3 L4 Z( I7 m
    ​3 ?* e7 Q# a* N. q5 b: {
    )- K+ r5 g6 Q2 a2 V" j8 z. e
    三:Python实现
    ! Q6 ^4 a( b3 L1 mimport matplotlib.pyplot as plt
    1 J+ m3 q# w" b0 D# k/ x4 a: g- f' Gimport numpy as np5 S  n& U- U( m, @3 Q
    import pandas as pd
    , U6 G' J7 Q& h. m" n1 dfrom sklearn.cluster import KMeans: q% z# p6 S: [4 `( r! J* _; t
    from sklearn.metrics.pairwise import rbf_kernel
    ' }* `  I# P" W+ Z- Wfrom sklearn.datasets import make_blobs! u' Q) n" h% {2 l* i9 P" G2 r
    from sklearn.preprocessing import normalize
    , y" b* }& ]7 z* N& d, k7 i0 `! n; V5 v) r$ q* h
    def get_affinity_matrix(data_set):" b' f" f" X& m6 N: \1 U8 L% ?0 S
        #  利用高斯核函数计算相似矩阵(全连接)
    9 Z" y! p9 |1 X    rbf = rbf_kernel(data_set)8 O5 b4 {, L6 G* q2 x
        for i in range(len(rbf)):% k% Z! w7 x: w, c/ |/ X
            rbf[i, i] = 0( S, {0 m; j; A% r- Y
        return rbf
    6 H& }) j) M* n7 h+ M2 n* `: ~& c% n9 l/ _- p5 e3 K
    2 O/ B( L  o+ |$ B
    def distance(x1, x2):
    3 Z; Z; i- Y# I/ X    """
    & d4 w  T& p# d5 B    获得两个样本点之间的距离
    3 n" j) `+ ?: R" O) a    :param x1: 样本点1# P# i0 ^' Q; ]+ m
        :param x2: 样本点2
    / {+ n/ E3 s. {8 v9 U) G  h    :return:6 u- N( u# n+ L7 ~% E
        """* ~1 J; V3 A' ^$ r
        dist = np.sqrt(np.power(x1-x2,2).sum())2 ?4 M$ p1 o+ V2 c8 u8 r
        return dist
    + L! a: A7 D# B# T. R2 U$ R6 [
    - D9 K: _  ?& _' ?def get_dist_matrix(data):: U. N: B8 a. a  C- I
        """$ J$ a, _* _2 L
        获取距离矩阵5 `2 _* a0 z9 [$ {- K
        :param data: 样本集合
    6 Z/ }* e& ^% i    :return: 距离矩阵+ N' L- e# \' h6 {' D
        """( |2 R3 h; e) }3 Y0 R) R6 c
        n = len(data)  #样本总数& l6 j# {- v9 y* w: w5 R
        dist_matrix = np.zeros((n, n)) # 初始化邻接矩阵为n×n的全0矩阵0 Z0 z* z! g+ Q
        for i in range(n):
      e6 ?4 Z' A/ {        for j in range(i+1, n):5 ~4 \: c( Z* c
                dist_matrix[j] = dist_matrix[j] = distance(data, data[j])
    1 \! y9 {* A7 J    return dist_matrix' F9 G+ {) j, M" S7 q

    8 e$ K" [. q7 \, Y3 odef get_W(data, k):
    : S: i8 @5 O! i    # 获取邻接矩阵(K邻近法)
    ' O) V; ~0 d( a. n5 @    n = len(data)3 I8 h0 P2 X6 X4 u9 A
        dist_matrix = get_dist_matrix(data). o/ G4 D7 l1 N% ^1 y
        W = np.zeros((n, n))
    7 w  [& ?8 ?! K& g. l( O1 L, E8 m    for idx, item in enumerate(dist_matrix):. J- i) }% l8 {0 ^5 j3 G
            idx_array = np.argsort(item)  # 每一行距离列表进行排序,得到对应的索引列表
    9 g" N6 o! Q8 E8 i. o& i        W[idx][idx_array[1:k+1]] = 1, j: u7 j$ r: e
        transpW =np.transpose(W)
    8 k4 n+ R2 L: c4 h! _; ], O) E    return (W+transpW)/2
    4 I9 d2 r* w( b3 s
    " y8 |6 x  i7 N% d5 b) Z1 c! Edef spectral_clustering(data_set, k):, E& r# \7 H% d2 L# y) r
        # 利用相似矩阵S得到邻接矩阵W1 H( {! S( z6 n' z
        W = get_affinity_matrix(data_set)  #高斯核函数(全连接法)
    2 B% h6 a+ V. ?, I    #  W = get_W(data_set, k)  # K邻近法
    % E" E8 @! r( q4 J
    8 D% L6 m3 \0 S/ I0 r    # 计算度矩阵D,并得到矩阵D的1/2次方的逆矩阵(便于计算拉普拉斯矩阵)5 [6 v5 t% [3 d" U  u2 O- z
        D_inv = np.diag(np.power(np.sum(W, axis=1), -0.5))
    4 h) ?3 }  F/ k% i; |# w, J/ H+ Q7 E8 D* c3 R2 Q2 r
        # 计算拉普拉斯矩阵L=D-W
      G# C2 ~) b' P' p; ]' O    # 标准化拉普拉斯矩阵l = D_inv*L*D_inv=I-D_inv*W*D_inv5 L- X1 g/ B) i
        L = np.eye(len(data_set)) - np.dot(np.dot(D_inv, W), D_inv)$ `3 k" X+ i. X5 s4 o

    1 _8 j8 ?* A- L; p    # 得到特征值和特征向量
    # M9 R- b5 z, T" C    eigvals, eigvecs = np.linalg.eig(L)
    2 L0 Q. u3 m& e0 K+ ?9 U, x9 T# x& _  H) z
        # 找到前k个最小的特征值(索引)* P6 U1 |7 ~3 s9 h& ^
        k_smallest_eigvals_index = np.argsort(eigvals)[:k]
    * d5 z# u1 V( v) r  r0 Y
    8 l' M/ D  B1 |2 S+ [$ V' c: {    # 取出这k小特征值对应的特征向量,并正则化9 y5 P4 v- i, ]* p1 B0 o3 d, f
        k_smallest_eigvecs = normalize(eigvecs[:, k_smallest_eigvals_index])4 D, N; Z$ ^5 U, K6 e

    4 }8 u9 Q9 N( [    # 使用K_Means聚类
    " n/ v2 }# K+ S; @; ?5 X* X2 G    return KMeans(n_clusters=k).fit_predict(k_smallest_eigvecs)
    " x0 P- r& _- ]  G# {" ]! X
    ! V( ]# h# T0 Y$ s  T3 Y  D) a8 k7 G4 m! Z3 S
    raw_data = pd.read_csv(r'E:\Postgraduate\Dataset\jain.csv', header=None)! o3 V, b% ]9 ]9 i& g
    raw_data.columns = ['X', 'Y']
    8 ]% K4 }3 t( T) Bx_axis = 'X'
    & q( b2 A0 r* Y7 Sy_axis = 'Y'% E$ A0 _* Q* ]! q+ S  ]

    ; M8 H" i$ G5 I6 h( G7 P8 C7 Uexamples_num = raw_data.shape[0]2 O! S# e2 s' p( {" u
    train_data = raw_data[[x_axis, y_axis]].values.reshape(examples_num, 2); }" G$ [+ o- n5 f* t
    1 N- Y! A/ Q+ q3 u- a: l

    2 Y7 c, b& w8 T: z) O  ?0 m$ A) gmin_vals = train_data.min(0)6 L6 p6 _) F! c3 s2 K
    max_vals = train_data.max(0)
    - }/ W7 `- ~, ~/ L, C2 M$ K, franges = max_vals - min_vals
    $ h# W% g) o. s5 Xnormal_data = np.zeros(np.shape(train_data))# o0 t9 ?  {; l
    nums = train_data.shape[0]
    0 J! h! s  {6 {# \* |9 q3 l: ?normal_data = train_data - np.tile(min_vals, (nums, 1))" O% _: V' L# M" j; k% m0 }
    normal_data = normal_data / np.tile(ranges, (nums, 1))
    ; s' i7 n: V3 g1 r! x$ G% n6 T% l+ k( I6 ?& a8 S5 @1 U3 C+ ]
    labels = spectral_clustering(normal_data, 2)
    ; @4 t2 B; i& [- s( ~0 ?' @7 w7 ^3 F( _. d) P! A# O$ _9 s% A: u3 Q
    # 原数据; G% a/ O7 D( b) Y# T, f# a. k* _
    fig, (ax0, ax1) = plt.subplots(ncols=2)  u; i6 _; q. q+ C: B, L: s5 _0 P
    ax0.scatter(normal_data[:, 0], normal_data[:, 1], c='black')
    ! l; O2 K# r. I1 ?0 N0 kax0.set_title('raw data')
    ) e7 g5 N4 L8 J# 谱聚类结果- ^1 O' {7 p5 }2 z. I7 m( r& g
    ax1.scatter(normal_data[:, 0], normal_data[:, 1], c=labels)1 g! q& h3 `4 l4 J0 T# c
    ax1.set_title('Spectral Clustering')
    % w: l  z8 l: [5 v0 G( Q/ ^/ ?5 b9 {' m; \1 C( F& ~/ m
    plt.show(); D( n; A; {9 E' f

    ' F4 G+ y9 e4 V1 |1' P" r2 i1 X. ]$ V* }2 o5 ]" B
    2
    4 D6 q1 ]; B1 ~2 G3 b8 m3! @6 J/ y8 z, i/ j' Q5 W! S: U
    4
    7 Y  s. v2 ^" t1 s7 n/ i5. o  V. f  D( J: t
    6( o3 ?0 Q2 |$ X: K- |1 w5 Y7 W- ^
    7
    1 ^  U" J" ~: v: F1 E& m& l84 ?: K- t9 u  O5 M. y$ Z  m
    9
    8 \6 b- k5 E( d" H. E102 H5 c( V' U# t( s6 u
    11
    ' M; ]" Y, j, j7 D% q12, e( S5 X# J( d
    13+ y# _) U( e+ G; `0 U
    14! C% T' R$ g* H3 I; `
    15
    . `# ]4 Q: ?9 m( V# K; |. M16
    * G: l2 ~; ?, E17
    / O- H# G9 i, k7 U4 N: ^+ Q3 N( h183 y9 ~, V2 F# d& `/ P# D& z$ B5 q; S
    193 V. v- C2 z. J0 O
    20
    + L8 a( e! ]6 |! j' d; n$ D21
    2 h6 r' V" T7 K% m1 M22$ T. e% r! ?! C! C' V$ b3 r
    23
    9 m- v  {: b2 n7 h/ q24
    ! Y8 M8 |1 E8 H2 O' A25: {" }% z- }. ?7 D; e
    263 P! v, R8 U4 V3 e$ j6 J
    277 ?: A5 y2 N5 S
    284 h8 E+ R2 S. {; d. u+ j! m' \
    29" [0 a- q: F" \5 ?0 a/ F
    30
    ) T2 I: j, d0 D  C& d* M31
    ( z6 e. v1 x4 G0 X: X8 [32
    6 K$ I! Q' [- z- N33+ ~( P5 \& D7 J) Z; S* e/ t' d
    34# E6 e, G5 o1 }* H8 c& _
    35
    * j. K, @# F2 h. t% j36
    7 k* @% Q, U1 u* X* t7 j37" b& y; H- h) s8 L4 q0 e
    38
    . r$ y" p& p2 n9 ^6 V  k. \) X39& N- H* ~% x( J: W$ x
    40
    ! j3 h3 a! G$ ^, M41+ A3 N4 H: f$ o3 `( L
    42
    % u! d3 N& L! Q+ j439 E# F+ b; v5 }5 K- ?
    44# A$ N  ?- I; x; ], _* e0 |
    45
    - d6 W! ~" M: P4 k; t/ [$ B) k4 q465 i* q! O) r  \- a/ L; u
    47
    + {" n0 X4 \: q& u/ ?486 y! @. e2 C3 ^7 S" X
    49
    5 i' C: t. u- Z4 a, L4 c50
    & b1 s5 F7 W+ d51
    " F' ^( H8 s& N$ S9 m6 x; ~9 N520 q/ W3 i* v. R  y* J
    53
    0 H  w# n# ~- O1 A$ U) Z541 f4 `6 d% D! o% e0 d+ a3 n
    55
    $ }% w& Q( a3 {6 O56
    0 T1 c/ u  Q3 N# e57
    ) @* j: w6 z7 p- V+ P- i588 s; P9 w& [& z; L" g! B- T
    59
    ; C* Z' [# [. Y" {/ H) e! l607 T' a; i+ r9 f4 a0 y
    611 `3 N8 O1 B% H( L
    62- Q. v+ O1 y: i# q
    63
    ( Y2 {6 x" w" ]" l, P64
    2 {1 E, q' \' ~) z1 I8 \- {4 n* Z65
    * J" [7 n0 }( z6 ~, x( U669 o0 K# |2 [! Y5 L6 Z6 P: P% S
    67, Z1 R: f  V4 f* s% i8 F
    68$ @* R  k' p- I8 x
    69; T  o- X8 y1 A# L$ p  m' u
    705 C: }& a0 H& X. _  r) _0 c
    71
    9 G4 O$ _& R# V, Q. e: _1 E, W727 ^/ r) w; w: c8 J
    73* N7 M8 w, M9 C3 Y6 H: x5 T
    74% y( O3 K9 }* r+ W7 j, F
    75
    + k8 x3 ?) j1 x. E# d# |76
    * S6 D' r9 v3 f" Q77
    * e* s- I" y6 ^78
    1 M* c- p3 R% E: I  A5 O" J. t79
    % I: d4 A, z0 D2 A+ w3 i2 P8 H80) @+ {) y1 _: O; W
    81
    5 g  |- p, S: h9 ]! O82
    ( T7 V" ?3 p, t1 k3 P9 Q83: W: @( p5 k& ]  u' b5 _
    846 q2 v/ j/ n0 y! r; h
    858 v# q* Y/ \. o- q7 l9 Z5 y
    86
    + [! w; D4 k0 ~87
    $ _# u/ i8 c0 w2 C7 K, U* `88+ y6 ]- h8 B" H6 H$ K7 Y
    89
    & R+ n7 {- j+ u& `8 J  ^& d" \, l, ^90
    $ ]+ e' l3 `7 p* l5 a7 n3 F+ y91
    4 X4 D* `' [; \  ~92
    ) U; u/ \5 Q" o! M: s8 }( i+ t93
    ! @( K: j! {, P3 \  \7 n4 I94
    2 p: ?  e& ~# P% V95
    $ t) e; k8 h& B, k96" V, ^; @( u+ S: }6 T
    97
    - c, K+ d* w+ n; }! b! H$ z8 z# D98
    / Z3 l5 m1 i# A0 d: G996 H8 F# A" g" O- W: @
    100
    8 J' p* J0 ]9 k, g) [7 K101
    6 x# Y& a7 ]) [# v% R1027 x1 S% J# U! u) ]% H2 z; o. g
    103
    # h# W3 v0 Y4 [* w+ q2 T5 F(高斯核函数)
    / c/ P# r7 F; y7 w; }" n/ V, F+ i; k+ D4 N: I2 P: E1 x

    9 r  W, u; |2 i3 Q! J% |) D. L1 T3 y7 r(K邻近法)8 @6 y- U# N( N+ k$ {) a: Q
    & _4 b2 g+ t) V& m
    ! W+ R8 W+ l, }* u
    四:谱聚类算法优缺点
    / W: G6 W, b$ G. J0 l(1)优点5 s  ~9 E, w8 K+ r7 A6 K
    谱聚类只需要数据之间的相似度矩阵,所以对于稀疏数据的聚类很有效7 [) V" L/ d/ |0 A
    使用了降维,因此处理高纬数据聚类时复杂度要明显低于传统聚类算法
    / f8 ~3 O7 K1 P4 r* E  C, F谱聚类算法建立在谱图理论基础上,与传统聚类算法相比,它具有能在任意形状的样本空间上聚类且收敛于全局最优解
    ; q: @, S. H4 ^( v(2)缺点
    0 ^/ {7 W: v! C, P- {! q4 `如果最终聚类的维度非常高,则由于降维的幅度不够,导致算法的运行速度和最后效果都不是很好
    9 Y. U7 o& O9 p& @1 [  s聚类效果依赖于相似度矩阵,所以不同的相似度矩阵得到的最终聚类效果大不同相同' H" ~# R9 K; `+ f) B
    ————————————————
    ( N# i3 S) B- ]( Z版权声明:本文为CSDN博主「快乐江湖」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    - k# [, ^5 Y  u" E0 a& z8 q, K! ?原文链接:https://blog.csdn.net/qq_39183034/article/details/126747494% ~, Q7 m  h: j: t4 A$ P

    ( Z/ t/ b% r5 y1 Q5 S0 Z! Z6 c: I. @1 u1 G* M2 g( F0 L
    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-10-9 03:34 , Processed in 0.628548 second(s), 51 queries .

    回顶部