QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3031|回复: 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
    【数据聚类】第八章第二节:谱聚类算法之切图聚类、算法流程及其实现# Y& a9 @5 B0 L; z" g
    8 {. W& q2 z4 m& Y  B. z) H
    本文部分内容源自刘建平博客,在此基础上进行总结拓展
    ) d! ?( k- T$ Z( }4 x: _1 q! N' \8 G7 \6 W4 g- Q
    原文链接
    2 B. _! |4 ^2 j. P# P; W文章目录
    * v$ E$ K" k$ g一:谱聚类与图划分
    # l$ ?& d% s. w8 ~(1)比例割
    # _4 P8 a* `: O8 b( g" Y(2)规范割(常用)
    7 D( _* b( }% i: U. o二:谱聚类算法流程0 \/ F7 I& v2 a: {/ Q8 F9 ~
    三:Python实现
    & ^3 c3 `5 C( j! E6 q四:谱聚类算法优缺点( `$ o' R* j$ h; ], `+ Y  O5 v
    (1)优点
    3 I, p/ o" L3 ^, N. A& y3 f(2)缺点
    0 b( D( e5 E% \' U一:谱聚类与图划分3 J4 \) q3 V8 ]
    无向图切图:谱聚类算法根据数据点之间的相似度将数据点划分到不同簇中,因此将数据点映射到无向图之后,可以转化为图划分的问题。对于无向图G GG,切图的目标是将图G ( V , E ) G(V,E)G(V,E)切分成互相无连接k kk个子图,其中( U* M" I3 ~- X

    / s4 t9 ~8 A8 y$ j1 D! R2 M每个子图点的集合为{ A 1 , A 2 , . . . , A k } \{A_{1},A_{2},...,A_{k}\}{A   D0 o7 Q, I! x7 `5 j$ v3 O
    1& T; |5 }  {- b* }& v
    ) F" F) @7 K3 [
    ,A
    ' q, g. ]1 Z3 k2& B# F. p' M" P: k; q8 k

    ) j4 F; e) s7 | ,...,A 0 n. W9 a& b4 Q3 }, @$ Z
    k! Y5 v. L/ g& r7 L  ]4 v

    - [4 P7 d& l. U# H* A },且满足A i ∩ A j = ∅ A_{i}\cap A_{j}=\emptyA ; M9 H8 g$ ]0 A& a0 O( T) a# M6 E
    i
    : z1 ~& {/ ]" G4 O% [
    ( w+ H1 V+ n- J( k3 z/ e ∩A
      {8 _  ~6 u, }j
    ' e3 h3 t2 O: L
    : u9 {$ i$ \8 @4 M$ O =∅、A 1 ∪ A 2 ∪ . . . ∪ A k = V A_{1}\cup A_{2}\cup ... \cup A_{k}=VA   ^- R# O( L5 F) f0 q" M
    1
    - J5 t& l" l, a( v( I3 S% i' ?  c2 s
    ∪A
      ]; }% Y: b* ~9 o22 h) I9 c0 T5 M  f; Q8 h. `/ E( E

    : Y2 ^$ J$ @5 x" i. V7 N  D- p3 h ∪...∪A 4 H# g; _2 l8 G" d6 ]+ T' D
    k2 k* x& |( u1 }. Q1 b, S3 y1 o

    , F; B$ H2 p! Y! X0 ^0 Z =V
    1 l5 d2 J, N: d9 X对于任意两个子图点的集合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)= ! s$ `- L1 W: u( d
    i∈A,j∈B. _$ y, W6 H$ z8 c

    2 N# V0 o$ o% O3 C& e  B% S
    ' ^' \' l9 g; ]$ x# I( f8 x w
    5 S% C& A, m5 \+ [5 l7 Kij
    ) f. P/ Q* A+ i! F3 F. T  M8 q. O

    ( J' A" }2 U- n1 @! p/ k7 i对于k kk个子图点的集合{ A 1 , A 2 , . . . , A k } \{A_{1},A_{2},...,A_{k}\}{A
    6 s- v. ]% h' Y: c% J( l& H3 S8 G1$ s# a8 P; w4 K8 Y5 e' Q" ~
    3 ]+ k8 Z3 p! a( t' l2 S' f
    ,A 8 k  l. u% O) ?
    2
    8 d& ]) w: a. [6 ?% C" }7 f
    . u  _* A$ t" m; T$ A0 g ,...,A ) _1 W1 |2 o+ k; T8 x; |
    k  k+ T& w$ \' g0 }- Q- n5 r

      r: b; k5 V8 R/ Q3 X8 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
      H* U4 H3 Y- F: r1) L$ P0 C& Z( B
    ' L* f; G0 e, `' L0 F
    ,A 3 |* ^: @3 s/ z4 ~1 ?
    2
    8 P7 N2 N  d* ^. t. w) q
    1 e. t- ?; _/ W7 d2 S' v ,...,A
    * p* e3 [+ l* g" Ek0 j3 A9 |5 Q5 u9 s1 U2 P3 V0 S3 R
    4 |1 ?0 @  O5 M& x2 g
    )= / D% K1 j) I$ x2 {4 O! {) A; a
    2  P  C* S! [# p5 L6 N0 Q
    1
    & c1 K9 d, m5 \3 M2 \& M! X# D
    : A2 K8 R0 R2 N8 F" @' r; K" L- O% Z5 H# F* T" e3 M4 _
    i=1
    - B0 @% I, y* R+ t6 Z: C; V- c+ L5 r0 T( t/ G1 y4 |( t
    k
    5 ?+ b7 L# P8 t& {$ H1 h6 [
    ; Z! E  G2 z7 A# A6 y W(A
    ( A, ]4 d( ?7 Q# _  l) qi
    8 i2 V, j4 S2 Y# D3 w  p' k- @; v( n$ X+ p
    ,
    ( H- A3 `+ c! k8 ]A
    & r. V* C% w2 z* ~+ Wˉ% q9 [  e: D2 H" m. T  B

    * R( f) ^0 L! y4 O. _i9 {& i# b, `0 }

    9 ]2 u" D7 t; C+ b0 n# L9 [7 [ ) (其中A ˉ i \bar A_{i} * K8 l# K3 K+ h
    A7 B, `* H6 l( U( A: @
    ˉ0 m/ J/ W1 q* p' V9 R, x& I( k

    7 z! g. B; y" K) u- _i. D& v3 _/ J; v8 n% T: k; Z8 [" i

    1 ]- J! E& F- E' w/ n 为A i A_{i}A 2 f& g2 M" d% S4 l
    i* i  Z0 i' l3 b" z% k. i6 I7 T3 |
    3 A; T: t! C& a
    的补集)
    - g5 D: U% c* h5 Q4 ]( L- a可以看出,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
    + t7 D, ?0 m4 |4 S: b# Z) o8 e% v, p1
    7 {6 g' p: c) B, u: E$ H( X, _5 b7 w
    " J& g/ v% F5 F( @' ~& T ,A 1 X1 {% v  U& B8 V3 \. L' o
    2- B0 F6 f: Z' q* R, t

    9 |% O% z- J! L ,...,A 3 n8 e" ^+ S+ X4 C7 z. ]5 m
    k$ H& `1 m: F! T4 \* l8 [* a* }2 }

    5 k; z. c; x9 H8 H/ r: A1 p )=
    7 o: ~5 O+ t) t' F1 _$ A( a2. p) V8 l, U/ W6 @. K* ?8 [  u
    1! u/ k1 S8 b0 j) ]

    ' d$ }8 \7 Y! P2 e9 C- w  d9 J' u) Y% G7 Q& ^  K
    i=1
    : g: A% a7 x1 T3 }) c
    + Q6 n8 ?. a' G% {1 `k3 l. l8 P3 O* {1 @  Q* H

    * q% f. n# \- y* c W(A
    9 ^& u4 x- d$ h! X# [( k1 Gi- t0 l* R# N, F+ e

    1 v7 H8 M5 ?/ d , ' }8 q* q  W# R8 F+ _3 ]$ v
    A0 i5 i8 ^7 P1 ?1 a$ V9 S7 s
    ˉ# Z) H6 O" J6 H, B" V: a

    & ?4 L  o9 N& Z! |i
    . }* }3 B5 W% k1 R3 E) o5 ?- k1 P+ u2 l+ R  _
    )在划分子图时并没有考虑每个子图中节点的个数。所以在某些情况下,最小化c u t ( A 1 , A 2 , . . . , A k ) cut(A_{1},A_{2},...,A_{k})cut(A
    8 o7 q: E) i5 w  n1% j) B; i$ w  j
    # Q9 c9 O9 o; d- r
    ,A
    $ E+ X, p  i7 K9 I2
    $ V% K( L; s+ T, h% ^8 n( r9 R
      U9 K* Q, ]+ r( p ,...,A
    & f; o) G9 E& T' c  N7 k; Kk
    / N9 k3 F. a$ [5 i. N1 A' w. v% ^* r; S; m* x! h/ O  z5 T1 a- Y
    )可能会把一个数据点或是很少数据点看做一个子图,导致子图划分结果不平衡2 j) Q% @% ~0 f0 v
    1 q/ W# [" J  d! d' x
    例如下图,选择一个权重最小的边缘的点,比如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 0 U( y9 p2 n& Z6 ~' X
    18 q4 x& C+ Q7 F. w9 Q' y

    - b$ w" U! l$ R! |0 G ,A 7 `  e! L5 f* U
    2
    8 e* F% f  w6 J: q# i, d& H5 d
    7 |5 f: Q- j. N3 i, P. m; {8 C ,...,A 2 f8 Z' o2 v% o3 X5 m
    k4 o8 D+ F- |- h* M, I
    - C- ?* F+ b  J5 C: p. ~# B# r8 K% a
    )但是却不是最优的切图" J7 K: Q* i) v. G. z
    " y# K! ~& a; H9 Q; N7 V7 \  q  X" B
    为了解决这个问题,会引入一些正则化方法。最常用的两种方法为比例割和规范割) K& K! J- O1 c/ V- u% z
    1 x6 ~( [* Q( K% [1 Z' {. v
    比例割: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 c* M2 R6 }0 w0 ~) R1
    ) o0 I+ ?$ Y$ x6 t2 O/ x! G3 j8 d+ _+ ^- r, O7 b
    ,A
    1 P5 F5 [8 t5 Z) ?2% B& I" U1 l2 p  Q) d* M- |  v) t
    / |, Y1 h1 k0 t' J! V. \" X# E% L
    ,...,A + k$ j# M8 q$ q; N) R, l
    k; g9 Y( U/ v3 ~& z% `4 i. n
    + n+ e* H- g! z
    )= 1 w# j0 R7 K2 ^( D
    29 X0 r6 M: k2 W( ?$ i
    1
    ( a& ]8 G. K3 d# X9 O" r; v
    % O& }& f5 q2 e8 D, l1 Q8 X* k
    6 y* _- ~- t. Qi=1; W, q: Y. V6 P' C/ n6 T

    4 H) ~0 k+ D0 }* e+ ~" b4 ~2 zk
    ( b, }* S' @* j# G) J  w7 K2 K6 C. ~+ v3 P) b# j
    " X' K* F( s. `$ g
    ∣A
    : e  T5 H( i& m3 u9 h' e( J, {i
    ( N- c  J4 A5 t* B. [) |9 e
    : ?9 E& f; J( Z4 m. {
    1 S1 ~7 w2 f$ t: Y- cW(A
    2 r3 W9 x1 }2 W8 F& ^i2 U9 f; v4 E, a- W1 X
    . c, ]+ F/ L: M4 D. S  }% Z; J; k& g
    ,
      C( J1 u: n) I+ |" i0 l! KA! M9 o. d; \) j
    ˉ
    1 N# x7 R% y1 n! N( _7 p9 C1 C. v! T2 M4 ]
    i
    4 |! I' L0 M, m8 k$ U$ M' ?# j( j$ O, J# }, Q# C
    )7 C8 t  ]5 E/ t& c. z

    ( F# \' P- R; g; {
    # q& f" _9 Q* N% h规范割: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
    ' k- _" g2 _$ N5 {% T1
    8 \7 r  ^6 I; L: z, W1 G1 I, d  [8 ~$ o, @1 r: Y* }1 D" H! H
    ,A # w) Z0 m! ]5 H8 `. T1 x
    2
    0 w  I* m, w* C2 w! k4 D# v( k; ~$ J9 K" A6 I" T
    ,...,A 6 s! X; y( e. q! U4 M7 a) \+ V3 a
    k
    3 X1 i  j/ i, `
    : U7 D0 E9 _3 m$ }/ G, E2 O% s )=
    - Z* \2 L5 _9 o2. o/ M1 ]$ g; L  \6 j/ v* G' T
    12 R# O$ E7 X) ~& F% p+ n% F

    + j& f" v$ t) z- P* H: |
    & @6 O2 Y$ I9 R  ci=1+ u3 f# m# A5 ]* i6 D8 e& |

    7 x/ s1 u, T+ a! W3 f) r2 C5 B; vk
    . s- N' _/ u4 f. J$ n0 W! X, y( o$ T) b- X. J& k. n0 m* J
    5 N# u: N  B9 [7 G" \/ P
    vol(A
    ) P! I- v: S. o: S$ A3 c9 a; r; F0 pi
      l2 t1 P" f8 b' w% r" X7 r
      Z% S6 _- n; q- w# ?& l' B ), R* Y3 D+ `# u4 O- |9 \. w
    W(A
    $ J' B. o8 _8 U4 j4 u2 l: i: g6 ]+ ]i
    , c- |8 C6 I4 H! W4 y; b& r5 }" j! r0 U' s8 U! _5 _6 R/ c
    ,
    : T# W7 A. m& D- W0 a' P( kA7 ]* s+ H- |. s8 j
    ˉ! v" w7 g1 q: T  Y% N
    / a0 N2 t( K/ j4 @+ c
    i
    . e6 p7 `4 X3 f4 _' @
    8 H/ c. ^* E% ]% \8 K )
    : e. w  ]4 W' [, Q& Q  j6 [3 I6 A9 f; m9 ^8 s/ H3 R/ I, O, L. H3 h/ k

    7 ]  B1 v2 z$ B% X  H2 \/ R1 }(1)比例割
    5 B7 V2 y! a( k6 S" W引入指示向量(点击可查看指示向量定义)h j ∈ { h 1 , h 2 , . . . , h k } h_{j}\in\{h_{1},h_{2},...,h_{k}\}h
    - q3 T5 m+ B5 g, Mj
    - M. v1 u+ o* q. o1 W4 P& t
    9 A7 V) _2 A* T ∈{h $ p/ U. G. \) q- K
    1/ S9 ^7 K# K2 L2 O! `$ X2 G

    , N- p- A- H( M5 ]" ^8 E9 S9 ^! _ ,h 0 @$ z( @1 a3 N; P6 r* X+ C: w6 P# |
    2) s( T" b2 F. k" ~, _3 M

    / E4 L7 g; D' N) Z$ h ,...,h + D) C! L7 n! V4 G* f- B
    k
    0 {% X. {; ^/ W8 h* H
    # }$ [# E& Q7 N7 A0 g+ i },j = 1 , 2 , . . . , k j=1,2,...,kj=1,2,...,k。对于任意一个向量h j h_{j}h
    & t, Y) l6 `+ X+ ?! [j3 ^( u% M& u+ V- e. c

    # T/ Y6 b4 _$ {  q ,它是一个n nn维向量(n nn表示样本数),定义h i j h_{ij}h 8 D) m+ _$ d( G
    ij  l# X$ a; A; w$ q# U( m( T* \

    7 {& O4 ~+ W; G4 t* }& n1 | 如下
      t2 k( B/ w0 [' ]3 ?$ }1 R3 A, X( P7 K
    h i j = { 0 , v i ∉ A j ∣ A j ∣ , v i ∈ A j h_{ij}=/ F: U/ _* S- |
    {0,vi∉Aj|Aj|−−−√,vi∈Aj. Q  o4 {8 [( I( Q/ w, n2 m: o
    {0,vi∉Aj|Aj|,vi∈Aj
      j9 v" u6 L2 r% @& N# jh
    ( ~! e" z- u' v5 B+ N( [4 x$ |ij% t4 h7 `" f; Y3 j6 n$ k
    9 l1 \( a% N* W9 Q# J
    ={ 6 O7 |7 K: j! _1 T. q+ A2 G
    0,v
    4 F8 d) Q7 `; b  g1 ni
    : h( A$ Z, i% r7 v0 s  [5 C" d2 U% W+ j" R

    1 Y; t2 `( w/ ?/ {  U3 N/2 G3 F' n! w$ B0 f
    A 6 r) W; }6 v) z0 B1 q) E
    j
    " Z6 H- |0 B+ w1 a) w/ v; A5 j1 y$ e, f! D3 H, d, Y0 E& s

    + G6 R/ |3 x5 f4 q6 A7 i4 V2 Q∣A
    & H6 F, f- ]9 ^* a$ _" gj
    ( d2 P$ u1 B( v5 y
    ( `" F6 H& _8 f4 M* v3 o) X- \1 n; l( S

    1 u4 D* @4 M) x6 _6 @! ^7 x ,v
    & y/ ~6 n0 |( J  Ii+ u9 R$ q/ ?; r1 ], h8 q
    * ?% H) A7 k8 D6 J
    ∈A
    , @' F. b  Z3 V- D+ rj1 C0 T* o0 b/ y5 P+ L' `

    5 J- ]9 ?6 d/ z' S5 S- F; Z8 A' |9 K* ~

    ) n' N# q. L4 q+ N' H3 q! L
    3 o$ v- M7 B4 p! z3 S7 P& g
    3 C0 Z9 @7 N7 w/ f; E4 w! ^. D- Z* l于是,对于h i T L h i h_{i}^{T}Lh_{i}h
    2 z) M+ F3 u9 r- \i
    ( {9 s- e  r. ~1 KT* A0 V- h4 X3 z4 C0 l

    ; I  I! P8 E9 B( C Lh
    - m9 C8 Y& j* X  y. d9 [! Qi
    ! L4 `" S+ j+ x5 i1 y% X
    0 d2 q  X" l  W& ? ,根据拉普拉斯矩阵性质可知1 f$ Q2 g  d! U5 `) Q0 a! a* A
    1 ^- K) ?/ Y7 C
    对于任意向量f = ( f 1 , . . . , f n ) T ∈ R n f=(f_{1},...,f_{n})^{T} \in R^{n}f=(f 6 i* e8 d* Q8 L$ M* e
    1
    3 }. A' E9 C3 H+ Y# t/ e# n7 o4 Q; h' a1 L% N7 g
    ,...,f # C! l0 c  u, u* W# @) Q: x7 t0 y
    n; ?2 C! `. P7 s
    ( l; x, S$ b) \  g) R
    ) , L) s' r+ l5 B1 Y0 f- o3 d- E
    T
    ) K5 U) w* z- \! E ∈R 5 d$ S  Q# T& z$ M# m, |) W
    n( V3 S7 I# G: |2 A* h" s
    ,有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   C( T8 H) `- O: q3 F  t0 d4 v
    T# W% @9 y$ g7 p5 ]- ?# I
    Lf=
    5 v" T6 S4 X$ |: c2
    4 J6 c' G2 v7 H7 F; s11 x! k% a2 z1 g4 ]
    0 \/ E. k0 x, C- g5 `4 A0 k
    + B; w4 |% T" {# s4 _
    i,j=1) y& ^! \( h3 M. ?  N0 O, `" A
    $ o( r) S" [+ X5 \- |. s& q' ?
    n# J( i- J3 i; A( C8 M; ~

    " n" a5 A# ?& K& G& P2 M9 n4 |/ G w
    / x+ G* {! K+ y8 Wij
    ; x) T8 A/ L( B2 x, g
    9 L, D( i8 Q2 H+ t! e (f
    3 P8 }% Y3 _/ j! ii5 ^1 H& }. O4 l

      c/ ?6 {! @" g1 F −f 7 E) w3 g) N- ?; f- ^" Y
    j" U* b$ [% X$ N8 D$ J" ]2 P

    3 i# \$ u* U, ~3 T. l! g )   T- ?8 t, N( w7 [8 n' V# s
    2
    3 A% U& e1 h9 P- g, E
    - {3 _% x& [5 J+ R( ]' 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 ) ∣ 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}|}
    , j- i1 q+ [* {0 C5 @3 ph
    . s, r3 @7 I" t/ q) }: c/ R. vi; P, _: O4 j4 ^! {
    T
    ! F$ a& ]+ F6 F4 H$ M! e/ \. B1 t0 L% l% u: c4 r8 L9 X
    Lh
    % K1 E# Z) t+ q% Z! Ui5 K, \+ P7 Z' E2 j9 ~! o7 g

    , _7 Q6 v9 T( @2 ~ = . ~1 h: n2 q$ t- B) I3 b% e& S
    2
    # I/ [8 ^0 n; J" Y) P14 H, u8 H2 p# E& E: q
    % X0 a1 w6 Q2 k3 h! o
    ( R  c( X- f( W& O" Y) c" L! x
    m=1
    1 Y  m6 V$ v! F$ R. v5 |. V. u- H! m) R! I, `: a2 e7 F
    , t: h* C+ U: o% ]
    " ~7 X8 [: q& S
    n=1
    7 U) @+ i  g. v* G/ D/ e) H( {8 N
    8 K( R5 q5 r& |
    w
    8 }$ Z9 S1 V0 H* F4 Qmn- o: f/ ~1 O" o5 X4 `& f$ K6 D" s
      Z8 O3 s, V4 t/ B3 ~
    (h ' [) V/ Z( C# j( f( v
    im
    6 f, u& p9 B1 |
    # y6 M. A, T+ s: x* @. i3 a −h ) L# ?& \/ a0 y4 T  Z4 S" R! c) m
    in
    - ~6 }. V4 A  ~5 O+ ~- `0 b% h: ?# j: O4 k( @" ?
    ) 7 ^) _, F9 ?, R+ r* x6 {! g
    26 ?: q; U4 n  B9 |
    = " ^) ]) F" P5 w/ U* p- Z! ~  I9 R
    ∣A
    7 j* G( }  q/ P# D% \3 S8 J0 yi
    * B8 }: N' _9 O. A4 k: s6 w( b0 Z+ V& ~
    / w$ l$ `# M  g2 J9 R
    cut(A
    ) T  m( s1 N  ~i2 H0 ?) T" f7 k

    3 u6 Q$ F7 x6 o ,   N2 ^: x! v( C1 U" v5 ~! j
    A
    8 H. |: z  M8 t( T! E# z- [5 hˉ8 J) |( m3 k! L2 _5 Z: D
    & W3 c$ l. S; {5 U
    i+ _8 C# k& B, G  k& I
    , [9 b5 |2 ^; E. W9 ]
    )
    , M; J7 T, O& Q- f; ^( O0 Y( I: ]: a% I: @

    2 a8 a, w! n$ `+ U2 ^- M* i0 U' A- ^( l6 q' w! s( {
    严格证明过程请看刘建平博客:链接* U1 u! D9 I- x1 p* O
    可以看到,对于某一个子图i ii,R a t i o n C u t RationCutRationCut就对应于h i T L h i h_{i}^{T}Lh_{i}h 0 S! e+ |8 O4 q: ^: N
    i
      \5 K1 R+ d. M2 sT
    + a1 T! h8 K7 L. F0 Q* b
    6 W+ x% b) C7 c# M Lh
    7 G/ [$ n: k" y( |i" t. L! K- X0 X, X* g. p
    4 d$ Q5 L4 U2 |! O; }3 ]1 J
    ,那么对于k kk个子图, P* ~) A9 s9 @1 p' F( Q. F& N7 t

    - N# [1 j2 k! d! L; E, b9 j! VR a t i o C u t ( A 1 , A 2 , . . . , A k ) = ∑ i = 1 k h i T L h i = ∑ i = 1 k ( H T L H ) i i = t r ( H T L H ) RatioCut(A_{1},A_{2},...,A_{k})=\sum\limits_{i=1}^{k}h_{i}^{T}Lh_{i}=\sum\limits_{i=1}^{k}(H^{T}LH)_{ii}=tr(H^{T}LH)
    . I& T7 v! `* t$ ZRatioCut(A
    " j5 p- E8 N, o# H1
    7 X3 ^4 D  {$ V/ f" Z
    . r* t- L( `# a; S" c' R8 N ,A : i8 C+ m9 c6 E) T
    2
    % V) n3 V2 u0 p3 S- b. ]/ n  A( N1 Y/ ]5 f% u. H; z. w1 d
    ,...,A
    + D3 L- q+ G* J/ K) x, gk
    # E' r0 `8 g" V6 U/ @
    % ~; ~/ e7 t- M" Q& a* X; |! Y: l )= . p, @3 s& N. n0 ?" O- @
    i=1
    ! c& ?+ {' m* i8 x: B  X/ P. _9 ~
    k4 Y6 i- e# L! W0 n6 O- ^  t

    + q' I; U' _$ z  R+ R( Y h
    # Q2 k) b( k% S: `$ ]) Mi
    4 J- T. c. E$ J% c. s, ~5 F! sT9 L6 P6 Z5 P6 A  |7 \
    ) R( y. a9 U; J/ {, C; r! o; R
    Lh ) l+ ]5 u  S% a: {
    i$ \, K$ G; ^$ w. P

    8 d4 ]) Z0 i) v4 Z+ [7 k =
    * u( v- i3 D/ s: [2 wi=1: p: d/ B( s3 c0 m" v( A$ }& x1 @, m
    7 b2 `/ L5 @* T. c8 ]
    k
    : D1 p  F: p1 _/ ^& d9 B" V: [
    + W% f3 l3 Z0 `2 U (H % U; I' r  \& ~! A9 F! i
    T" J! m# H; }$ {! L9 N4 a
    LH)
    ! s: g) q9 A5 `& T7 L& j# d3 oii1 G6 N6 X" G- ~) d5 x3 i. k
    3 a2 u- U. F3 Y3 }: b
    =tr(H
    ' P; X( Z4 i  gT
    % g3 {3 w5 S- U' G/ O. A LH)
    ( h+ ]* q: J; P! ]& R7 j- _% Z  `7 L$ g8 r
    因此,R a t i o n C u t RationCutRationCut切图本质就是最小化t r ( H T L H ) tr(H^{T}LH)tr(H
    ( `, l$ t2 O- ]& B' c& }5 y; \T
    ) M& U: }2 R" b: R+ W LH)。又因为H T H = I H^{T}H=IH , V5 }: U) J4 l5 O- _* g
    T
    + p3 J; P) \) d4 S H=I(单位矩阵),则切图优化目标为
    ( y# m6 E* t4 j- R3 x3 {1 Z
    * i0 b1 w: m( C) N  va 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
    8 z7 m: P' F0 WH
    * x" f1 A2 V) U' B9 @argmin% o% r" I7 U; z% |& n4 {

    . P7 }" g/ I) ?3 v( h" T
    0 N9 K4 R) [3 j# i% w3 ~
    - f! Z7 \* ^3 d* h! `- F0 F tr(H
    6 K0 C8 g) a# S' oT$ K* f& d8 I/ p; `4 I
    LH)s.t.H 0 h% c0 B" p8 W2 X0 w9 J
    T
    4 W; v, |1 O: V  T# M6 r H=I7 @2 z7 Q: x0 U9 R) X; y

    ' ]4 u. U) E5 t$ z( v6 L对于优化目标t r ( H t L H ) tr(H^{t}LH)tr(H ! R2 k3 a1 g3 _) H4 }
    t$ D" ~  R7 g* R
    LH)中的每一个优化子目标h i T L h i h_{i}^{T}Lh_{i}h 6 D! E. r3 z6 c1 t  S
    i
      A4 c! X& M; w+ w( f6 ~* Q0 V7 P# bT& K2 w7 ~- ]6 g: m
    $ @4 h8 m7 O9 [5 O
    Lh + }6 s4 ]3 |& |6 [1 ~4 z
    i6 S0 D) ]) J, x2 W: Y1 R" ]

    ' |) u: {% e9 B. N ,其中的h hh是单位正交基,L LL为对称矩阵,所以此时h i T L h i h_{i}^{T}Lh_{i}h
    ( k% B4 M4 X  O0 O! ?3 c9 u- ei2 i- S4 }4 [) I) g. m9 W5 D4 f7 X* l
    T
    1 e8 P$ l% x/ y$ S
    : m6 t$ X0 P" z- I/ P" p1 m" r Lh ) A6 Z- N. [! Y$ ^3 H. M% J. P1 G
    i# S1 S' `$ G1 w5 r, ~

    3 E" M9 S0 ?; J. T$ S5 o. a) i 的最大值即为L LL的最大特征值、最小值即为L LL的最小特征值。而在谱聚类中,我们的目标就是要找到目标的最小特征值,得到对应特征值向量,此时切图效果最佳。所以对于h i T L h i h_{i}^{T}Lh_{i}h ; ?5 |% C1 v, x" b7 G+ A3 Y
    i6 a2 w  i7 k6 {3 c, E( f. [
    T
    , A, P" s1 t1 y6 i+ m; g/ Q( [9 A* Y" K% X
    Lh 1 v( x) @% r% j7 ?' Q# t# I6 k
    i: R: f1 ?" g) b1 Z3 f- r' j9 u
    2 n$ L# K, f* p5 x2 P& n
    ,目标就是找到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
    0 h# _; m+ M6 \. o3 f: P! zt, `: x# [9 E# x
    LH)=
    * e; V& {/ N1 R1 y1 P' Y+ F6 Ni=1
    ; i! y6 M/ A' U' y5 ]% n0 s* T* Y; Q. `; y7 h
    k
    6 u* A6 H6 C2 x5 \
    5 `3 i; @& u+ ] h
    * @: o3 I4 O, l. h$ V9 W4 Li. ?$ ]* D* A' w# y
    T
    4 m5 z5 B  |2 z2 ?/ t2 Z
      B* H& ^5 ?0 i/ d0 ~9 s0 w; [ Lh
    2 Y5 ~* Z' c( \: P) j: Ui% b! [+ q' R( J% f) [+ s/ P4 g

    ) m' |7 `$ [# l8 R ,则目标就是要找到k kk个最小的特征值
    5 D; Z4 a2 ?$ [. `" e# {$ h0 B  B; W) v0 Q8 P$ ?
    因此,通过找到L LL的最小的k kk个特征值,可以得到对应的k kk个特征向量,这k kk特特征向量组成一个n nn×k kk维矩阵,也即H HH。一般需要对矩阵H HH按行做标准化,如下* b4 D' h. J& j% y) n5 l0 E

    * k2 B  Z2 u' T4 n一般来说,k kk远小于n nn,也就说进行了降维
    3 U+ K& w) k1 D1 O9 fh 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}}}
    % p6 H( V6 w! F3 hh
    % T! I/ Q( |9 }; yij
    # _9 i. s  W% E" w9 f% @  l; M1 n0 G

    + q1 f5 P, b  _; h, a4 j5 p = / h4 u0 a" K" l' w& l
    ( % y1 ~/ g1 J! _+ q8 X) t. @
    t=1
    $ Z( j; l3 V+ z! X# R  O+ L% Q( J$ A9 }0 m- b, V
    k' }% f0 z6 m# [: [) t

    + D7 t8 [& |: c% [1 c$ ?. D3 J h : n$ C$ P& S; i: }( l! x& U5 h
    it
    4 O0 F# e& {  I( @+ _. Q8 n24 A" H, I! Q0 ^; g

    / }0 g- g; L4 U( e ) ; d1 b% w0 v' s$ B0 u5 N
    2& Q* T0 d7 c1 ^" s2 W
    17 B# L) n( l2 b6 c. e
    $ a' l" d9 D! j6 [! d
    6 x8 {- N" R7 w1 Y( _

    1 ]% ?; j4 E1 G& \h ) C& h5 a+ d7 ^7 R+ D( U- _, e
    ij7 t$ ]+ o4 n2 W- c& g0 Q! x
    ) k4 |* D# O  J4 Q& t& J7 J0 ?

    1 N" e9 q3 z7 O
    # q- J1 S7 J) K+ U- W% i, D2 b+ m5 n0 Q0 Q

    % x  H1 i9 i% o5 @" u这里需要注意,降维后导致得到的指示向量h hh对应的H HH现在并不能完全指示各样本的归属,因此一般在得到n × k n×kn×k维的矩阵H HH后还需要对每一行进行一次传统的聚类,比如使用K-Means聚类
    9 N0 w7 h8 d3 u; k1 g8 G5 p; K+ R- A3 h
    (2)规范割(常用)/ \+ r0 @2 ^$ x; u% F( }
    规范割和比例割类似,只是把比例割的分母∣ A i ∣ |A_{i}|∣A $ M; }3 T' t4 D9 T
    i
      X( G* G4 r0 K& Q8 _$ _- g8 ^
    & Q! S% M' @+ ` ∣换成了v o l ( A i ) vol(A_{i})vol(A
    % f  X; ^! Y$ _. I% W9 Si
    + K6 q/ [6 f9 v) V8 b
    " ]; [# U4 r+ `" I$ B ),定义指示向量h i j h_{ij}h
    & n. X5 J+ I, ?& Sij( t1 Q% ?. b$ |( U; c
    . P* u0 I" z5 r' X
    如下6 n9 N8 W, S% ~/ r3 w" C% {

    : }7 V9 p$ n4 U. w/ th i j = { 0 , v i ∉ A j v o l ( A i ) , v i ∈ A j h_{ij}=
    : t5 f. d+ u& \{0,vi∉Ajvol(Ai)−−−−−−√,vi∈Aj! S6 i' `9 u8 j" _# v
    {0,vi∉Ajvol(Ai),vi∈Aj
    , R" b% y5 C9 Y  k: y4 n/ R5 ch
    ( m; Q4 W( h, D! Bij
    8 {' T9 a. c" N0 n' h+ y* }7 y( E4 U8 w' F& Y- n
    ={ . Q4 O! Y: f" y; b
    0,v
    + z% o4 a: c6 I% g- Pi
    ( H4 h8 H) N0 `: o; `9 F4 y+ J! ^5 w/ p6 t/ \) P: B
    4 N) n; W0 \* O5 I$ D. X
    /5 \( W$ m5 \2 I, b# h% r6 ^* B
    A
    2 K/ P0 i2 w( S- fj
    7 P3 g" x# S9 i/ {) M) E/ j, i6 R2 j" w
    ' x+ b: ]* u/ B" ~# M  W
    vol(A , O3 m6 d# c& L& s' O9 d1 h
    i$ r9 ?) {4 H- V

    5 J# e2 I5 |6 M4 B- ? )
    % Y4 {: a; E: o2 G* o
    + d( k0 m1 p9 P6 j. h ,v # W, j) f4 j( a5 w
    i
      S5 ^9 c2 d4 S) h* d
    9 B' G. ]! k% y3 X7 t; _5 l1 M ∈A # i+ N, c! U% A5 b7 v* B
    j
    ) R3 _4 ]8 `* L, R! @. @) k! F3 U" F  C) D3 C7 B; U, M/ H5 j
    4 B: c3 d# I3 R

    " q+ o: y( B2 V8 u2 g$ R& S
    $ q! Z2 J! T4 L, K$ a
      q* f! {/ D- _% s6 A于是,对于h i T L h i h_{i}^{T}Lh_{i}h # h$ Y% k9 Z: e$ d3 B. ?7 {3 v0 b. u
    i' n- y6 K' O- l& ^$ D% ^; o: ?
    T
    4 s* m8 @: ^' ]! a  a! L' u. M# r, s$ F
    Lh 0 W& f- c3 t2 s, J( @" C
    i
    * Y. O9 K# l- ~- |- p& l# f' E" F0 e& f
    ,根据拉普拉斯矩阵性质可知
    & s" T+ I) K! M7 ^4 z4 j: T" w/ _% ~! j# V% b* o2 }
    对于任意向量f = ( f 1 , . . . , f n ) T ∈ R n f=(f_{1},...,f_{n})^{T} \in R^{n}f=(f
    8 H/ {4 s: I+ u! @$ K2 ^& s1
    $ ^+ B5 z. y! j" f
    # }& t7 t$ n( p" Y( D% a ,...,f
    9 |! p" c  y4 W6 H  ?n
    1 y9 P2 r; N% I, U# {9 o4 a8 ?4 _  Z5 k
    )
    6 R/ I9 F5 ^5 B  qT/ i+ Y( Q: e. `, N5 u8 g: z, H$ z
    ∈R
    . b/ X) }  H: Hn
    0 I7 d5 E4 {1 x, y- j* ]3 Y5 x ,有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
    % @8 ]: S  E  u# Y' P5 v* OT
    * E$ U0 M8 j1 l* ?1 y& g Lf=   w* V* T0 ]+ m7 h  e  {& `. V, N
    25 j) C2 r" g6 U) V5 N3 {( o* g
    1
    + }: V! {6 m! z. J( _* S
    ( f' A, i# J& F" S' V' T: {7 B4 O
    5 N& ]9 I1 }8 |2 ]# ?i,j=1/ Z3 h: @) U; H

    5 O. K0 y: L# s) l+ ~n
    6 u4 v; _/ V; K0 a  E1 ]; g9 z4 S+ p; Q9 D
    w ( u) [9 ~4 F1 @7 N1 \7 K
    ij
    , `& m' P: Q: h8 {. C( d8 X2 n  w9 ^
    2 a7 z: ?7 k( K9 j0 g1 X (f
    6 P4 y5 G$ d" s5 C+ g/ oi' x6 `1 @  \. u* D
    / Z0 U! p0 n6 \& J, |7 h
    −f
    7 C5 G( F7 I  I( S8 rj
      e/ k- O- `2 n" {- f- ^
    / W1 B, R. N5 j5 T1 q" n3 T )
    $ Y+ H# V/ d2 o+ u2
    + ~5 Y, A) S: l2 I- e( \+ l% B& B! @( ^
    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})}
    6 [( s/ @# B2 S0 Nh
    9 O' X# w) E7 h) S5 Y8 E5 Gi
    7 [  Z' S% k. y6 g, uT
    7 K" v5 x; m; r6 i  x( I, @7 q! O- z! y1 }7 a7 @# Z
    Lh 5 `0 A4 m# ~4 w) j8 {- U
    i1 x6 Q( X1 P! p# Y: B; r2 v

    + R* `5 s* `5 g5 _5 Y  G7 o =
    : q! V- R" P4 D+ V" F2" J4 {7 x$ `; ?( _
    12 @* g+ @7 X7 G: Y$ g5 ]

    ' H. w& l/ M5 y+ Y
    ( V9 L# C. u$ J: g( Om=1
    ' i3 I# ], e7 }5 k8 J! V8 ?6 g
    , u& {3 N# E. Y% n- ^
    9 u+ P4 k' N9 [4 ~) m0 I  O" U) o8 }. j
    n=19 |, I+ f" x' o2 G
      s, p- c( i; C( ]* E

    * J5 M4 \3 G, J& d w - e; w. w9 T* t
    mn8 R+ g* @3 H6 x- d% z

    0 T& P7 ~' q# z' I, x+ m (h ! H2 ^7 s# U7 K$ e) {; W  @! _
    im% y& r5 d( L2 j  k, U3 m; w

    9 \0 c1 @! P& f1 g2 P5 Q+ }8 w −h & C4 N' Q# x) c: t+ e" H6 n
    in  i. u( v" ~: X

    3 u' v4 Q1 Q" L! g7 L: l; m1 v ) ( I8 L8 L. a( Q; F: y: z
    2! T7 y; ~& q) F: a6 O" k
    = ) E8 o* G5 W9 V8 y& i& d
    vol(A / O8 _$ q# T6 E! g) ^
    i$ |  b3 y% U% V

    , i- ^) S  i5 s* |* f& ]8 e) A9 S' i0 G )
    ( F( s1 x# ^% S* O7 B$ z2 Ccut(A + t$ Q! J7 y8 Z* O
    i
    " A* L/ T$ l0 c. w, M. \. i0 g- M9 p7 e" e
    ,
    ' ]) b( |; X3 Z- k9 K* l+ |2 AA8 ?8 _  O( r8 ?7 N6 g
    ˉ
    1 _1 `& x* F& H7 d' C" E' W' l+ p: u( ?$ p  y2 s, K& Y3 p
    i7 o8 c8 Q5 `( i$ s1 J) F0 G
    5 B- \3 @5 O2 y# G8 U
    ). b- m' o, j9 E$ W9 V* u2 w6 @
    , b+ y. d: C9 f% r. Q- Z3 Z. s2 ^
    2 K4 Q) W# \+ x) A9 K+ V
    ' ], F0 G: K3 t9 [) W7 j
    严格证明过程请看刘建平博客:链接
    1 l- T" G( h& G2 i$ p& E可以看到,对于某一个子图i ii,R a t i o n C u t RationCutRationCut就对应于h i T L h i h_{i}^{T}Lh_{i}h
      _* y9 x9 d# u: w) Li
    ' X$ s* ^, ?$ s: l& J6 r) m. s* HT
    - x, G" S4 U9 w2 g% E2 z. }+ a* Y! D* w# v1 {8 ?
    Lh 7 y( ~+ ~! l8 J6 F/ W
    i
    . V( i# X0 C9 B  d# H# w7 ~9 @9 H4 g& M5 A5 {+ F0 T& a" r6 w
    ,那么对于k kk个子图( |) ]& _; C) u! A

    7 z1 N$ ?' @3 R% w! ]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)4 {4 D; v  y, S4 O: [
    NCut(A
    & y) d- D- r( L2 T2 P, ~0 C  B5 C1
    / g3 i' F- t' Y" n; K$ Z$ J6 a+ ^$ C# t, j: L6 }
    ,A 2 O1 w, Z% z9 f! w9 {
    27 b+ b: p# W$ Y( A

    + B. Q4 x: e* x. W" W6 t ,...,A
    2 V' `1 f0 l! v$ J$ ^k
    ) E$ J, i& ?+ |; W0 X0 s4 P$ ]
    9 E& n4 J; y+ r* _' O' p )=
    - W% \7 l8 G3 p  D' H) O4 |i=1' `7 I: u" v+ m- P- ?6 o
    ( Y* U0 V4 x3 b
    k. X0 V; s$ X- n) ~7 E7 e

    ( `$ D0 d3 X( f. ] h
    6 {7 B; v$ R8 U$ Ni
    0 ~1 ^* C) t/ x( ~& \: h# nT
      P/ g, Q* ?+ K: L2 g  y
    ) B) o; l9 A& O  M Lh
    % ^: s! h. i# k: Z+ L* J% vi& x# o: |0 j, ~
    5 I- c( S1 h+ S
    = 9 {9 F+ X& D, H6 w
    i=1
    * f4 r8 X3 E2 W) V* K& _8 \
    9 O3 ?1 U8 ^; j- l" C( `' gk  G3 i( R( U! K* X$ t/ w6 o

    4 x9 T9 m% c; j/ C% u( V (H
    5 \/ e4 ^( R' R/ G" Y% E  HT
    - p8 o0 j0 d* \. c4 t LH)
    & e! n' m, Y/ P( K4 x/ Pii. V8 b: Q3 x9 W  s5 k3 w  m; v& c' m

    0 f9 d7 M" I3 N6 d =tr(H
    ' b9 @1 R+ l* ^1 }9 x+ ZT3 D  Q/ N! D1 n9 K
    LH)
    % q" `2 Q0 b3 f3 x# V# F
    . f* r2 C2 B+ ~# F5 Q但此时H T H ≠ I H^{T}H \not=IH ! ^" \! a5 S7 T
    T
    8 J& w+ ]# o- A0 h. Y/ p H
    1 X% N6 k7 N; ]3 o4 t
    ) |0 e8 U, Q' [=I,而是H T D H = I H^{T}DH =IH 7 a6 ~4 Q0 V: l7 ?- T& V
    T% \% d0 `$ o1 t
    DH=I
    * y7 J7 P- f5 _- H5 h$ s
    : c4 s6 e8 ?! A% T' `这是因为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
    ' v/ o; ~# _7 ^+ @6 f8 mi
    9 J, h: u# O7 V  b; L$ \T2 j1 S$ m8 K" f3 ?1 J# A
    2 o! l) e% Z* d. I1 H5 p* v
    Dh
    3 y: C: ^4 D! k8 a3 e' Yi6 u, A2 O- {% B8 `

    / P* p4 F! s4 V = ; P4 N; [" v7 _  T+ P' d
    j=1" l3 v4 d- E0 {3 `+ X

    0 b+ x, }+ g- I9 x+ i4 j' Wn& b  @# T$ n3 d( V# c8 }. L% e5 ?

    : \. b( \* T* [0 S5 B5 j h
    ; c% Q: h, D' t4 _; r- v2 qij5 G6 {5 Z4 v, ~5 W9 o2 v, ^1 V
    21 }  F4 o9 _; ?

    2 c( \! q0 R1 ?: Y( Y! K0 D" c) z# H d . t  X  P0 q+ A3 q. `+ j
    j0 B' ~) |( V* M8 P) A

    8 a. j/ h/ Z& B. M =
    2 C$ f1 u  H" Q  |/ r; Wvol(A / i$ s+ g$ U* B! [
    i! F% V' t* L! j% t
    / u; i2 v- s4 [
    )
    # y0 n( E" X/ T  G5 ~; v6 H13 Q- L: Z9 \- a7 ]

    5 j- E# ?* s$ E
    ; x) P( M1 Y2 T$ H" yj∈A 8 D4 {* g* l% w* E8 m; [# [
    i/ T4 h0 F; h4 `# F

    9 T. U$ c' U& l) A0 X# c' q5 V, i1 ?  R
    4 b, H; `: r2 K. [' p' n

    " R* t, m9 x! |' D4 _8 ` d 7 }, ?, G$ w  F! t  O& H
    j: e' T- q7 N( U! [" M: M
    ! x! |* R$ L& O4 y5 N
    = 7 g) L& q2 ?, B5 i7 ~
    vol(A
    , O4 h+ Z& H1 `, Zi( a  o* x# p% @% ~  s( {& ~
    ) R. i1 F1 G+ L8 r% }( v2 s
    )
    * P# q+ i$ I/ @- X2 {: w( F; D11 w2 r2 n9 Z# m, }

    6 F6 [6 R* }) {$ X2 a; _ vol(A
    , z. E! U2 F& X5 ~) C. ]i
    5 H/ k: k' A8 k* v4 F6 d
    + q4 }/ ?4 l/ U: Y! v2 P )=13 `  u/ }% S8 a# O/ q+ z
    因此,此时切图优化目标为
    6 V; A7 I. H2 A" C) G* O' f, J3 y$ S) v9 |
    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  T  |0 I' d2 F3 m, \5 D* X3 h
    H
    : w7 q9 N( }6 K7 \- Oargmin
    , y6 f' \+ a7 p$ {! i1 S- A/ I% w% h

      y5 o/ k8 T7 V; F2 d9 k& B# D# w1 {- ]+ s
    tr(H
    7 q2 U7 s+ E$ T2 j$ j5 RT
    6 k  Q0 H  F/ X  \& r LH)s.t.H
    # ^/ q3 X; _. ST! g4 V! C" F( ^. p
    DH=I
    ( E$ F' c% e2 c& `, N2 j! c
    ) j6 Z+ z* l; h8 x但是现在矩阵H HH中的指示向量h hh并不是标准正交基,所以需要对H HH做一定转换。令H = D − 1 2 F H=D^{-\frac{1}{2}}FH=D 8 J, d! x0 E- x* L0 E

    0 W  {/ ^2 l1 @$ e0 Q5 w22 X# O( u; M5 K# l+ z! I/ t
    16 Z' I+ j+ X- T8 o- v) d

    : _/ J, P# J, {$ n+ ^( V- i" v" C! z. Z  E5 ?) Y7 \' i
    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
    # D2 \3 t3 Q2 i' N3 I$ tT8 R8 S% q& r4 M5 A' P5 n- }
    LH=F
    ) m2 B4 p/ k0 s& Q5 f1 l+ ?: mT( @; ]$ p+ F6 k/ L% Q1 A
    D
    * x' ?! ^$ q/ q0 Q# }/ u# Q( L) n- `9 t, K; a& B
    2
    % U- Y8 B9 q. k; @) U! o$ O+ A15 T0 k: w. K! `  k8 T
    + {, {1 }0 l. R0 Q% H! G

    ) g1 Q2 V; w8 | LD
    " A% ?. e- X; z( ^: `% Z' g  ]5 _; ~
    & u$ J2 j# Z  t# U9 @6 z27 t5 p* y* q& h# E0 Q
    1
    # G; x3 i6 a, G* a
    % u& q- k- k, y
    , ~. ~% I4 Q* o7 l" o. G F、H T D H = F T F = I H^{T}DH=F^{T}F=IH - {4 ]" u$ D6 C/ |
    T! q! [' X% P4 w3 L: m
    DH=F
    3 H9 e) H1 k# S* F; LT
    7 B+ Y" \7 b0 G" P F=I,于是优化目标变更为
    0 ]% h- I& w+ qa 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- s( M% C$ }5 z7 s3 t
    F& r2 S! D# C, `  m  q. {1 B
    argmin
    # r9 N8 O; R+ [8 E: d; N! H, u" F1 o4 }5 ^5 m$ K

    $ W2 ~# e* e7 L4 g7 z: y2 ?4 V' R
    3 M9 X7 A' W. M tr(F
    ( q; ~7 ?) T0 WT
    ' S. r1 m& S6 u0 \- A D . e0 c/ O) I: X; y6 }
    6 Y# G( d! {9 k  |/ y1 I: x
    2* i5 x# c8 S" Q' Q8 I( `8 ~, c
    1( W* p7 x2 ]9 H$ i$ s6 p
    / b, C8 H' h$ |1 k, [/ B  }1 s- n7 S
    ' Y+ V9 N" s. }2 \! m  _
    LD . s7 k+ B0 B2 f4 d: m

    6 m9 R# r3 I5 I) f24 _& d4 `7 K* s8 D
    1; U% F" Z; J9 S2 ^( R

    ; s, ^7 c/ c4 ~! g& X1 R6 ~) y7 Y; T0 W1 {
    F)s.t.F $ W8 Q% M4 [9 a1 Q/ X2 p
    T
    3 y* C+ m! f* r& G1 Q8 w F=I
    % U" r3 ]4 k6 L  l# ?5 O& G# ~# R) o( A/ l
    现在,和比例割一样,通过找到D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D
    4 n3 T1 `- E( M9 ]. `. J* P
    9 X( z0 ]' s* [! q+ ]; G) X2+ P! r  @9 x8 O/ T( T2 s' e4 J
    1
    7 {6 B1 C8 \( h% q, i, s! ~( d8 P8 x
    # o' G. f! |" f! U& ]& g1 p0 T: N" P4 m
    LD 0 R) a/ g2 e& m) V
    . r% s$ R1 a2 D* g2 j9 J+ {" ]4 X1 P
    2
    ( E+ A, e; M' N# s1
    7 ?0 r, e+ D* G9 t7 r: q' V/ G7 p7 [

    7 M5 N( j+ V& e* i* E0 U& B (就是之前的L LL)的最小的k kk个特征值,可以得到对应的k kk个特征向量,这k kk特征向量组成一个n nn×k kk维矩阵,也即F FF,最后对F FF进行传统聚类+ [8 W9 K7 o7 k+ j! w6 H/ {, f! t4 ~
    " C! `! v5 v5 v' q0 {, m
    一般来说,D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D " u( c1 n) W1 q- u. b

    ( r* C# e8 ~' a. Z/ `2
    ' x2 O8 a9 k+ Z! }+ M1
    ( ?% |- C5 M# e# @! z! M6 P
    6 C* S" P# V6 ~5 r2 E7 [' B3 z& _+ L5 ^5 `0 c; B) c/ z" j, T
    LD 8 C/ F5 h3 s. }" l

    / X4 A2 ~) s* d( ~& s2
    7 I5 S1 S! s! o! q$ i0 I' c4 F1- |; E6 J$ o5 M# }
    1 z. G7 }) x; s
    1 P1 H: X6 p" q/ k. X4 D# n% I
    相当于对L LL做了一次标准化,也即L i j d i ∗ d j \frac{L_{ij}}{\sqrt{d_{i}*d_{j}}}
    0 }* L$ x. g4 V& ~3 T8 Jd / \( D/ S" u/ J; I# K
    i
    9 i* {6 t; C& t7 }/ _( @
      o1 V$ ?  G9 ?5 w ∗d
    * o7 }6 S5 k# y3 L# ^1 a7 ^j
    ( p2 y4 Z6 U; h5 @  M' v! a- I% W4 q

    6 I1 e* f0 P3 o. F5 t. k+ C# W, l6 s; C( e+ f; g4 `2 ]% O; Q
    ( Z3 ^1 [. _' S( e8 `
    L , w. H0 `# z, p% D: P6 H( e' Z
    ij- |7 x; }( a. \; A
    8 a/ ]( [- e, Z& f9 O' S7 ]
    7 |8 Y# `% z) ]

    2 w! z: F& |, |$ p! M$ a8 D. E& z+ l4 k% O- [2 Y
    二:谱聚类算法流程
    " _3 y4 Z. i; r给定数据集D = { x 1 , x 2 , . . . , x n } D=\{x_{1}, x_{2}, ... , x_{n}\}D={x
    6 p' N6 S7 E0 m) E; `8 W1' u* ^2 [+ j  ]: @: {
    . K, \& C' I( }2 c! y
    ,x
    # n4 w  z$ s' K. J4 l2
    ! h6 ^/ P7 `# j; S7 @1 X( x# S! z7 }" I: B1 s
    ,...,x
    $ J7 x# F: P+ u! D: y- g( jn
    " g3 x# y2 r  h8 C. N+ J% n5 ]- x* X2 c: A% {* S1 w* l
    }- P* H6 u+ n- A4 D" }

    ) ]" y1 E- }6 W, {' B+ |: x根据输入的相似矩阵生成方式(一般为高斯核函数)构建相似矩阵S SS(AffinityMatrix)
    5 T! u! f" l+ n1 t2 f* ^& n根据相似矩阵S SS构建邻接矩阵W WW,再构建度矩阵D DD. m- D8 S6 p; g
    计算拉普拉斯矩阵L = D − W L=D-WL=D−W
    + p  m% a+ e% x# s) |) y' ~' q得到标准化后的拉普拉斯矩阵D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D
    ( T" w9 I5 {$ _* Y/ E  S, f5 k& O, ^9 n  ^2 ^5 y/ G
    2/ N2 m1 Q; ^. Z9 K8 E# G
    1
    3 f0 a% M# V: I  d; W" x) ?& q* s# j% S" W/ z, W( s: ^

    1 M5 ]$ k; ~4 V* X# S& C' } LD
    9 G" e8 f8 J2 f' v' Q/ V1 A- a4 M* H: x2 {  t
    2
    $ ^- `" ?. {5 h2 K9 ~  c17 R" o( A( ?. J% q! f) {, ~

    ( ]3 W/ j# Y4 Q% f
    4 y/ H1 z" S! k4 o( G( m5 i& A5 ?3 Q) b
    计算D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D 0 \& c) n1 G6 r% l( t+ i) W
    ( p, b4 h! b0 l2 h. {8 M# j
    2' k2 c) z# T$ H; z# A0 m
    1
    , h* }  F, t( @
    - D! u4 ^3 ]' N) Z
    ' [. _7 o5 l0 ^7 G+ w7 b LD
      l9 @" D, G! D' n+ q, I( U" @) T, Q7 ^1 g6 Y5 p
    2, x7 P/ v+ p& p" t
    1
    & G: ^# X. E" \+ o2 V' t4 K6 Z# W5 ?( Y
      o9 w" F& x4 X$ @. z% {
    最小的k kk个特征值对应的特征向量f ff: b7 r2 b% u$ g1 i" @3 r
    将特征向量f ff组成矩阵并按行标准化,最终组成n nn×k kk维的特征矩阵F FF' C9 z7 p% p3 v- ^$ S
    F FF中每一行作为一个k kk维的样本,共n nn个样本,采用某种聚类方法进行聚类,假设聚类维数为k 、 k^{、}k 4 R4 [0 Q" r6 \

    ! {+ G7 v+ K8 g7 F: ~3 Q! O! Q4 {9 E9 Q
    得到簇划分C( c 1 , c 2 , . . . , c k 、 ) (c_{1}, c_{2}, ... , c_{k^{、}})(c 4 n" g) y# N' _! w$ h8 B
    1
    , O# g& s9 Y/ Y; A: X" H2 Y4 z0 r5 G3 U
    ,c 6 A7 _- W9 [% o' y% _
    2( \5 j% V6 Q" e  s
    , b; n# ?- [3 D( x) K* l+ d
    ,...,c
    ( F. C! S, r& {7 M: Mk , ~' C7 a1 F& a1 I6 i. i

    - X# ]4 e: [  M# Q5 p* f# n" k; @2 m! T' _6 j

    ( d# Z! n) I. Z8 o3 E" c# O )' @3 V+ _8 n. F
    三:Python实现& F; T  H( s+ L: r2 r6 d
    import matplotlib.pyplot as plt9 x( D) Q$ M& ]/ Y: N
    import numpy as np
    1 ^# W& V. {; ]. t  Himport pandas as pd
    + L9 P! ]6 j3 M2 o' @8 V% ~0 nfrom sklearn.cluster import KMeans
    2 u- n1 S$ C2 J0 Z4 R. L* |4 ffrom sklearn.metrics.pairwise import rbf_kernel
    1 K/ [+ Y6 Q8 E" z( e) S4 q$ X& ffrom sklearn.datasets import make_blobs! ]6 i2 H; V, J0 o5 P! b2 F
    from sklearn.preprocessing import normalize
    . J, _7 o: {) X' X' p. {( M& {# \1 j* _$ k# A
    def get_affinity_matrix(data_set):  t' e; c+ l9 R2 N/ }0 ^
        #  利用高斯核函数计算相似矩阵(全连接); D" |! [3 A, _3 u5 X; R
        rbf = rbf_kernel(data_set)
    6 y' B7 O  V" M# |; N    for i in range(len(rbf)):
    1 b3 G7 b3 e3 X/ _        rbf[i, i] = 0( w& o7 g) z' y1 Q9 T5 |8 J
        return rbf& _  G7 f2 `3 w' u

    ) ]: ^2 R& s# ^9 e8 E0 X! \6 p4 r  @2 I
    def distance(x1, x2):
    " Q) \# ^/ L1 m    """# C; f3 w' p& q# ^0 W' z
        获得两个样本点之间的距离
    ! H5 w2 x; c$ A+ s: U3 d$ o    :param x1: 样本点1
    " c# g) J+ T$ j    :param x2: 样本点2
    : U6 ?- H7 k) i6 p" j    :return:1 I# [0 J% h! b/ L0 x
        """
    , @6 K9 `% \; {8 A: I" ]9 q* H    dist = np.sqrt(np.power(x1-x2,2).sum())
    & A- {0 a1 @% Q9 \9 }( ?- e    return dist: \  M; s. `( U! a6 g

    $ J, o, E6 r3 edef get_dist_matrix(data):9 R# [% p8 p) N7 Z0 N
        """0 E- M( r% i* [# J% q$ i3 y
        获取距离矩阵
    - p- @% ~+ |4 G( n' c$ k    :param data: 样本集合
    ( N# b! ]% Q8 |/ A. {1 T7 N    :return: 距离矩阵
    ' Z- g, |9 C9 N! X' N    """
    ' k0 G: ]' ]) b: H1 N7 S, T1 Z    n = len(data)  #样本总数
    3 i' j; @" [  \$ K9 R    dist_matrix = np.zeros((n, n)) # 初始化邻接矩阵为n×n的全0矩阵9 E$ ?: Q; F4 M3 \2 V
        for i in range(n):
    . X" Q9 {0 `' n, a  f        for j in range(i+1, n):) t% k* d: C) p: \% r* `
                dist_matrix[j] = dist_matrix[j] = distance(data, data[j])
    ! ?+ J* a0 y8 B/ G6 G! f( p    return dist_matrix, H" _) B: o1 {  W
    % B/ U- L; J. i- J& S) J7 b, B
    def get_W(data, k):
    - L! I) w* O& e) U    # 获取邻接矩阵(K邻近法)* z3 ~, }0 n1 A& x
        n = len(data)
    ! k4 j& }9 Q; Z: Z4 K    dist_matrix = get_dist_matrix(data)1 K# z" }  c1 |) {" I5 {' r
        W = np.zeros((n, n))
    ) K( E! b9 F+ w    for idx, item in enumerate(dist_matrix):/ L- a/ y' |* O+ ]3 ?
            idx_array = np.argsort(item)  # 每一行距离列表进行排序,得到对应的索引列表/ D8 C/ N  {* d
            W[idx][idx_array[1:k+1]] = 1) D2 G3 `, x8 E! f! D2 B
        transpW =np.transpose(W)% \3 p7 _; N$ d/ F7 m9 M6 C: c
        return (W+transpW)/2
    9 {) I/ q, s, d1 [( r8 C) @( p* ]- s' g3 S6 @/ }$ |# V  L2 M9 N$ N
    def spectral_clustering(data_set, k):
    * M! L1 v3 I! z3 S6 o, D    # 利用相似矩阵S得到邻接矩阵W
    . t0 o  }+ k+ I* |" K0 ?& o4 q    W = get_affinity_matrix(data_set)  #高斯核函数(全连接法)
    1 x$ N# {3 E3 P  B- {    #  W = get_W(data_set, k)  # K邻近法
    / r9 M9 R3 S7 P6 t, G- W/ F3 u3 f, Y1 ]+ W3 E
        # 计算度矩阵D,并得到矩阵D的1/2次方的逆矩阵(便于计算拉普拉斯矩阵)) U: M/ }) g' n
        D_inv = np.diag(np.power(np.sum(W, axis=1), -0.5))
    5 M# @: v2 |4 E- l- M7 e
    & v; S  w. Y1 n# w% A    # 计算拉普拉斯矩阵L=D-W% u5 U3 J$ B( H3 z" z" @
        # 标准化拉普拉斯矩阵l = D_inv*L*D_inv=I-D_inv*W*D_inv" y  s3 Q! i( q* o5 ~$ G
        L = np.eye(len(data_set)) - np.dot(np.dot(D_inv, W), D_inv)1 o& j! g6 f( r) ?, t
    ; o4 P) O# Q; [5 L. U
        # 得到特征值和特征向量9 f' Z5 ]% @3 n: ?- u% g
        eigvals, eigvecs = np.linalg.eig(L)2 y" o/ ]! @) P0 ?3 e* Q' |

    0 {7 P7 c$ f5 j) W, V8 P; b    # 找到前k个最小的特征值(索引)
    : H7 C" u& ?: a+ K. t1 R# l/ b% G    k_smallest_eigvals_index = np.argsort(eigvals)[:k]) _: g. K" m. R2 R5 @

    ! M6 y2 |; m) F$ g    # 取出这k小特征值对应的特征向量,并正则化5 D2 [# _/ N( Y
        k_smallest_eigvecs = normalize(eigvecs[:, k_smallest_eigvals_index])" V% |( q& S, b2 @
    : ?. N9 V6 y9 r7 p, \2 N
        # 使用K_Means聚类. ~# F. @" P1 S! m) a4 F% L, m
        return KMeans(n_clusters=k).fit_predict(k_smallest_eigvecs)
    5 a# D; a/ L8 z" B3 h8 ?2 P6 D
    6 D! j2 V$ X5 R0 l" k7 d" }) O. |1 F9 y9 w' }. L
    raw_data = pd.read_csv(r'E:\Postgraduate\Dataset\jain.csv', header=None)' ~, Z) W1 o. I6 J% b
    raw_data.columns = ['X', 'Y']8 g- Z2 V! L4 K. \
    x_axis = 'X'
      W" W, I- s2 _# D% py_axis = 'Y'
      `9 J; L- N- P, `. h# m2 e  ]& C) E# a. n! ^. J
    examples_num = raw_data.shape[0]
    8 @% I/ O% P- G# J4 etrain_data = raw_data[[x_axis, y_axis]].values.reshape(examples_num, 2)
    - V% _6 ^+ h2 s9 [' Z0 r  v
    / @* N0 j# p9 k: S( w7 N9 ?2 S
    3 ~; Z: c" k) y% ^min_vals = train_data.min(0)
    " {! m  l" z+ O' A$ O& Kmax_vals = train_data.max(0)
    8 v! A" y  }6 W7 j) g& Dranges = max_vals - min_vals% I+ B4 `' C7 I2 S$ @; w2 d
    normal_data = np.zeros(np.shape(train_data))/ @- e, Y/ M( |% I- {( K$ y7 D
    nums = train_data.shape[0]
    4 J+ t  y2 S6 B: g* Y) O/ cnormal_data = train_data - np.tile(min_vals, (nums, 1))8 d$ Z: d3 I5 j" ?+ c% ^* @" P) l
    normal_data = normal_data / np.tile(ranges, (nums, 1))1 r# e6 m/ v: i( G$ z( ?

    % T( a& f6 A' l0 z( Hlabels = spectral_clustering(normal_data, 2)' h# E" s2 v1 c3 s' S5 p; |
    3 B# F# u% u4 s5 C+ w% y1 {
    # 原数据
    # [3 ]+ @8 b/ }% ~fig, (ax0, ax1) = plt.subplots(ncols=2)
    ) T, X& r$ I0 R6 P, ^ax0.scatter(normal_data[:, 0], normal_data[:, 1], c='black')5 m- f; D5 I6 ~( d7 H' @
    ax0.set_title('raw data')" O6 q6 e/ B! q: f, i) g+ Y
    # 谱聚类结果) K4 s) b4 }  O) V. R3 v/ V+ H
    ax1.scatter(normal_data[:, 0], normal_data[:, 1], c=labels)) B% ~( K; u, a& n
    ax1.set_title('Spectral Clustering')
    ! k) [! ?5 }% a% q
    & p- @+ R0 H+ M6 V6 X& z4 R* yplt.show()) m; u9 u3 b- N7 Q9 U& M& R

    : V  |/ w( {8 C# ~! x$ O0 N$ C  F14 V. j, K$ ~3 n4 s
    2
    ; o% c4 G5 c/ q$ [, L39 c9 `8 S$ y$ R! y( v# G1 W
    4
    ; m. j9 |3 K" K! C1 p5 b5+ L9 u+ p3 r/ V) T
    6
    ! J# D% q' o8 [: M4 v% |7/ r: @& H  x- ]. z8 I0 q7 r
    82 b9 E1 M' o7 g1 e* v( c9 o6 d! Q
    9, R# ^' _! l& C3 }
    10' e) J. {0 a* X
    11: ~9 l. V0 A2 ^$ r9 ]
    12
    , d- `" I1 m+ b' U$ N! F4 B135 e! v% M" [+ Y# q; a4 C  x  }/ j
    148 L7 o, X% T+ V6 ~$ s9 T1 |
    15+ ?3 p5 u* b2 [& T' |2 a/ P/ ^
    16& G& K7 d1 }; K7 S) }! V9 d
    173 G; b4 |- X$ k" r
    18# g. L  e: q- A: A! U- Q3 @
    191 ?0 e% `, V' X( X! n
    20
    - R, P" P0 P$ X% R- f0 B! |3 Q/ i% K21
    ; ]/ P) i4 g: o9 Q7 @( m22. n1 ~/ f; A7 \1 ?
    23) s: X2 x  r6 X9 e
    24
    - f5 o( G* v/ }5 l4 r9 p25
    7 h$ l5 `, s  R8 t# ~26
    ' D' T# A. P* z2 A- G, f7 X8 o+ P27
    % u0 [6 d1 J; a- k" Y% b28
    9 n4 f* ]5 L( N3 Q  `9 u; T299 R+ w* @+ t* P& u+ X" \* m
    30
    " \7 m5 {: o; ]* a7 A# C31; V5 n4 y/ e' w& _
    326 G. D" }. l! F; F7 U* m
    33
    2 K1 H2 K6 S5 S- s  T' b0 P34. ?  U1 Q8 Z4 n7 l2 d; V
    35
    8 M3 V9 {. h. o6 J364 r7 w9 ], L; N
    37
    + V% u& r; ?& [* E: c# |; w381 |4 U2 h! m/ u  N# W! V. Q% S. }6 F
    391 C: }5 {( s, ?. w  N3 e$ s
    405 N8 P6 e$ E( V  }' a' ^0 e
    41
    * }4 d9 Z" i! Y- R' A+ J, a2 E0 `2 `42% |, H: ?  q1 Z' @- H  \  D
    43
    + i+ A( r+ h1 M" Q' S5 o44
    & f, l; y. c( _; _9 D: @4 @456 b1 C8 \1 W# j, @
    464 p: o/ ?$ P" G4 k; f! H5 a) X! x7 p
    47
    / a6 r5 R; _. h# X6 b  [7 m9 X4 _487 e4 `- i' M6 H& H9 y, l3 g
    49
    ! o; w- z- X, u& K50
      R! E' U4 ~/ d8 O2 I$ z51# e* K* n; d1 K
    528 F! |( v1 n0 G0 S$ s' l9 R2 I
    53
    & P8 D% n# `% z' I54
    ; v1 J8 t9 W  I* Y2 w555 M! T% X& b, X& h' J
    56
    7 ]& W- L3 f9 v* S) \57! ^* d5 a4 m# [1 N0 g6 u
    587 u$ {$ q- z1 L
    59" H- h2 y- @5 f  c
    60
    8 B& N" d* Z! |1 [  t. }61
    ' X! ^) d& f3 t/ n( L62
    7 \( k% |) c; O% m63
    5 M" A# p  |& ~& E64
    0 D* x9 h5 C% C% r- g65
    , {, W+ {) P/ _+ _4 |66
    ' Q9 {+ k% ]; L. o: U67
    3 L7 w7 D& [2 `1 J/ m5 X68' Z: N5 P0 [0 ]% a* V- V
    694 @1 Y; D3 _1 _! b: [
    707 b# m+ D: D- [6 X
    71  C6 m% b' y- D% _5 g3 b
    72/ l( _" O6 C2 T# g. v
    73
    4 D# _3 L8 G6 m$ @74- ?7 z! e5 D" D& i# E" P
    75
    ! ]: U/ N. R$ l76( i* }: ?* t5 Z: Y& r4 ^7 s" ?, [
    77
    . @' Q- I; z1 a3 ^78
    # |- A5 G9 N  Q$ |, O( H& O& \795 v$ {& s, N- E
    80# r) U1 A) u/ h
    81
    9 H( k. t" D5 h9 {. t82! A$ i" i* ^+ j# H
    830 s$ [' }+ g0 \0 K, K/ V0 W) s/ ?
    84: X* o5 O. o; a$ Z5 k, t3 v
    85* V: U1 h! K! g6 ~$ w- P+ F5 J
    86
    0 A8 y, s, |: {5 g1 E$ i  J1 j- \87
    $ p# O8 o. v' A( U0 ]' q0 D; \88& C: A8 o6 Y- M, T8 J
    89
    ( c& ?  v# B" v" `9 r0 c906 e+ @$ D0 A. {8 _2 m
    91+ i0 _1 d* }- W) c
    92
    # `7 F% y& K) @5 l; z93
    ' @8 H6 d. s" W6 E" O. l94
    5 D' L7 U/ C5 N  j95
    4 g7 w+ M: T. X5 ]96
    6 O3 e- k* ^/ s3 @97
    ' f: R- h2 r: P1 r; @! g98$ x8 ]" [* @6 E. c1 I! {
    99
    . Q' u1 L0 Y: d7 I8 x! w6 d100- y9 z* H% k& A
    101
    + L1 I( K) E# w( ]102( o: h! M& e' F5 R* @; R
    103
    8 n3 K3 X7 `. ^0 ~  X3 l(高斯核函数)4 d1 S$ F* l& e! X6 J* U

    * T' ^) B6 W: z+ L5 j" P2 y5 W) j1 |! n, R0 k" g6 `6 ]
    (K邻近法)( z7 q, b9 O& v+ E6 A2 n! \

    " y0 }' ?& f! Q. @1 {
      H4 ?! q0 r: \2 Y3 n四:谱聚类算法优缺点+ l+ Q7 d: B4 |9 Q3 f) Z  }5 l
    (1)优点. L. i& J5 j) i$ R+ ^
    谱聚类只需要数据之间的相似度矩阵,所以对于稀疏数据的聚类很有效
    , q$ q6 u! J, E. a使用了降维,因此处理高纬数据聚类时复杂度要明显低于传统聚类算法! x: `2 d0 W9 ?$ _( C: l) x
    谱聚类算法建立在谱图理论基础上,与传统聚类算法相比,它具有能在任意形状的样本空间上聚类且收敛于全局最优解, y' C/ ]  [6 P  e
    (2)缺点- _9 l8 c, R. W. W
    如果最终聚类的维度非常高,则由于降维的幅度不够,导致算法的运行速度和最后效果都不是很好
    2 c' N* R! o# {4 B, Y聚类效果依赖于相似度矩阵,所以不同的相似度矩阵得到的最终聚类效果大不同相同
    . m( \7 R+ L$ J, i$ F% E( J/ S% p- f————————————————: E" T& E$ f! a5 e; v; R" Z
    版权声明:本文为CSDN博主「快乐江湖」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    , f- C% k( k2 v0 R: I3 Y: @原文链接:https://blog.csdn.net/qq_39183034/article/details/126747494
    . U& J; {( {1 v! p& l8 I2 `- O) o9 d! F' X( M( Y
    + p) N9 N) B$ m- F
    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-7-30 11:35 , Processed in 0.468683 second(s), 50 queries .

    回顶部