QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3043|回复: 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
    【数据聚类】第八章第二节:谱聚类算法之切图聚类、算法流程及其实现  \: A, Z& E# {, Y, B1 j

    . U) H. m! U* k; ~0 V本文部分内容源自刘建平博客,在此基础上进行总结拓展4 H. e9 o; d' H, y/ Z2 a+ C/ E

    ) o6 p7 F, T% X" N原文链接
    9 V+ }* \" {; g( Y) p( }文章目录$ U+ a, @* Q- U3 x, y' v
    一:谱聚类与图划分+ H+ h4 J: T9 W0 R* p, e1 f
    (1)比例割
    . p: ~- t* Y  ?5 X/ [  |. {- ?(2)规范割(常用)
    ! n/ {8 Z- `! Z0 {1 e二:谱聚类算法流程
    2 x3 d. J) |7 Q. G三:Python实现3 {" ~, C- J0 J
    四:谱聚类算法优缺点+ N7 Z) w/ H& a$ M/ Q% x
    (1)优点& ~- q& u- i( _2 W, ~1 i
    (2)缺点' z: S% g5 W2 Y% ]/ J9 |- W
    一:谱聚类与图划分
    5 X- p! X" V- d: F无向图切图:谱聚类算法根据数据点之间的相似度将数据点划分到不同簇中,因此将数据点映射到无向图之后,可以转化为图划分的问题。对于无向图G GG,切图的目标是将图G ( V , E ) G(V,E)G(V,E)切分成互相无连接k kk个子图,其中: C- g2 w& c" [

    , @- g2 m$ v/ n/ J3 c" k. a每个子图点的集合为{ A 1 , A 2 , . . . , A k } \{A_{1},A_{2},...,A_{k}\}{A 5 z' l! ^( R. ~3 z" A$ o# w, m; q8 E
    1
    9 G8 _! O7 h: u1 `/ s  L# S9 w9 m* e
    ,A ; d/ z6 g' e' [
    2
    - C, R5 X' R5 v' `/ {8 u$ i  w
    ( V2 s! y) N+ K; J- i ,...,A
    9 ]# P* c: @( i' ik) o% ?& a5 ^. ~0 `: P- H

    + t5 `. O) G/ ?4 ] },且满足A i ∩ A j = ∅ A_{i}\cap A_{j}=\emptyA 9 F6 r1 K. W+ q. s% {
    i
    3 L: u( |) f$ }. q; c/ ?
    ' ~. O9 H5 ~6 U; O# D3 E* J ∩A & G2 m; C2 m$ I
    j" n! j0 A7 \$ o9 T  J, I6 X& G
    " U5 B, J7 s: V, M+ f# a0 V
    =∅、A 1 ∪ A 2 ∪ . . . ∪ A k = V A_{1}\cup A_{2}\cup ... \cup A_{k}=VA
    " w$ j; N& w( d5 v/ V1
    ( @" R. s) b% x, k
    ) |- U/ t9 F1 u: F ∪A
    0 g* S, N/ |* r) {3 H4 N- V. T2
    5 X! {1 E- v( I6 X3 v8 c2 I1 ]
    8 {3 ?* @# O# c* c ∪...∪A 4 `" A. r1 W# A# w
    k4 F2 u. T! s8 E" _3 r" F
    + v$ K" f9 a4 q. x
    =V' T/ f& b8 w$ M
    对于任意两个子图点的集合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)=
    2 ~  M2 `3 H' [% ~) O. Pi∈A,j∈B
    : _# [; t" K5 L# V  p# y
    / P& k- r. o- {4 H2 X: y3 r$ q+ H* K# M2 G" v7 S. `
    w 6 u) F& s: H9 N) {% ?+ I
    ij6 b0 |' `9 x  @, o
    ; c( x5 ]0 K. Y" Z2 w) _

    ! O2 y4 d- O. E) l. ^对于k kk个子图点的集合{ A 1 , A 2 , . . . , A k } \{A_{1},A_{2},...,A_{k}\}{A
    6 Q$ @! N+ e1 S& o1
    1 J: C) V0 b* ]
    2 ?" u- L3 r2 t/ N# d, l- @ ,A
    6 u; a5 Z0 w/ b* v1 B; B0 U# O* y2% ?8 i- n% `2 r+ G+ j" T4 d, e
    4 |8 {. z( U0 F+ ]# A7 I- ?- d
    ,...,A
    5 t: h* A# A3 j0 z7 |* u4 S- e% R0 Jk
    4 H" n# M0 ?1 b5 y# C% W! A! J: J; |( N1 V2 Q; ^  ]
    },定义切图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 ) r3 C3 {& U8 V  _1 h$ W
    1
    2 l* G# K3 _0 K7 j& Y. }; S" e  N9 W5 ~9 `7 b* O
    ,A 1 ^& J% t' K/ H# M& x( T
    26 q9 I* ~, X' H

    ! i0 X4 r) t" S( C0 ?  M: ] ,...,A - u. A- E5 L+ X7 v3 `/ y
    k
    " Q" K5 I* m0 G- B/ G  x8 s$ K. ]+ L+ M: f& _+ F
    )= * k! w( Y: J4 e; v; l4 B
    20 k! O# w; y6 @( V# z, g
    1
    ) K1 N# B0 Z$ A0 `5 e8 O* b
    4 ~; i0 B, ?) H' T/ T9 t+ Q1 f" a- G6 n" n8 ^
    i=1
    ; c. v. m9 Q* t4 j5 r6 A
    6 V1 C& c5 Z% u4 |k
    : E! ~; y4 s6 f3 K; A; C6 R) l$ g1 h6 W+ i4 a2 [
    W(A + l- t" R! I* G: ?
    i& i) n# T" t4 d( O; J; w

    4 U6 \0 ?; P+ v3 e0 @ ,
    1 X' q% o1 L  R  x' M$ JA0 |# G) k9 C5 b" P# m
    ˉ
    2 x& ^' {7 o  Q# K: }( U% M! z/ z. N; P* M  ^9 y2 J
    i
    ( w# m/ c; q; J0 J
    , V9 x1 Q( R( u; v0 X' m, e ) (其中A ˉ i \bar A_{i}
    9 `* N! i% b3 x! M  s0 {5 `' qA
    2 P" z* {  u8 y5 v5 vˉ$ I( W" t4 f; A" p- P$ A

    5 q7 R) S9 x* ]i
    6 Y. Y; \8 g% m9 e/ i- B0 l8 b) D# e* p7 D8 Z3 s( _
    为A i A_{i}A
    ( ]! \4 F7 o3 H& mi2 U2 d+ l1 l/ m7 L' Y* i

    ( H7 S2 c# g0 P 的补集); j  l' {# t7 L7 N! k; p; L
    可以看出,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 $ {/ H, h& K; z" P: A
    1
    3 z2 S6 r( r; |; i& I- k( f9 j4 E( Y" j; {
    ,A 9 v) \' j# C) p# l
    20 [) A7 _0 [/ m0 u
    7 z! o2 Y% [2 C2 N8 L4 r) C
    ,...,A
    ; T! ~# V; R& A: l# {k1 B2 x5 a* M9 k5 l
      C! W" M# X# J
    )= " K2 S' [* }: Z: k
    24 ~! P3 a( a8 J( y
    1
    2 E" K  `; _4 c( _# O4 m% c% _0 H4 V! M; z: k
    * g" U8 y" ?8 f6 o, P
    i=1
    5 l$ c0 w' i. \2 K. |3 r& _! g7 h/ {- m  ?+ Q$ O
    k
    4 O+ s: P0 ]& R# J, I% Z. d5 a8 F5 j* s) P) V6 i, X
    W(A ' H* h; L! X! ~' ]6 u
    i9 M$ M0 v7 s; D6 L  N
    - `: V8 T# e% [, \1 }7 l* m/ O
    ,
    & {* S) L' ~3 S: e, j) M: b$ N  X; HA
    7 R( |: w% }) \' c+ V/ {7 }ˉ% O! T$ `, q7 ?( w& s3 }

    9 D- y5 F. E) Ui
    8 t% c' S6 y* E" Y8 z0 v) O# \. g' F: {/ q  g) |
    )在划分子图时并没有考虑每个子图中节点的个数。所以在某些情况下,最小化c u t ( A 1 , A 2 , . . . , A k ) cut(A_{1},A_{2},...,A_{k})cut(A
    * @! @( J9 [) E/ I5 z( `7 F: a) h/ h1
      o8 Z& s( ], s
    : m, E  K! f  z9 `: V, W ,A
    ( K- C8 l# T, \8 |4 m& u; z( R2' F9 p8 Z, K; ]* Y2 ^

    / q: O& e- d' q+ T8 h ,...,A & z+ b" z3 r+ \
    k
    & d7 y1 f3 _+ o/ r0 m4 }
    " d8 P8 b  x% V7 ^$ E/ a )可能会把一个数据点或是很少数据点看做一个子图,导致子图划分结果不平衡
    4 T1 d; q$ L+ k: Y) [& _( ^
    " g. n$ P( Q( z9 _( j0 y例如下图,选择一个权重最小的边缘的点,比如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 # f" l* T0 A; l" f! \/ P
    1
    % b# u* ]4 M& S- j& x1 t' h+ z
    # z: g$ S, Q" e4 i3 M! U2 D ,A 9 \7 w+ A) K* y/ n  i/ Y+ g
    2
    ' c1 t' ?/ Q) o
    0 w0 M3 ^1 j  k' o ,...,A
    , g& n, s" e" }) r6 [+ wk4 h* Q8 R6 D- i9 X5 r2 S
    1 t4 E& z. h, v5 a) n  T
    )但是却不是最优的切图
    ' Z0 t; S0 {8 W6 M6 c! g6 a* u+ y6 i
    为了解决这个问题,会引入一些正则化方法。最常用的两种方法为比例割和规范割
    $ E  }: w" X& G, K" {5 A6 K. e/ ?# N) n5 [4 U0 E3 t3 f0 `
    比例割: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
    5 }4 G. ~# X$ o8 T; H1' Y) }6 ~/ N) Z# p$ p& F5 Q  K2 m

    3 T. t3 `; n7 ~. P ,A $ O4 J! q. S) |- X; I. d
    2
    0 B4 V$ i) v# m4 t/ O) P6 [' X5 `
    4 x+ \" l; N/ ]( Q! @% g ,...,A ! _- Y% U8 v5 }4 x$ s
    k
    4 `7 f. c: M, D1 D) t3 o
    ' J% T: X4 d: E5 L( e! w1 R) d" w7 I )=
    # E& h1 F. ^/ {2
    / F( Q9 u  Y7 d; f/ {( j1
    8 x0 a' P  h3 h+ w/ u. ?4 C4 X& ~- Q9 j; ?* L

    - \+ s1 h8 K2 m, h) Q: Vi=1
    + H0 d: w- o2 N: m! ^  F& I% ^! t% Y4 p. l0 G* l7 @; @
    k3 Z$ T! |0 w/ H9 O5 o& U5 T

    3 q$ d6 q# u1 f+ l2 A
    + P& T1 b* i" x# B: T∣A
    " h3 q) H; f6 q7 n9 z& z! m) Li
    # `; e8 x* U0 P: W) R0 S5 U
    , c5 P% [4 k+ V, j' H  t$ S
    . n* L0 o8 w) j+ AW(A
    3 W4 s& q3 f6 T# f! |) bi! `, ], T6 d6 I5 R0 }
    - C/ L% h" ]) q. q
    ,
    7 P' d8 S, S+ JA
    5 r; D- E6 E7 s8 P% h" D* Kˉ- I: b2 a" e* l8 j, a

    7 b( a0 q9 j6 E; D6 Q# oi  h2 q" N1 C- F1 J- }  }

    . z! H% j2 {0 o, U1 P- F )
    5 k; o0 b# P; X* \5 e. e" ?9 O) y5 J- K( b8 s1 {
    $ L3 @; H; `# y/ Q
    规范割: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
    & f1 C( N: f/ L/ m/ O( o13 r# z6 G8 p9 O; V
    : J2 q& K: e  ?. @
    ,A
    2 J3 z  r  X6 Y* u2
    / M; I. h! d( u0 b9 h; T8 g/ F5 v/ ]0 E! b+ P/ t& F, h' I
    ,...,A * }' m$ {( \# c! ^
    k
    5 ]$ r! P, O* L! s2 _
    ! o0 B' @4 z& C$ C8 X- [  O )= $ q4 s5 P$ ]3 K; \# J7 e) P: r
    20 t( }) @3 E6 U
    1
    ; }5 `$ K) j  M4 h
    / f0 A) T' U% D, L, M6 _% Q5 I# W- J! {, ~
    i=1
    - V9 j, M* N- {4 H3 i
    1 S  r! [1 J5 h+ q) S0 Ek
    2 _5 a5 N) ?. P  [# U# I/ f
    7 v8 |# J$ b% p0 E) _% U& S$ M- p9 Y% z3 }8 ?: n6 o
    vol(A ' g5 @6 j; ]/ w! t! |
    i) }; t6 [6 I( z* O. y
    4 f! _/ }/ a# e1 W2 [8 O
    )
    + j4 C6 d3 k+ j; j5 `+ P' TW(A $ @5 z) o. L- [7 _
    i) [5 a/ s% B7 U- J/ ^* ^
    # U8 j. t3 o% e) R
    ,
    1 @/ d& I' `8 CA, {  z: g2 j  D8 C1 g
    ˉ
    6 _& C( e  `% h; X" F2 u) U* I4 R1 q+ h8 t
    i7 c. {, e0 C  f: ?7 _3 O: j1 {

    / C1 c% ~$ z) t2 i )
    * `0 r# H7 M! q9 P; ^8 m: n6 c  S! o* D( b$ s/ _

    0 F' x+ I1 |' Z+ D(1)比例割
    - u/ G3 b2 X0 l1 e引入指示向量(点击可查看指示向量定义)h j ∈ { h 1 , h 2 , . . . , h k } h_{j}\in\{h_{1},h_{2},...,h_{k}\}h , Z# ]. K5 h6 q& y% H- m7 `* n6 r2 Q
    j
    " L7 d+ g% J* J+ E
    ( H# J% A, _5 X8 b" m ∈{h
    % h% C+ Z1 z8 k$ y1
    % a3 }+ K+ V$ |4 h! |
    ) y9 ?+ I3 j7 b2 v ,h 5 H  D. D! b  M4 Z% T
    2' v9 s: a7 [6 `  L' ]
      d" Z9 c% R& h* V# N0 P
    ,...,h 8 m: Q! x3 u' r
    k5 c- p' M# n; ~8 _4 x

    9 H& g" D$ Y$ X8 W& Y: E },j = 1 , 2 , . . . , k j=1,2,...,kj=1,2,...,k。对于任意一个向量h j h_{j}h 3 T0 e7 S& D9 o( [9 _9 d
    j
    9 Z/ }) L; b: p. J/ D  E  @
    6 {( n: ], A8 k, _ ,它是一个n nn维向量(n nn表示样本数),定义h i j h_{ij}h 3 k5 e0 y( w1 B( K; k
    ij
      H# [0 B8 Y1 ~# y$ _8 Y8 k  D' e" c, P" P
    如下
    ! {1 s* [' r% k7 L/ }7 l; n5 e" C& n2 Z" m" ?2 V0 v
    h i j = { 0 , v i ∉ A j ∣ A j ∣ , v i ∈ A j h_{ij}=8 k3 t1 L, T% ^! D; g! k" N
    {0,vi∉Aj|Aj|−−−√,vi∈Aj3 a* F$ T# Y3 T+ h
    {0,vi∉Aj|Aj|,vi∈Aj
    + r7 e& T4 s5 B. B4 ?h ( @( X8 \% u# X) x% n/ A: s! D
    ij
    8 h/ W) T! v# p# M" F7 {, A' D
    , ]& c$ ?1 J- G# l/ l ={
    ) b  O' C) H- _( @0,v
    : f$ r2 ]7 J: Ki5 g  l9 ?$ D/ J
    ' R! D( A( ]9 x2 d
    9 ?3 p2 ~% e# s
    /; v9 m+ l8 q" T. v& g
    A , v% ~4 W& m5 o
    j6 N$ a( {5 F  a! y; z0 y! a; L
    ) N# a& D* W8 R- i' E8 a1 E/ S
    3 @5 {  [9 u: ?$ Z
    ∣A ' ]1 w; T! P8 E  [3 ]2 Y$ l
    j3 {  E3 n: d. n8 x" E
    8 i3 G, J3 g3 \3 }- s& w6 B
    & J  W/ b) |$ Q& y9 e1 l
    6 a7 P+ O3 _$ _& o
    ,v
    & M5 O# h  |% V# B7 t! m1 X# ?, qi
    ( i3 a/ q) R+ i; n& c. C5 a/ [  r
    3 m& i0 w" r2 v7 M/ _8 y ∈A
    * R- _8 I6 d. E7 a! gj
    9 ?0 M5 @, A+ R3 T0 [
    : ?- S- C' X9 e. z8 D4 x; q  l9 E: t8 W* e7 v6 a( Y
    # z. f6 l1 p( _6 d3 n, [6 G5 z
    0 t0 u& u' I; A& }, ^

    2 l; ^7 z, L7 n) j7 T于是,对于h i T L h i h_{i}^{T}Lh_{i}h
    4 H; g. V7 ]$ Vi
    ! y, o  l' P  U) ^# _* ?8 g& LT
    1 Z$ u* o7 l. `, l
    ' p7 B& A5 [; P; d* c8 B% z$ s Lh
      @3 s( ^" L9 Ci
    . E0 q, I% W+ z7 W3 f2 T: v
    / @$ V) O0 q/ K, m ,根据拉普拉斯矩阵性质可知
    - b- P1 V, F$ p7 c3 q5 j* g) _) `6 [) A8 k
    对于任意向量f = ( f 1 , . . . , f n ) T ∈ R n f=(f_{1},...,f_{n})^{T} \in R^{n}f=(f
    0 K+ W8 X# k$ ~5 \3 ?. f$ _' M1 ~  f3 ^1
    1 c+ r( N+ V2 U) O) h. @% j- s' u
    ,...,f
    " Q% P! t( R+ I$ g0 xn
    & ^) O8 J1 q( ?% Q! z: s8 x2 P9 P- s, y; F! o2 l
    ) ( A5 B5 G; c! O" b5 N
    T: D& |6 C) L( t
    ∈R
    6 E5 R8 z& w* P# J4 }$ T/ on: m9 G5 e+ [' 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 % M! Z/ D+ p- ]: O8 y! Y
    T
    , T0 H' h5 K* A" l Lf=
    1 e% M  r, O. @* z! {7 A8 O2
    + ?/ a; Q& }: B& h7 `3 C2 @1  G( [+ o* o1 c8 M% w$ Z
    2 C- n) n% A9 ?5 F8 E4 ~/ U

    ! F( A9 U# L: Si,j=18 I  j  o: b1 G2 A+ d1 i
    - b2 p$ |7 J: k% h0 `# h
    n
    0 z9 b+ t4 H" L% K  B
    / ~! O% @6 ^7 {' R4 I w
    9 |% O0 c% ^( m0 v* a  |. Tij
    2 f) g2 t  ?$ k: P5 c6 r. s, P* W$ G$ x
    (f % B8 I( g/ T6 G( w
    i6 @& P0 W+ b( j/ o  O
    ! D5 k. H8 [. u8 H% s! d4 g
    −f
    7 y+ G2 G/ @) E+ [- Tj0 f9 v" m# H5 s+ E9 j& ^. R

    . o1 Z7 I: q9 \( o3 f$ | ) 0 {6 [' M1 f, y1 c: q; j
    2  Y0 c) W3 o+ y3 ^

    ' c1 z0 `: x4 A2 G( Rh 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}|}, s  V5 p* h; z' Y  ~9 o4 b4 h
    h / O# e4 ^% `' z: o4 b% X, y5 V
    i
    ' ]1 n; x+ j5 \. q, e; R, a% GT$ G1 S4 p1 {$ N# B2 C* M% b  E

    4 i: H* g6 h& ^! m Lh   N2 H2 U( U( p! k4 E
    i
    : W2 X% d' j9 `# H6 V
    0 S8 Z3 R9 w3 h# F3 A- z8 g6 z; u =
    % w: ?7 C" f$ ^2 e2
    8 {) F* q% n8 I19 Y) }5 ~' w" f1 k
    & @3 E# u. T- W5 F

    - r2 a& _/ p2 m% hm=1( {+ r9 p5 Z) M: {" r& |# N0 r' u

    / _5 f) W% r5 ^2 |, d( Z0 F/ s& s- P+ d  K7 }5 i

    6 ?' E" l- ?# b" cn=1
    6 [" N( d3 O$ e; t1 y, w  G& b0 t* M& L5 K  ^. ^- I
    8 P# W3 e8 J0 x5 j3 ^
    w / p# c, t& e) v3 @
    mn
    ! b( A: P# m, b& E* g9 e& [
    0 b9 e' j  q) Y5 P1 E; d, U8 a6 Y (h 6 }' T! {% T1 K- T+ j
    im8 U- S( x; |9 t- O( B

    8 r: [. X  J3 ~- z. U# C0 A+ s) D9 | −h * O# U$ E6 e0 o. i( d4 ]0 H' d0 V
    in# k( j# g5 h8 j

    ( Z- i  f( i& e# A6 `1 ^6 ` ) / w/ O# i3 A5 o0 a9 I
    2
    , x- u1 E- T. o1 `- u" w0 M6 A =
    / K4 a# I% O" L2 H3 H1 _∣A % V2 x; z6 i, D/ r! Z. K
    i
    ( [5 k! h+ {: f9 C7 R5 q- J5 B1 }" u# h4 l

    3 F6 c& E' I% V. N3 t0 x6 Q' s, |, Icut(A 5 M, A$ L) U! F6 U
    i
    + h% b9 a' A6 X( F- D2 F
    , a2 T  t2 N/ c# G, T3 H% s ,
    2 C' X7 e, w( s5 a  r* p: S) vA
    / B' N. u6 N# Y2 k! y8 Gˉ
    , }. B0 H2 e: l) `0 G$ O: a+ g- [# E. s
    i
    , `4 ]+ P1 c+ D' p( H
      d3 I( y# }& g! L- \( B  w )8 \" s' \& Y7 @$ O$ m

    ; O5 q7 U2 e% J0 G7 l3 s  Q- W

    2 z: C) T- R- M6 F严格证明过程请看刘建平博客:链接; E3 ~6 X/ h/ A1 d) d
    可以看到,对于某一个子图i ii,R a t i o n C u t RationCutRationCut就对应于h i T L h i h_{i}^{T}Lh_{i}h 0 }& [, n) L5 ^: ~
    i# G' [2 _; w, b- [
    T
    3 X9 j; @/ q& n+ c; J: U  U  \$ k& F
    7 N$ k5 A% x  i% N Lh 7 c( B3 J3 n; C1 ~" H# ~
    i- o# R2 H3 u+ U, O

    - f  b/ M0 i* [7 }& j& e ,那么对于k kk个子图
    / W/ a0 ~( B2 q: g- f5 {
    5 J% U, s8 {2 f/ s. v9 r% p& ]/ @  GR 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)& }+ @+ H! u8 m" U0 ~9 p
    RatioCut(A + Q0 C. l* R; s
    1
    * R# o8 v$ n* P. {) r0 v. w! G6 m" S% I5 F: ]1 m9 `: M  E+ t4 ^3 S/ m, Y
    ,A " u( @$ J; s: s: N$ E
    2$ B- }5 f+ t: G! E7 ^

    2 k' E* P2 N6 N# Q, L ,...,A
    ) y) r' ^* r3 i* k: Qk
    9 t5 }2 S6 x( H  K3 U& x4 W9 P5 L8 R8 t2 W9 Y- V
    )=
    ( A1 [+ o% H! p! [( li=1
    3 G* _# r- l  m3 Z1 n7 e2 W9 E4 d+ x! {
    k
    ; v' L0 V1 i! j2 j! n
    2 f2 q4 |! L& W0 A) Q! O h
    " F* g4 F2 `/ U* {2 [i
    7 s! ~! n5 S! ?5 g6 Q/ g9 v1 H; d' MT2 M* l4 X$ G) C, S3 Y: _

    5 s# X7 H4 S4 T+ }  o Lh
    : D) ^: s" c! }& C2 Mi& X, y' `4 `8 I  {9 L/ \% L4 S+ V

    9 b7 g& I* v% m9 q( C! t$ s =
    4 s# s# ?0 P* q, ]" Ki=10 a8 Z" k& `; x  [

    + Q6 z" _8 o+ l3 ]" gk
    - E2 J  B4 q, v- k1 I/ L; J
    & K( O$ R( ]0 ]' p" ?. x2 D (H 6 o  M' g( s# W1 O
    T
    $ b! F( B5 \% g* P) @ LH) " M7 |- P! B9 R: J7 q% o" l
    ii
      a4 Z5 s! j: Y, W6 {$ M3 Q8 y+ |
    =tr(H
    " h; E6 _& N& cT- T- m. `. b! O1 k! s" U! i+ L
    LH)
    , T0 I* w- z$ k7 h
    # x. p" w; m7 ]# Q2 Q7 `因此,R a t i o n C u t RationCutRationCut切图本质就是最小化t r ( H T L H ) tr(H^{T}LH)tr(H
    ' C+ j# v5 \  Y3 rT
    , A, h+ E0 G- d) [8 z# Z0 l LH)。又因为H T H = I H^{T}H=IH
    7 C/ [5 w6 R$ q/ ^% ?. JT$ T, s6 t5 z6 K
    H=I(单位矩阵),则切图优化目标为
    9 b' y/ d/ _; r" x
    % l& Q6 f4 U* l4 v8 Sa 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=I3 T8 p( Z* S6 w. U# h) p
    H
    4 i1 @' h) o2 vargmin
    , e3 b: n  a: q) ~/ T
    5 V1 d, t6 {5 Z$ K* C; l, K/ A; v1 R0 q$ h& u

    1 m) W) O& @9 C+ j3 @: q' d# j tr(H
    / l) k" d; @& [( H2 M) r/ m7 BT
    ' o% ]2 t  z% e, s LH)s.t.H
    6 N3 R: a+ r+ x3 E1 ~% mT
    + q  A/ \$ z! z# g5 W! \) g$ u1 u+ I H=I
    . E4 U7 T4 A" k9 x) W: B! y! T( ^7 C/ s, E- H* C. ]! x* [
    对于优化目标t r ( H t L H ) tr(H^{t}LH)tr(H
    8 ~) G7 Y+ r+ d3 Rt; K1 ~/ R+ Q4 b
    LH)中的每一个优化子目标h i T L h i h_{i}^{T}Lh_{i}h
    " P  w* L" w# Y' G  si
    % n& }$ F* L. }T& ?4 b3 S7 [+ \$ k2 s' D6 [" y" h8 ?
    6 x1 u% g1 H- L: }- p8 k2 b
    Lh 1 w3 G; ?0 c- H1 j
    i) n) D8 G; s* g! m. Q1 F* }) c

    9 U" N3 g6 D; @1 z! v ,其中的h hh是单位正交基,L LL为对称矩阵,所以此时h i T L h i h_{i}^{T}Lh_{i}h - L: t" K5 W0 k3 C+ M
    i
    . s, v. a; r. q2 i% S0 |- f+ tT
    7 }; k" H+ i& x+ b; U1 t. G  z8 s7 ]# N$ F9 `
    Lh + n7 @& i! L2 a0 K; l" D
    i
    / O: P8 ]6 l# c0 Z! x5 I3 B! W. t, ]7 O% j1 _: H; Y
    的最大值即为L LL的最大特征值、最小值即为L LL的最小特征值。而在谱聚类中,我们的目标就是要找到目标的最小特征值,得到对应特征值向量,此时切图效果最佳。所以对于h i T L h i h_{i}^{T}Lh_{i}h
    ( `" g. t2 Y- p7 Q/ Z5 hi* v& M' `: U& `1 ]' @/ I7 n
    T
    # P' X+ ?' X- a6 u( ]
    ' d8 A" n% ]2 U" r$ Q Lh
    2 s/ X2 @  U: d. J- pi
    ( l! L$ T0 M7 b  M1 E* E# Z4 Y1 a. _" j; u) d
    ,目标就是找到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 , ^8 R/ f& M! K
    t. Y# I% \! n" I. {" j* ]
    LH)= 1 D$ h/ E  @: ^( v. T9 d, ]% S
    i=1
    " V) S# n4 X" l+ e4 F. ^' z( ?3 W5 t* V1 ~" W9 S
    k
    * y* ?" i9 M' b3 {1 P7 O
    # g/ ]4 F# _# R+ E* n+ u h 1 r' }  Z$ R; R% [3 W
    i
    # M$ F% f+ v4 P- w7 _2 }: qT
    / V& [# h8 Z. |4 r
    : a' E! B  I- t1 F# J. l7 Y Lh $ v8 q& {, P  Y, a% o8 t# O
    i
    2 O7 Q9 B9 `# d4 ?9 ~0 d" b! T/ x: r- `3 U8 R
    ,则目标就是要找到k kk个最小的特征值
    1 s# {$ E) ], U8 |" W1 x  e6 ]# ?9 V. f  m4 t) {! A9 J% z' j
    因此,通过找到L LL的最小的k kk个特征值,可以得到对应的k kk个特征向量,这k kk特特征向量组成一个n nn×k kk维矩阵,也即H HH。一般需要对矩阵H HH按行做标准化,如下
    / q2 T! R% f& _% C* }4 i  r; x7 c" U( l/ L2 `" Z9 l
    一般来说,k kk远小于n nn,也就说进行了降维5 l( r4 b: w  v
    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}}}( P1 S7 h8 _9 h$ t4 D; w( g. x
    h 0 h( q, Y" r8 W. V4 k/ `; Q
    ij: @) n5 x  ^  J- b

    " S( \% b; K+ h  s( }6 b; R6 f0 b$ H- v( f7 j# L/ L% C
    =
    + m2 ^! X' n; s6 b- U( 6 B- q: P. B3 Q; X) }5 W  V! p
    t=1) g' |  ]2 U+ W% P. _3 J/ X

    - q( D* F8 g/ tk
    0 m- r+ V( V% J& Z4 w
    9 x- q+ y. o' X h . h8 A0 X9 G3 O& k# A  ?; B6 x
    it- b  A) j- h: Q# O2 `
    2; K/ S6 M5 |' g  ^* B, p) ]
    9 |9 G7 {7 b: Y6 R. _
    ) 2 G4 Z: j/ L5 m, _# a8 K5 y$ b
    2
    ) a0 P: [1 `0 a- ~0 m( ~$ e1' Q7 ~/ F3 k5 G* W) t8 Q) u

    2 |! {0 ~; ~/ l0 _% C0 z" |$ \# G5 d

    ; B7 t5 {$ q: M9 H( a, uh 9 K3 P' n5 d1 H
    ij
    " F$ V4 y- y' |, m* [( ?& I9 a2 \6 R" h1 S8 U

    ) J! j; Q& D" |
    ' n7 ~2 O+ C9 w! U+ F. d' |; f4 D# b; y
    . }, |0 [+ d" Q2 w* V2 ^9 J
    这里需要注意,降维后导致得到的指示向量h hh对应的H HH现在并不能完全指示各样本的归属,因此一般在得到n × k n×kn×k维的矩阵H HH后还需要对每一行进行一次传统的聚类,比如使用K-Means聚类4 A+ J5 j5 v$ k0 `1 s; }5 w8 p
    ' k/ Z/ g) |9 m, V& C
    (2)规范割(常用)
    , T' F; c  [7 }* g# w- N% O规范割和比例割类似,只是把比例割的分母∣ A i ∣ |A_{i}|∣A
    9 u; k, V" Q" a4 n+ I3 w! ii
    " B3 d$ P1 f% u% h8 K# t' M/ ?
    3 Q/ I# E3 g6 _2 x6 C# s4 A% E ∣换成了v o l ( A i ) vol(A_{i})vol(A ; L9 r* _* A7 Y1 d, h7 {6 z
    i
    ( n8 |! A. G! ~- {! f6 i' S" w# i% W
    9 v+ q% v, y: ]( {' e6 E  w ),定义指示向量h i j h_{ij}h
    : D3 g. `2 E3 I$ R$ [1 L' vij
    $ U( S% a: J( `2 X# G! P
    ( W$ _) X5 q! q4 h 如下
    ' V4 F* L* u' `3 l+ K, }8 ]( C, h5 B+ a. l$ Z' n
    h i j = { 0 , v i ∉ A j v o l ( A i ) , v i ∈ A j h_{ij}=2 X  p+ x1 O& e" J
    {0,vi∉Ajvol(Ai)−−−−−−√,vi∈Aj
    6 P9 C9 p5 W- c4 i3 u{0,vi∉Ajvol(Ai),vi∈Aj6 @+ O7 f6 i5 S
    h 5 H+ f4 X, O9 F
    ij" v; e. d" @4 X
    1 G" M5 h9 Z4 n8 b9 q( N4 K8 h
    ={
    / s2 X' D. a4 C! W$ Y2 a0,v
    ; ^3 Y6 }. c- j3 ?8 M8 pi
    * P  ?3 t6 {6 d! O( E: \
    % O$ S4 O$ x! C. X
    " H8 Z+ C. {; N2 E# h, R# b/
    ' c1 r+ L% ]* `* qA # c$ b' ~: w$ ]& b0 r
    j" I. _. B$ ]0 B  h# D$ I

    $ s: l3 e, e, G: g, }2 l  R& Q, S3 H' J' y% N! U$ y* X2 d( Q
    vol(A ) E9 V: \& F  L* i
    i/ o' [! F' S6 ~# h) o& c9 ~
    8 m6 x8 r: E& T: q9 I
    )7 O4 R" V* `5 e+ p% N
    % {' ?5 F4 \2 l
    ,v
      f0 Y9 h& x+ v& ci7 \0 _. {0 D# \0 t! `  w) b7 ~/ D
    5 g. `/ G4 A8 J4 L. P8 n+ {
    ∈A
    0 B# V0 a" A2 S% h" |7 P* X% gj* ?- N* `6 w6 \0 P& N) m" Z
    * a' _8 e. y) ^

    2 p+ |$ k  w) ^- x' I1 W  w  _$ _
    7 {# n: y1 s7 n( z- n: z

      ^2 }  k1 Y) B7 X9 j# P于是,对于h i T L h i h_{i}^{T}Lh_{i}h ' R. d9 M0 c1 B& u
    i
    1 U( y% X0 K5 s' V+ E7 gT
    % S2 X% M$ k/ l/ ]
    ) B) s2 h" ^7 B0 g3 W4 O5 y: w, } Lh
    ( P9 R+ t1 l4 P% q" f5 S& ?i
    & G3 v9 O% \$ h- w7 K% l+ ~4 h9 o+ U/ n2 z
    ,根据拉普拉斯矩阵性质可知
    1 m3 k8 M& ^& e4 {: {5 B7 K
    , {5 z1 ]6 m, \! o: @% E7 z+ H3 E对于任意向量f = ( f 1 , . . . , f n ) T ∈ R n f=(f_{1},...,f_{n})^{T} \in R^{n}f=(f ( ?" S0 L$ b2 c  C& s/ n8 f
    1$ E( q8 k! v* H7 X
    ; b& _, z2 Z5 A3 F9 T0 y$ t
    ,...,f
    8 l* z0 U5 d; ^' p- m- Q5 O+ yn4 Y; X' Z) U9 |: q& o

    - U' W% ]$ J9 X2 U5 U5 z, O# z  L )
    " z' }/ {" ^1 f2 w, ET$ ~" X  `4 X; [5 H2 N
    ∈R
    5 ]' m1 j0 c& @$ B" Zn* a5 d' _4 S" h; 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 # D, q& r. h. X( V
    T
    7 b9 x! |* W: F Lf= " L! V. ~7 p6 D  ^* v) B
    2
    $ ?0 K1 w- Z+ ]  A12 A2 ^' s! `9 N, a/ G9 a0 t' c
    + L3 ]# |. T5 P- s

    ; n. O* F! U" E# ?$ ti,j=17 y$ A" s- v) ^/ h: i

    : I5 L- f' s/ H* i; O% ]n9 @0 ?: T3 E2 s$ ]: ]" R

    ! |, Y% c9 v2 t% |- z w
    4 e2 n! R. ]% q) o' |' ]1 P6 J3 lij  z( ^, c/ R) a+ H
    5 z' t6 L0 B, i1 v# [
    (f
    5 d) q" v% E: @, T! Vi
    7 ]* Y/ ?* G0 l& U6 o* s8 B! O9 Z+ t4 Z3 U# e$ j" p
    −f 2 ]$ f( |5 [' [7 d; L5 \( D( j
    j
    3 ^. W* W3 B" z$ \" ~0 x. d6 Q6 }' [3 }6 \5 o- y
    ) ' |+ [6 c4 Y& s" j# S
    2
    * u0 }# L% Z$ P' K3 F
    1 \6 S6 W' p( Jh 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})}; X6 K3 C: L0 Q3 c
    h
    & f: X5 |) B8 ~* @i
    6 |/ O7 j9 P& g& T' `; V. pT4 R/ }  h- g2 Z6 }: \
    1 h; c3 @3 `; ]8 t4 x. \/ C; C
    Lh : B0 P5 \, }; a- p2 t* l5 T: ~
    i. R8 h9 S2 n) U; l

    . S6 e  g1 s! _ = ' s2 a( c# g* u/ U
    2# ^, e* n- p: O/ f5 X
    1
    0 [1 y! q# Q2 ^1 G# n2 n
    6 w+ c9 H  y/ K/ B  w9 G' l3 N: u1 j$ j
    m=1+ x8 F' [+ y$ v5 y0 ^
    , h3 O. X" x. p: H, A) I4 Y* ~/ ?
    1 q! Z* \  f2 o; Z% O
    ! r8 L6 E! n+ r% w8 D, z
    n=1
    5 n! q+ t* `: l, M0 ^- n% ]) p  ]4 t# n0 A; `  s

    : o1 x9 t% p  ~& h* ^( y w " y: F6 s1 s4 a( l2 D
    mn* n7 t3 ~  \/ Q% _0 O
    0 e+ Y5 }1 S8 v7 a* r# A/ j1 W
    (h
      m8 w% \# i' ~im
    + U0 k" I4 ?1 s" [0 ~/ j* @* V! q, ]
    6 s2 K9 Q- H% Q −h 7 A( C) q5 j  R. `9 N' q2 P
    in
    4 f5 h1 T, d" {. @3 j5 t
    ) w" w& c, {. v6 }1 N; o5 w" i )
    0 j2 {: }- V; r4 z  y5 {2
    ! u) M2 G7 b. W& K =
    / d: e3 V, M5 S! nvol(A + ~* P" q1 a- Y3 G+ ~9 Y+ r
    i6 q/ T: A. c# C- A$ o

    " X' D! k$ m7 h4 I )
    ; R4 g* V8 s( J( h, a& u8 Zcut(A 0 I5 f( @9 C9 b. {: \' J% g# o7 K
    i3 ^8 |! J; i) H. j

    5 g2 J$ c0 Y: l2 d# k9 g; w ,
    1 `8 l6 n7 C7 z  zA3 _, E( ^3 }# {( A. _3 Z# i8 n3 u
    ˉ
    ; h: \. Z) Y3 h1 I
    ' a0 F5 p9 L6 C9 Ui
    3 c0 K* A0 X- e2 a) R
    7 U/ `8 g2 T  D4 n2 Z: @ )' l+ b7 q" d  D& C7 s6 v
    4 o- }* {% s. N# K+ v5 k
    % o6 n0 s2 m$ z6 R; k( D) e7 b4 T1 d
    7 H' Q) G$ J& m, V: j$ q4 i' p
    严格证明过程请看刘建平博客:链接' X' O- g+ S+ a# V" Y/ {8 q
    可以看到,对于某一个子图i ii,R a t i o n C u t RationCutRationCut就对应于h i T L h i h_{i}^{T}Lh_{i}h / r2 J$ ^/ E6 Q0 H* \9 o! g9 D5 @! H3 K
    i
    9 U6 m  a# N$ i$ L7 F* @T0 p. T+ a  [4 X/ u( X9 {
    " D( \% v2 K" ?9 t. B% S
    Lh
    ) Q/ H4 j  `+ X; `. h0 E0 Ai7 K) P" S2 A8 S3 ?9 o6 @9 O
    * J) ]" Z7 d$ ~+ B
    ,那么对于k kk个子图& X4 ?  P9 D9 O  i% e

    ; v1 y- H  {; t0 u# q  `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)% O0 c/ V# G( f: E- m1 T; P& \
    NCut(A
    5 ~9 e& J( c2 k$ Q1* p& M( Y: T4 `

    & \5 B9 R) p6 ? ,A ' L& ]  ]) `4 @( D, C) Q0 f1 h
    26 h% m) }' z1 K$ T* w' g

    # _! W+ g/ [  @5 Q# b ,...,A * a0 b- Y' }$ n* L
    k
    / U) P0 n6 n4 v: J1 M+ x# b$ M$ _) Z
    )=
    # M' O9 X( H0 ^  c! u8 di=1
    6 q6 ~" N; l* B( w2 O: ^# n
    $ n; b. P: M! f" qk
    % U  o3 X& e8 N' J: c
    & |$ R1 \8 d% q5 H2 f' @+ O  h5 c6 V h - ?2 G# p: ~2 T& _6 M
    i
    . X6 p4 u& L/ _% g6 K( Q9 q3 _4 ET! s: }; h$ ^$ s7 X
    ) ~4 H9 Y7 y9 y
    Lh " G6 b$ ~! V$ ]0 l" q2 _6 d
    i" y- B* o0 y% I. T% U

    - W& p( R* L5 b = : L0 O2 d8 J  l, `, ], k; J; [
    i=13 \% q0 W- d* Q$ w! c

    8 i. j( {( R% Ck
    / m* ~: z9 u6 t' W0 d( ?
    % n* V8 d+ j0 s! e (H
    ; Y1 w' `" T/ n; P$ qT
    9 @& G2 x5 c9 W, x5 z# h LH)
    & S9 y' u4 c6 F3 k% jii
    $ q: a8 |1 F0 x: C' B/ }
    " Q. e5 y) H  w5 i6 Y' ?3 \2 d =tr(H $ W! B4 a8 \$ R, [
    T3 A0 i* j5 ^5 \2 d
    LH)
    # t( L8 N! }8 `0 `8 J) Z' Q6 g5 ]2 g5 }* b( Q
    但此时H T H ≠ I H^{T}H \not=IH
    3 v. D, e% l& i. {. ?! C% \- w$ T6 MT
    " A( B: Y6 S& E! e4 U H4 S( k8 s* e* }  w2 G

    % I! M* c  h9 u3 J: w% u=I,而是H T D H = I H^{T}DH =IH - {7 s. p3 w7 H
    T
    4 O+ R" A8 L5 J1 i% Z* K* v DH=I1 q8 d  y% x. v' N* B
    2 l$ }3 r# n! N- E/ y& K1 s
    这是因为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
    - b0 o6 {5 k: ei0 {9 s2 f* ]; w% G
    T, k2 W# R7 W- P+ j- J
    2 k2 ]7 P4 x' _+ w! |- ^
    Dh
    1 U- I1 Q5 ?% o, o! A' l  @i- V* N6 t) Z# \9 P' b4 F1 O# c- N

    1 J6 |0 W' _% e: d$ c! B1 B =
    # e+ i# Y- O# y, K. Mj=1
    ' i9 g6 x& Q" ]2 X/ D+ f
    * _4 T! S. p& Yn+ c% J9 ~3 x1 X' D9 I9 s
    - ~* E0 d" t: I+ x8 `
    h 6 R5 e' B. s* O! Z5 @/ Z" O* V
    ij
    : M: _& ?+ R- s8 L26 {: A2 y& {- u- j# [6 u) s4 q0 X

    + A3 x% a' Y& D4 f% X d % L8 z+ i4 f, n3 l3 U
    j
    4 s5 e0 D: r+ o$ f' H
    * r  t: B% _" C: j4 ~5 { = $ [" w# P6 i5 |; H8 f
    vol(A : B! E# g7 ^. ?
    i
    0 t2 i7 C) C' v8 ]- ^) D
    4 K! w1 ]- {, B+ e )5 L; ^0 f& K9 J) l
    1
    ) s  Q, ^- @, e, C$ T0 G$ A: H
    ) Q' h0 e4 c( Z. h. w8 Y: p
    ! f& [7 n# g5 c- v* O' \# `j∈A 6 H5 E' m6 q- l( A* X5 T
    i
    8 A+ ~2 S# O: K; M2 }
    " p2 i+ A2 m% z% V$ _" t9 `& R" i# e% [1 j

    0 C6 Y. Z! V- f6 S( k2 L
    # m1 g+ |0 r7 J  h d % h: |6 t/ w* I) i- [
    j
    9 j8 e! c6 V0 r% A/ g7 C) Q+ y# n. N! s. I1 }4 A6 `6 t7 q
    = ; A& h0 Y0 f* p( n
    vol(A
    0 B- b2 E3 u" O  ei
    / D- O4 ^% ^* D" x+ G% v! l
    - e5 D0 v  r6 c/ h7 i5 k. L5 d )- K5 F8 ^6 h- n7 F" E7 p1 j
    1
    7 p. |* ~6 s$ y  \
    ' m. F, a7 x- M" r/ @ vol(A
    # k) q* c, |* t: h& `1 u  di
    % ^6 I( \* j' q( B2 ^- V% K$ `/ q3 @# x/ L# T  c! s. d) ^
    )=1& Q5 U) w( Z4 z! {
    因此,此时切图优化目标为
    " W) t. N2 D2 U# e+ Y  N
    $ R5 d" [0 u8 j7 Ka 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* g3 ?8 N9 @+ [; N$ C! ]
    H
    . n& r! A; ^. D+ _argmin3 j8 ]1 T( Z+ D+ i& a  `( e
    ! A7 m" [1 B; Y9 b$ T- u
    . s9 N& f- ~( y9 u1 k

    ) E: e; I. X0 B% D# O2 C1 I* A tr(H 8 g5 @2 @( a5 H9 _+ V
    T5 a6 W1 S7 S5 Y; ^# H8 ]. X
    LH)s.t.H 0 i3 i$ Y+ T# d" K) e
    T
    ; `! Q( n+ \. Y- U DH=I
    1 v+ }9 a4 ]% r
    5 }  r7 R: v+ {2 I- t, V0 Y$ ^但是现在矩阵H HH中的指示向量h hh并不是标准正交基,所以需要对H HH做一定转换。令H = D − 1 2 F H=D^{-\frac{1}{2}}FH=D , `9 P' p6 t; r# {0 W% ]$ [! R
      {) Z/ A0 g- s4 _  q2 X+ Q! z; k. U
    2
    7 B) S* w" r$ q! n15 E: N6 e9 I. M

    , X4 T1 E, y3 N/ H/ g6 f8 w/ D, G  N7 a+ `& _/ X! `( k$ m- @
    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 : T, [# Z7 s) w* G9 [" u
    T: G- n) b  s: v
    LH=F * Y4 U5 I* s- f- g* t  D
    T
    & f$ q- H" e' R D   J. ^, J$ q! ?/ {5 g

    / ~$ q9 R$ ]  [! f2
    " E; j0 E5 O7 ~8 L, u& Z1 a. }2 r1
    % d* W6 e6 X$ y7 t! G
    6 O, _. G. v( E) {! E# k
    # c6 ^- M2 h, U  M$ f% m2 X- Y LD
    ; [% N4 U8 A" s/ V6 [# f9 c
    . m+ H$ N6 ^. k4 a6 m! c2
    % J8 j5 U1 O' G15 [' ?( Q9 l. E8 z

    % }( O  a0 q. i, V) g4 y  h+ b  d3 T: l* [" u- m
    F、H T D H = F T F = I H^{T}DH=F^{T}F=IH 2 x6 i+ ^" E, q7 J+ Q4 k6 g
    T- p! B+ F$ N1 k
    DH=F
    " Z" g/ H- z, L6 r: s( ]( TT2 z4 M- ]( z8 Z( Z" d
    F=I,于是优化目标变更为
    $ @! M- h7 D9 I% j$ @8 f9 z- {a r g m i n ⏟ F t r ( F T D − 1 2 L D − 1 2 F ) s . t . F T F = I \underbrace{argmin}_{F} tr(F^{T}D^{-\frac{1}{2}}LD^{-\frac{1}{2}}F) s.t.F^{T}F=I% i4 w& |# g7 w* W
    F1 e3 x+ E7 Z/ Z+ I9 A4 x
    argmin
    ( A0 i: _: I0 I& |5 s& B, [- u( R
    & r: V$ m, H$ ]3 J+ {

    ) |* R) _+ a, r+ [ tr(F
    2 h' X8 o& s- t# o! q8 `T9 e) n1 ~8 m8 R- r! R
    D 7 _" w, A. e8 S* D
    " h+ V) [, ?# l3 A
    2
    * K; D& h, o5 W! J6 H% V1
    . T# m' r, ]* N$ D# y: n) O! H
    1 t- o) @3 Z: f4 Z
    # w; }) N4 ]* D# s" w LD
    + c, u  |9 H( d, R+ e2 C
    & a4 {: {$ P0 P  j0 T2
    0 ~4 F2 k# O$ u7 A1 U3 p1- R6 ~6 O: s- a+ G/ {8 s

    - m& F$ O: @" i  @* R( E+ h: z9 I: l) |) o
    F)s.t.F
    3 Q3 s, c8 j* a  LT! J$ n+ A2 B7 j( Q9 C
    F=I
    # W" n3 S0 j6 q& A1 z
    9 i/ D. L: \) P$ v$ K9 p现在,和比例割一样,通过找到D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D
    7 }: H  F* e) l( T8 M' E1 L+ ^8 K3 q  w( g. Z! ]$ r4 l
    2
    8 M: Z; Y" R- o) d1! y3 H5 O# }* @6 z; r

    8 K1 d0 T5 N4 d. |4 C& P$ ^) g0 @
    ; z  c% l; m# [8 \ LD $ o3 {# {7 D. F6 l; ~) q

    : S5 j* ~+ L$ \8 A+ Y% R20 O  j: t& h4 y4 S% s
    1  B$ O, D4 l" i9 {. X6 y5 G
    5 v8 j2 r' C$ q7 E, Y4 F2 [- l, ~9 z; _
    7 j% q, v$ l4 }. d! l
    (就是之前的L LL)的最小的k kk个特征值,可以得到对应的k kk个特征向量,这k kk特征向量组成一个n nn×k kk维矩阵,也即F FF,最后对F FF进行传统聚类& B7 y# |6 ]6 o0 i6 r" ~3 ^
    : j8 S9 G1 I& P
    一般来说,D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D 7 r0 L9 f! `0 E: Q% A- t- Z, Z
    ( t+ A6 H- C$ l5 s7 G
    2
    * o( w" l, i8 P$ \5 M1
    % d3 ]. w. N0 F. |' Y, x% r+ [6 i4 X! d8 f* T* z! n& t
    , o  `$ T  D4 v
    LD ( T7 _+ E8 _$ S+ Z, x
    % U# |4 F/ `' t% h
    2& ]! C& z' y* u% ~
    1
    , W9 y# \3 n6 @$ j$ x3 u* F8 n4 j+ L/ n9 M! N8 N4 c5 }6 U$ [
    . l' a# K+ J+ M5 I
    相当于对L LL做了一次标准化,也即L i j d i ∗ d j \frac{L_{ij}}{\sqrt{d_{i}*d_{j}}} ' U; [3 W: n6 }* Y+ _* v6 ~6 U- {, Q
    d - n9 F9 m% u. l8 A, z1 M- p: u
    i
    / z* w$ m& J8 ^
    " D: Y; N8 H1 Y" x) _9 S ∗d
    + M) @8 Z( U7 @& q/ qj
    2 f4 g8 z4 F" g) x8 b6 |# E6 ^4 Q! y  G% Q2 t
    ( J3 z. t, G1 j9 U) B/ \

    , A! k( N1 }& B* @8 ^$ c( j5 |# n2 q  r
    L
    ; x% |: z9 c+ g8 A6 L) t0 mij" U8 ]& S1 k# h4 L
    / h' W3 I2 x7 O- r; \( C& g
    8 G0 b- h; Y0 ~; x
    ' ^1 c$ t" ^3 [& x6 k" ]

    6 D6 l9 t: K& b8 ?: q) j; r+ g" z二:谱聚类算法流程2 V2 `% w) v, C* `8 f- v) X
    给定数据集D = { x 1 , x 2 , . . . , x n } D=\{x_{1}, x_{2}, ... , x_{n}\}D={x % ?9 q. j/ C( Z! S( _  A, I9 r! j
    1/ j1 E: D: I0 _. Y! k+ e" K2 j

    8 q8 R3 _- q, K% u1 P ,x
    6 P# {$ t& G4 p% s5 g5 z2
    . L2 a5 y4 u4 ^3 {$ H$ c
    - V# _: [! M* H. J$ z1 Q ,...,x 3 C- A0 a$ }1 p) ~, A: I8 J
    n) u$ J- v# T) D! t) [
    # P$ K! x2 j3 p  F  |
    }% Z3 G* z1 K! D

      S: d2 O, z2 \1 T& H( p" l$ `根据输入的相似矩阵生成方式(一般为高斯核函数)构建相似矩阵S SS(AffinityMatrix)5 t9 [! l5 a5 R
    根据相似矩阵S SS构建邻接矩阵W WW,再构建度矩阵D DD
    . E# u5 J5 ~! a9 S! R$ f& J6 p9 o计算拉普拉斯矩阵L = D − W L=D-WL=D−W1 v5 l6 Q7 @* L% H7 O1 q
    得到标准化后的拉普拉斯矩阵D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D
    # L# z0 h3 u" k7 ^' |+ K& L% i& m6 _, |8 U
    2
    , o* j5 d7 H4 L4 N. X# C% h& ?& B1
    9 ]' f) z: G5 W7 b
    5 X- v3 [* @- w& S. i3 \1 b+ F
    % }0 H: Q& R7 y0 u. s, w LD
    % ]  c- M; n' E3 w& J7 x) |3 l5 L! N# t+ ?' c
    2
    5 p/ q2 D# h# F' E+ d6 e14 A4 R4 X( q' i+ f- P- a
    ; T/ c5 M* f/ d; Y8 h+ y
      B6 U7 \0 C5 c$ I4 f) G" O

    2 G! z% ^, R6 y0 m+ a计算D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D
      c4 Y( B* d& l; w. ^, o6 h8 ^( H1 C  z6 g
    28 x3 `3 [: T3 Y
    18 h7 D" f& _( F8 S) \: ?9 H$ L
    0 ]  e3 h- C9 y

    " q+ H1 [* t, K; z( } LD 5 n# F: S* M1 e* a6 A* f  }
    & M9 U, T9 G  H: F
    2+ s& U+ h3 l- b+ i! f: t, _
    1: v, ~" o* E; k2 r* m( _

    # [$ X, z2 R! F+ `! @
    " i) {! v: y/ T5 s& y4 D 最小的k kk个特征值对应的特征向量f ff/ k5 z0 d5 R) H1 L/ J! ^2 X
    将特征向量f ff组成矩阵并按行标准化,最终组成n nn×k kk维的特征矩阵F FF
    ( Z8 K! q7 e; t7 H) x+ o5 w) o) A) ^  [F FF中每一行作为一个k kk维的样本,共n nn个样本,采用某种聚类方法进行聚类,假设聚类维数为k 、 k^{、}k 5 d9 k  h9 X5 [
    : m# p7 f1 v+ v

    ' X4 q/ H0 E+ c2 r1 l得到簇划分C( c 1 , c 2 , . . . , c k 、 ) (c_{1}, c_{2}, ... , c_{k^{、}})(c
    + _* f, J0 Z3 l. h0 B15 S, B+ \, z* Y  d* Z2 w

    8 q9 E" n" s/ Q2 s+ e ,c
    . ~3 E) K$ ~. `! U6 P8 @( _2 L9 J2" V, p5 V% _4 q4 s

    4 H" w4 T. z! r6 T! `4 ~3 M ,...,c # S: R4 a/ J0 P1 \* X
    k
    2 ^/ `1 T( Y2 y8 D( M  g. U
    8 L  i9 A! `/ f4 N! c% r! n* n2 q) I8 x- L+ B$ `3 _

    0 }: I/ @/ [3 g2 [7 ?( h8 L )
    ; S7 X+ Z  Z4 u$ Y* W0 Y三:Python实现' ^* K4 f5 W0 ]& A) J* ~# j' C
    import matplotlib.pyplot as plt" r5 T8 w3 D& |6 q$ t1 u! I
    import numpy as np
    % ?6 q, F3 q3 N, Q- V6 c2 p. n* Ximport pandas as pd$ }1 l& E, G6 e, l1 A$ ]
    from sklearn.cluster import KMeans
    . n3 ~" L, m, k* @( n% c9 L5 Nfrom sklearn.metrics.pairwise import rbf_kernel- y" p. \$ {/ M0 F/ M
    from sklearn.datasets import make_blobs9 a1 j2 r9 _( t  _
    from sklearn.preprocessing import normalize4 ?, p- {' V: i% ]: U

    6 Z$ U1 L5 C$ l7 d3 x4 pdef get_affinity_matrix(data_set):2 D! H+ E  @  {+ S) T  S
        #  利用高斯核函数计算相似矩阵(全连接)
    8 ~! q' Q4 V" `7 R& u" j. D    rbf = rbf_kernel(data_set)8 h( A  K3 e1 @' |
        for i in range(len(rbf)):
    ( C! S) y% A" e6 s* I        rbf[i, i] = 0
    * S" `' i1 U* f% q5 o: B& J( o    return rbf9 \* y$ I* k, ]5 y% g; b9 E
    ' M& }0 Q7 o! ]! W9 {) r( N
    4 X  f- M! M4 _* s
    def distance(x1, x2):& C/ `2 K) T+ v8 ?' l% `: t+ g
        """
    6 A$ `0 H: n  E/ D9 ^. p! a    获得两个样本点之间的距离, J" r! v% E1 f( q) V7 l
        :param x1: 样本点1; y* q+ c% V8 ]
        :param x2: 样本点2" Z7 Z/ ^, D8 B0 m/ j) a, `
        :return:
    ; ~) F6 h  Q0 V0 ^9 \    """
    * m' |$ }) i4 Y6 N2 S6 ~    dist = np.sqrt(np.power(x1-x2,2).sum())
    ' s) H3 \8 L/ y' f" b+ s    return dist
    ) G( ?6 P" `- f2 O: z5 l; C: Q, I* t1 `* j6 I; T
    def get_dist_matrix(data):
    8 L( D+ v1 y) l7 ^  k$ a    """
    % o) O, x. `2 k8 P- ]    获取距离矩阵: v, a# W) t+ M
        :param data: 样本集合
    8 B- x+ B5 Y! v2 B( m" Z    :return: 距离矩阵
    , b* `6 w4 b9 r( E+ e! h0 I    """6 f, W8 c; E# ~
        n = len(data)  #样本总数
    9 J  k/ [7 j0 U: I, ]5 E- H    dist_matrix = np.zeros((n, n)) # 初始化邻接矩阵为n×n的全0矩阵3 ^. F1 r1 Z' Z* \
        for i in range(n):3 r' E- y. e3 A) f. A
            for j in range(i+1, n):
    ) e( y& }; u+ H7 Q, |& S2 z, P. n+ C            dist_matrix[j] = dist_matrix[j] = distance(data, data[j])
    5 @5 ?# R2 D" y$ x' ^    return dist_matrix/ R, |* j% h, Z- G" d9 y+ [6 E( Q: u! V

    8 U8 E9 U% l9 b; }' G/ y' D6 Gdef get_W(data, k):: @& Q/ o% ?( k- n2 P; p+ |
        # 获取邻接矩阵(K邻近法)1 e/ v; r3 e& m" b( f) j
        n = len(data)7 `4 A7 s( ^# M. k) G* G: q
        dist_matrix = get_dist_matrix(data)" D2 q4 P3 a* V/ X, H
        W = np.zeros((n, n))
    & b3 p0 v- U$ J) {2 y    for idx, item in enumerate(dist_matrix):4 v4 u- t4 S8 x6 H: {# N9 M
            idx_array = np.argsort(item)  # 每一行距离列表进行排序,得到对应的索引列表
    8 Q* P( `7 \3 a  s        W[idx][idx_array[1:k+1]] = 1
    ( h+ p. i8 j  j# n. |+ N    transpW =np.transpose(W)$ j. \( j/ q0 i8 P* i( l; I
        return (W+transpW)/2& N% T, h6 O, @$ `5 S" l

    " |- w8 ^/ R3 D4 Y$ wdef spectral_clustering(data_set, k):
    + Y6 D1 b; u) `0 }" w1 ^    # 利用相似矩阵S得到邻接矩阵W
    & k; x* t  L: Y" y* g    W = get_affinity_matrix(data_set)  #高斯核函数(全连接法)
    . @! o; Y) `% x' w1 A- R$ ?, j    #  W = get_W(data_set, k)  # K邻近法
    . H$ O+ X$ T& U, p( _( ?9 G5 D
    5 k5 x4 T4 e; d- p+ j% H7 C    # 计算度矩阵D,并得到矩阵D的1/2次方的逆矩阵(便于计算拉普拉斯矩阵)3 o! r3 `& T* T" D, K
        D_inv = np.diag(np.power(np.sum(W, axis=1), -0.5))
    9 m/ G; B* y- U  ~1 t$ b
    # M/ s/ b4 @0 F1 E4 F& T0 @    # 计算拉普拉斯矩阵L=D-W
    + v/ ]5 r! E6 C    # 标准化拉普拉斯矩阵l = D_inv*L*D_inv=I-D_inv*W*D_inv0 ]% D, U! C: n# c, g. e! v
        L = np.eye(len(data_set)) - np.dot(np.dot(D_inv, W), D_inv)
    + c. l  s7 d. T& t! e0 v
    0 W, K- @5 G# z    # 得到特征值和特征向量
    1 P5 f  G9 [' [1 |! P+ j    eigvals, eigvecs = np.linalg.eig(L)
    0 V* n6 c4 v& y, N9 X; i3 m2 q6 i: @/ v. V; C9 ~, |* V
        # 找到前k个最小的特征值(索引): T6 F' n% R! T) ]# |0 J) i
        k_smallest_eigvals_index = np.argsort(eigvals)[:k]% {4 Y( U) k, m) K1 h

      w; Y, R! \3 k1 p. k, @6 c    # 取出这k小特征值对应的特征向量,并正则化
    : C* R8 i% w7 A    k_smallest_eigvecs = normalize(eigvecs[:, k_smallest_eigvals_index])
    6 P6 n/ T" v+ j6 P- T
    6 V5 x$ M7 |% X3 [" P& g; u" ^2 d    # 使用K_Means聚类
    9 J0 _" Y, f5 p; O+ R1 P" |    return KMeans(n_clusters=k).fit_predict(k_smallest_eigvecs)
    ! X& t. q+ S) V. `& T" B
    6 m2 E  E! ~# r, g, T2 M" d
    + I! b/ d. v9 A5 M4 G6 {6 Oraw_data = pd.read_csv(r'E:\Postgraduate\Dataset\jain.csv', header=None)
    1 a9 `, U# p, _' ~* R0 d+ wraw_data.columns = ['X', 'Y']
    3 _# U0 t$ Z1 O* Wx_axis = 'X'/ m! D, Y: }; W1 n0 x) u; {
    y_axis = 'Y'
    2 A/ H' n4 o  Y  i9 o, d9 K! g" K* m6 `' `& R
    examples_num = raw_data.shape[0]* ^9 h8 y* p2 [% ]+ |
    train_data = raw_data[[x_axis, y_axis]].values.reshape(examples_num, 2)
    . P+ D2 k! J) Q" v$ {; v8 ]- G! ~, C/ e) c6 k2 K* D& q
    " v$ k& f! W% ]# e5 T
    min_vals = train_data.min(0)
    : D$ x4 P( h9 G- ?7 Cmax_vals = train_data.max(0)5 E% U* B8 W6 ]- [: _
    ranges = max_vals - min_vals
    & I* [  [5 E) O7 ~, c  Bnormal_data = np.zeros(np.shape(train_data))
    0 a/ I  V' T; O6 z6 _# Znums = train_data.shape[0]( l# p4 E  U6 ]. X+ p
    normal_data = train_data - np.tile(min_vals, (nums, 1))# C" l7 ]" y8 q% j- M
    normal_data = normal_data / np.tile(ranges, (nums, 1))
    " U4 k% E$ g7 ^# v7 A9 T6 w3 q4 H9 e% d
    labels = spectral_clustering(normal_data, 2)
    / \) Y& _; L5 u; y0 x: ]+ O
    # l& e9 d/ D: `: ?" H# 原数据
    % ~- U# g. a( X" cfig, (ax0, ax1) = plt.subplots(ncols=2)
      J! d( }5 C: ~" Dax0.scatter(normal_data[:, 0], normal_data[:, 1], c='black')3 P! q/ H# A) j0 z2 ]) k
    ax0.set_title('raw data')! V# Z" G; S* ^- K5 ^8 a4 Q
    # 谱聚类结果
    % M" M1 Z5 F3 w$ k  @6 Bax1.scatter(normal_data[:, 0], normal_data[:, 1], c=labels)
    6 V% Z) B% o- Dax1.set_title('Spectral Clustering')
    3 G' x; D4 B; I& x# E$ W6 @- b* I; B- C* f& _- D
    plt.show()
    0 I) m5 b4 Z0 k4 y7 I* K% \& O
    9 |9 {0 L  P5 U( v7 d1
    4 }; E0 w, w+ @23 M9 X- ?. M1 o" U# W0 e/ e
    3
    ' w, s& Q$ |6 v; F  S4
      Z+ l" I7 p- D- O/ V( |0 B5+ e  L, ?" @6 w) `5 y4 }/ }
    6. Y) y0 P$ P9 z
    7
    1 A0 A3 P4 K% G# _9 Q0 s% w8
    # m3 G, N+ f" c94 M" H- d) I3 M. L/ K  ?" r
    10
    " U1 b% Q/ K) |) B8 o11) I# U& G0 e3 C+ B9 `' o! I& Z. k
    129 |) Y5 a. j+ x: |7 l& M
    13
    & l2 m2 }8 ^7 t* U14
    % N7 V( z% o9 y6 z$ D0 w1 g15
    0 x; j$ V& F/ h4 g8 R0 O( K16, F3 B) W' E" F  r1 \
    17
    - p( \* m1 l: r7 b. c" T: M# b18
    ' j. K6 m# _# I& I, H! _( P19) g# B+ ?' @6 R5 s7 C% k: m
    20( z2 n( d, O# M6 o6 F9 v1 d
    21
      A4 R. ?- b6 g" O9 j2 w, \3 g22
    + _8 x( O7 u9 B6 j233 k9 A. a& J, {# E7 v
    24
    9 a+ B3 k( w+ P) }* c4 E251 D  Q6 H1 x8 w
    26
    5 ~9 T+ t. P* S6 ^/ R275 P; U* I& s0 u1 T# q" s
    288 ~$ I3 h5 O5 d4 K. |0 @
    298 Q  b2 A* N2 w$ e: A: X3 V8 w
    306 h7 k2 X9 a( q1 A! \
    31
    2 i. |; v0 @2 \# x32
    8 b1 n/ u" W0 t; J8 m9 k; X33  U9 s8 w& Q5 U. @
    34$ P8 l" Y" M5 N
    35
    ; q0 N7 [- `3 W! Z: P" ~+ f5 E367 p1 k) @1 u+ X' X  u: [
    378 y! L4 v& j* n5 I" V$ D- A* q* b
    38
    " j9 b2 W! z9 e3 E! a392 t8 F9 C9 {' S# S( R7 }
    40& t1 M8 f: O; [
    41* g1 F6 ?2 X" J9 k( [
    42. ?. _% U9 y$ H
    43
    - Z2 v5 @6 j# f8 m, w  V. Q: \44
    " C( W1 y1 `- l4 D6 T45
    & s' g$ T: N0 o46
    , K2 G& r0 _8 Z47
    . O& }/ s/ s9 ?. }$ I0 l, t* w, Z486 N9 z2 K# J# t, e
    49
    0 K- n% |* E/ W* E. S/ L501 w$ F3 i1 j1 }* q* C0 D  O, @; S
    51
    ' \& |# J, ], Z+ A7 s! y52% J0 U- h- ^! S
    53( L. [  R) w( a9 P: d  ^
    54
    + M* ^/ D& r: R! K5 V2 o55
    9 J" P7 S8 U. {8 ~# R0 x56* V! X5 l* S6 n& q% {" o9 b
    57
    + [9 Q1 z9 m# D( w) ]6 _' a58
    ; [# G3 K0 w% S; f8 b59% |# U" i  b5 Q/ J7 p+ l) j1 O
    60' N$ W; m0 y2 H
    61
    % Y4 f& r# F3 u# Y62
      `- l! L* f! E! W& u9 c! \) G& D63
    4 z' k/ b. M0 \0 a7 i6 o64
    1 Y/ m. E6 d7 Z1 b+ U9 J65
    7 Y7 G* k! I+ ]- U* p+ I4 J8 \; {66/ w  n; z& I2 }* o9 j$ v% F' k' P) r
    677 e4 Z- f1 f1 T  H' b; ?" H, g
    68( K) ?- A4 S9 F1 t7 \
    69, u1 U" ~# p& K: e2 l) O
    70
    4 S: t& t  I+ z/ t2 g: w. F71
    ( Y# w6 S6 {. x$ L. G8 O72
    ) l& c' m) _/ F% R9 \73
    ) a) x# _) |8 ~. Q" i1 {1 R/ f74
      z7 ?8 ]1 s) K0 {9 e+ q, H75
    + e  K4 o8 J. i  B' W760 u2 {8 m) t0 f* D
    77
    1 v5 K, i. E! }# x, P78
    / F- n8 X% R( P9 J0 w; e$ e7 J. a791 l; {3 s  y( N: Q0 R2 c7 D
    80/ d7 C5 S) {+ C8 I
    810 [4 s1 m$ V, S
    82: H+ k) a5 [' T3 W$ I4 h
    83' K' p  q* D* ~4 T5 c5 i' j
    84
    : ?. I( o2 M4 g. p4 z% r9 z( z85
    2 b" a6 b7 u1 x86/ W4 B' v$ s3 a  W6 G" H
    87: m% n$ u0 a  ?4 m& I$ U
    88
    * T8 l  I5 e& ~; p  U- p894 C6 j: S" L, v/ G! d7 t- l6 t, e
    900 F( k  Q- w) k
    91! C( v0 i/ ~1 K1 }
    921 k5 w" r6 _4 T" k; y7 y& V* Y" g- z
    93
    4 f; X8 m* i  U" ^/ E94/ H5 Y- C3 a( l: f& w5 K: k# E: [
    95
    5 G( f! d: g( \$ u/ v% M4 J96
    $ x  ?: X2 {# O+ s97
    % U4 i' `6 Q% w( Q0 N4 m98
    4 P& T5 P! j( L7 w99
    ! W+ f) @( H5 ~- N100' s# A. A, Q/ u9 \/ ]$ T
    101
    8 J$ ]8 x; S* Z$ Q( J! o2 c' h102
    2 Y/ ]. q! V1 X: K" A! b103% e  T3 a8 D! q. S+ B0 x
    (高斯核函数)0 y: q- [# d' b+ {$ P0 u
    ' d. V) l6 o% D* D: ~8 Y: s' R+ n

    ! L% \% v1 r9 o( K* j3 _; G(K邻近法)
    7 U! m4 X8 o3 y* K) R- P  _) ^! n% Q# C

    $ ~2 e' d! z  \+ k* h, K0 i四:谱聚类算法优缺点/ E' o" F5 g; a' g  j0 a
    (1)优点
    9 E  c# k, Q6 M6 I# k& G! G谱聚类只需要数据之间的相似度矩阵,所以对于稀疏数据的聚类很有效
    0 |. O" U+ ?7 G5 o5 `( ~0 [0 L使用了降维,因此处理高纬数据聚类时复杂度要明显低于传统聚类算法9 o; J, P% K. H  L
    谱聚类算法建立在谱图理论基础上,与传统聚类算法相比,它具有能在任意形状的样本空间上聚类且收敛于全局最优解
    & D# v0 v1 K( P8 ?1 c, d. c1 e(2)缺点6 m  l  n% ]& g2 o. e: M' u) m& j6 ]6 z
    如果最终聚类的维度非常高,则由于降维的幅度不够,导致算法的运行速度和最后效果都不是很好
      S0 M# D1 n2 O5 h+ e/ P% C聚类效果依赖于相似度矩阵,所以不同的相似度矩阵得到的最终聚类效果大不同相同7 E) V4 @3 O0 t3 u
    ————————————————
    , [6 }  W9 {  W8 a9 I% L版权声明:本文为CSDN博主「快乐江湖」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。# k& h' F7 ~# o$ d
    原文链接:https://blog.csdn.net/qq_39183034/article/details/126747494
    1 R& W% S) M* S1 K0 L# o# T- {% q0 Y$ _  q8 y; p

    0 h* i) g$ I2 s' V% Y( i
    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-8-24 04:03 , Processed in 0.848924 second(s), 51 queries .

    回顶部