QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3005|回复: 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
    【数据聚类】第八章第二节:谱聚类算法之切图聚类、算法流程及其实现
    9 _" N% K) S0 G: Z4 @
    2 s6 e6 O* J1 N' m  i) i本文部分内容源自刘建平博客,在此基础上进行总结拓展* S' k* z; V) W1 y0 u& r# K' N

    9 p2 a, J, Z, l% \原文链接1 h* r1 @8 E* S6 R5 A/ G
    文章目录0 |  h) }: ?0 s
    一:谱聚类与图划分
    $ F9 u3 I' x2 {3 B- b; \(1)比例割4 \5 W5 K! N6 Y! l
    (2)规范割(常用)& u# ~5 ~9 J5 T7 @* W- {
    二:谱聚类算法流程) }1 }# N. z+ b1 _- Q# H- ], v
    三:Python实现; m3 A. Z6 k# H: Y+ f
    四:谱聚类算法优缺点
    6 D! l8 b. m/ E; @# W4 ~4 K# j* b6 U0 w2 G(1)优点
    ; r/ l2 ^& G* T1 z8 z0 _( I$ f% W(2)缺点' G  Q  Z5 L$ O8 m( P$ n
    一:谱聚类与图划分2 _+ z; r1 c, X( x- t* n* l7 l6 G7 Y
    无向图切图:谱聚类算法根据数据点之间的相似度将数据点划分到不同簇中,因此将数据点映射到无向图之后,可以转化为图划分的问题。对于无向图G GG,切图的目标是将图G ( V , E ) G(V,E)G(V,E)切分成互相无连接k kk个子图,其中
    " [/ N: ~6 o6 D! }
    . C4 D4 P9 I. f7 h每个子图点的集合为{ A 1 , A 2 , . . . , A k } \{A_{1},A_{2},...,A_{k}\}{A , d4 {# }, A. ~* t& p0 z% b
    13 O6 N- t6 f8 n: j$ _
    9 p* r; y) `8 R( P! K0 W( `" V
    ,A 0 n% h9 c9 s8 {
    2
    * m5 E2 S5 _7 n1 o9 Y4 w+ e5 _, N( t
    ,...,A 2 Y4 z2 Z* ^1 N7 X8 O
    k
    % R) B* S" c& |7 x9 `) v, t# A' Q: E6 F& p1 J* E, H, n
    },且满足A i ∩ A j = ∅ A_{i}\cap A_{j}=\emptyA
    3 q' H' o4 I4 h( G; ii
    % ~  _1 H6 a3 I5 F7 p3 V; ?' B" q, k) {9 j5 |$ i0 c
    ∩A : f: k) {- d' O
    j7 v- ~  t- m, G  A" \

    5 Q* n$ h1 h" X4 c. ^ =∅、A 1 ∪ A 2 ∪ . . . ∪ A k = V A_{1}\cup A_{2}\cup ... \cup A_{k}=VA
    5 N7 {4 a4 K, a4 ~1; A' p# x; v3 [- g: k
    1 v! i) x, n8 }: {: [7 A9 G
    ∪A
    % t$ W! V9 `7 a8 X2. n" ]# w! s: M0 m/ a# R  F% s! B0 Q

    6 h" L9 h+ g, J) u1 x ∪...∪A 9 d" M; n% e7 u, m& q
    k
    8 H5 l$ i/ L2 \4 }$ s$ k2 D/ h. g- Y( o, I9 A
    =V
    2 ~# N; X' d' p/ ^& v  S8 p6 \对于任意两个子图点的集合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)=
    ) _/ w8 Y1 |7 S7 M+ a% H& ?i∈A,j∈B
    % |/ x  k5 Z) h/ ^$ o) u. M. `; J( n, O* D! Z/ m# V9 u$ Q
    4 G' P  c9 q5 L; G* R  m; ?' S
    w
    " g. ^( ]* q" B- Y3 Wij7 r( }& ~3 ]3 t0 C' _& ?/ a
    : p; ]/ M$ }( e  G5 O& }
    # w& V8 L, B+ E4 x+ Y2 P8 L
    对于k kk个子图点的集合{ A 1 , A 2 , . . . , A k } \{A_{1},A_{2},...,A_{k}\}{A
    . Y% t. R0 u/ r4 [( J( b4 h1
    8 Q9 ^8 L& m+ I" X+ u0 @
    - {6 l, a/ A; O8 W& h: b3 m! l ,A
    % u! {2 b0 _& d, l) l2, j; n4 |3 u4 f, t( N% X
      m- {' F. z# I1 s
    ,...,A % f9 G, _9 S2 _8 h8 o
    k& O* A, P$ y" C; F

    # @* u% d  h3 d },定义切图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
    * U+ ~' |( j& N1, r) s# f7 R8 m3 `7 b3 J9 m6 d+ r
      i# V; T7 k8 @3 U% t
    ,A
    * W6 W: P( H( z; |7 [7 Q+ J2
    , R& l$ q$ D% ^3 [7 A3 w( J
    4 u: x) m9 p* Y5 J# y ,...,A 1 P# H. U8 r' f. l5 v" O$ S% L
    k/ ^' F3 V* W+ y  X* A) V* v( b. K

    * @1 L1 N8 z! T )=
    / Y% K% j+ r# C" ?2 [27 |$ T# J" N$ D
    11 F7 a$ E3 \" L0 x' r
    + z7 ?5 J( r4 o0 K
    5 j$ h6 r% f: z. P5 E
    i=1& \& y5 r0 q7 o% T

    1 B  G+ x% ]+ y* O- r3 r! wk
    4 d+ h0 H% u0 l9 Q# H
    7 p5 I$ {, J1 V1 x' H" K W(A : J: G+ n: @$ N! z
    i3 T' @0 V! b, ]1 A
    : C4 e* A# S( m# T
    , & h* Y. l  _: ]+ s6 J
    A* l- j3 H/ H! H- V. {
    ˉ* S. p$ w+ k: V4 n" g
    2 n+ O, d9 H  \7 b: B
    i: v! @2 e  T1 A6 }

    ! \/ S, u% l. ]8 f) [/ H; D6 \ ) (其中A ˉ i \bar A_{i} " X  |5 r1 k8 \* P4 @( g) j) y
    A1 a3 E" `8 X0 K
    ˉ
    $ i6 H* N4 U- b# {2 u$ b- `. v3 L8 E. G% u! H1 [5 M
    i
    0 u8 R) M( h& T: {' P7 ^6 n* W$ A" W$ o
    为A i A_{i}A ' G2 J. |9 ]$ j4 R9 U; O
    i5 M3 v. z) g9 A

    # \! X" G, D1 S. \5 I; B 的补集)+ K" z: ?. o% T  `- J/ c7 e
    可以看出,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 % p! e+ M, p6 q& W* o; A- F5 l+ ~
    14 `  u# [* T" M4 D) E: `

    # X1 O# r5 g' A ,A
    6 a  d$ A& f  B$ [3 E# d) z2
    7 B7 Q* I: e$ k. w" Z
    $ _8 x! O  U5 E# l6 h# {4 \. b ,...,A
    3 z2 S2 W- C& X' z$ R* M5 }( ~! Xk5 g$ S9 O3 h  m) u; O

    1 c+ _% c4 S& q+ s )=
    1 {9 z3 t) U! _- J0 u1 Z- ]2
    , D( q: t0 T7 \# l' y+ Y* b, Z1
    - }6 o$ J4 f$ ~
    / T4 x8 H1 g8 F( X8 W  W/ O, l, Y# ~/ E# U* o
    i=1, Z5 h* I5 x- {) G' S% P

    : V! x( r: `/ Y" Q( dk2 Q( }- u- Y8 \$ l9 p
    2 ]" Q' S8 B* T9 r8 y. Q
    W(A 6 ]  L3 }+ d# B& {/ D$ n4 f4 D5 B
    i
    ( u5 H4 E( h9 D9 q+ l2 s3 z. B# r5 ~8 {# j
    ,
    $ s1 q) T# H6 j! N) `A
    + b% d+ v1 k$ yˉ: c) |% j+ a- C  l
    % Q7 \! v9 q$ s7 M9 b3 P. D7 y
    i
    . l; D/ o$ ]) n/ q% c2 [
    ' w9 u4 X% R2 v+ e( w/ A" p& l )在划分子图时并没有考虑每个子图中节点的个数。所以在某些情况下,最小化c u t ( A 1 , A 2 , . . . , A k ) cut(A_{1},A_{2},...,A_{k})cut(A
    7 |# o* b& M5 Z& c1 o1% I0 n: |8 {& I/ M! i1 I
    5 H8 v4 v; [0 a
    ,A
    / c, @! p% h! h25 M, v1 w7 i  w; g
    . }* D4 z) v  F, r+ ^
    ,...,A
    ) Z+ j& _1 @8 N0 z  xk' u# f3 g" J; L5 X  H, K5 D

    2 _! R: j2 y5 Y0 v" e8 @7 |) y )可能会把一个数据点或是很少数据点看做一个子图,导致子图划分结果不平衡
    ; r$ L2 _+ u0 N* }- T1 X( ?1 U" ?$ H! X2 z! b
    例如下图,选择一个权重最小的边缘的点,比如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
    ! q9 Y% s9 T+ u1$ a8 q* q) B  y4 Q7 M7 W

    . n5 G7 F$ ?6 S: y7 l0 U5 L) N* M ,A
    & j+ ^" ?& b1 U& Y/ v) u% `2
      a! S! ?) i0 L' [7 |4 D. Y1 i4 [
    7 y6 ?8 }6 Y2 Z4 Y9 ~. I# @ ,...,A 0 ~2 h1 j6 |3 m( Y
    k
    $ l7 m6 h8 K, D3 E7 e" b- F* P
    5 z" m# Y" b: K* V2 b )但是却不是最优的切图
    0 g1 P; u& f" W: z% K" v: _6 \( k
    为了解决这个问题,会引入一些正则化方法。最常用的两种方法为比例割和规范割. R7 h+ I) Q! I8 F$ l
    - v$ A8 N) Q0 E: ^
    比例割: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
    & q# _1 u" ?- D/ S1
    7 {0 l7 U% P( s! Q  I# ]& K" @- C5 b# P1 d
    ,A
    / R4 S2 m% T, i- N& h) b  y; O3 U2$ W9 B( [0 d( H* `2 ^; E; E3 g  D6 D
    * g7 O' P: P# T3 R6 Z' e/ ~) p  n
    ,...,A ! }, C( {' A1 R$ g2 R5 Y
    k8 c8 x# q& s, F  t! y
    & f& s! S: ~5 J! [+ F- T/ L! n, J
    )=   L# K9 g( m, [
    2
    9 V+ {8 T. I/ T( G( X7 w9 i1. k# d% W+ H3 X- Q% Z' B+ H* x1 W. h

    - M' t' Q* Y' _9 {  `  t" I; f
      `& {0 C' d( @" x3 |# b. fi=1
    * }/ u3 y  S* V. Q0 `: ?, Q! _  y0 q* e5 ]
    k8 S, v4 H7 [8 r/ L% E' [
    & N0 |  P& n- Q; }9 n  l7 D$ L

    ( w! e7 h7 W$ u) p∣A
    + l* `1 G; e7 f) R) v0 ~i
    5 p/ J  P' v' b) z2 I) S8 S# ^, H' l. w, K$ S( j0 c
    & y% S  l% x( L, h2 J/ W' }
    W(A 9 ?0 ?1 i+ d2 d
    i
    ! j$ p, g0 n% A" ]4 f
    & B# l: i6 Z$ t& H ,
    " h+ j+ j  F5 u/ \9 [2 w2 x" S8 K8 Y$ aA
      B% @, b' Y! v  y* pˉ
    2 d0 H/ A2 o" G9 u; ?
    ) h$ P% c0 X( K& ?. Si
    * m/ z8 E3 }: \6 x2 y  M" P, T5 \
    4 g2 \2 m& z+ m# Z )
    ) {6 S* i% v/ G6 q$ @
    7 o3 g& D2 B* ~$ `2 U: _  n2 h
    5 e* A7 n, T! g5 c; ]) e规范割: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
    9 w) z4 M+ K$ S) ?; g/ p: q: ?% w1
    , m( d8 o7 d7 k% R2 D3 x0 A! D) X" g) p  m; v. W- `' D
    ,A
    # z9 @3 |1 j5 h6 o! h1 L2
      K( L; x2 c) I( |4 }$ M1 h" N  R" \
    ,...,A
    + {& i, ], h* y! }& O! gk
    5 X9 t; y, t# O& [; p
    8 J6 F: S8 }' g8 J9 J  t# b# v )= ; u# l" L$ r) X( U
    2
    ; W( Q7 W! i7 D2 v9 Z0 B$ Z! A& ~6 X1
    ! u. h5 H" t: ?% b9 R/ T7 s1 G9 M  E8 E4 z' C& g6 J
    " `5 h  Z. {+ @* W/ J
    i=1
    5 w, I% D+ x$ Y2 `
    3 s0 h4 z+ C& C$ E% Y4 ^- S8 Wk, P/ K" l% \2 U9 [8 _$ t( z
    % d" Q  s( U: y9 [2 P
    ( ?! F  @- V( @8 {+ x0 O$ i
    vol(A
    ( X4 J/ a' t  x; wi
    % D9 \. R6 i; @  l7 }6 I9 F, E% k6 U( A0 U. a
    )5 h8 {- B% l" r& ^, |1 x
    W(A : Y# s: ]9 {2 }- Q
    i1 v4 Y, n+ Y0 l9 ~
    5 p& v! }$ h/ b; G% A( N5 D
    , & G% h# I5 Z2 R' X5 ?2 `1 Y+ U
    A* J% V! ]# M) U4 A# b( O, {0 r
    ˉ/ o! ?! \( {* g& W

    # j' t6 O/ N; F$ _i
    7 `/ |+ [4 }* J
    4 B1 p0 Y2 F/ C6 K )
    / K# w( \6 G0 j0 [% |: |/ d( D6 f1 u7 i8 G! ]  K8 \- X
    7 m- R7 C# \2 {4 n: \
    (1)比例割
    , K: T; V+ t) I% O, S引入指示向量(点击可查看指示向量定义)h j ∈ { h 1 , h 2 , . . . , h k } h_{j}\in\{h_{1},h_{2},...,h_{k}\}h
    ) Q# l) o) i5 y) s9 [j8 ^1 p6 t  A, e  r
    1 i1 F4 x' k8 _0 B
    ∈{h $ s5 p- Q+ e4 o7 z6 Y5 ~
    1- i" @+ q2 k* g+ r6 @) O
    9 G8 g, V8 c: O; m( a
    ,h
    ( {5 G4 I4 t$ Q/ Q2& \, z- R, U7 ^
    + q6 _8 C! m  g/ s7 c, D" J
    ,...,h 3 E. h" @1 J& g0 z8 G# `# P/ F
    k
    ; _+ f9 e+ p1 q$ P" j+ u: @9 L' ?  y# T' a* s) i; {2 S7 U- l
    },j = 1 , 2 , . . . , k j=1,2,...,kj=1,2,...,k。对于任意一个向量h j h_{j}h * C& U" H5 r& I; D+ e5 D, ?/ M" S
    j& l$ J8 J9 b) f1 S/ _3 J

    * M& M- O& Y% S7 M& l% O& ]' \% z7 K ,它是一个n nn维向量(n nn表示样本数),定义h i j h_{ij}h
    & U$ G) `# h" v4 O. \+ pij
    $ c3 o: z- R* c$ l. Z1 ^+ Z! l1 B/ E# I4 p/ p9 T
    如下3 o4 Y$ V; D2 O0 ]  x; N
    3 b! \: W  l' C
    h i j = { 0 , v i ∉ A j ∣ A j ∣ , v i ∈ A j h_{ij}=
    7 s4 _, H3 l  u{0,vi∉Aj|Aj|−−−√,vi∈Aj% D  {7 |! z5 Y0 T- j* T! L
    {0,vi∉Aj|Aj|,vi∈Aj
    ; @8 Z/ g5 ], |0 x7 Q, [h
    . k( s  \4 ^' G# ]+ K* iij* ]' C" ^4 f; @; n( T9 P" E9 ?* f  E

    : j) m$ L; [) k" I ={ ; ~; @. S. v/ ?2 m9 K
    0,v
    8 i- ?: l& H1 n% j* F" y( ci% M$ W, }8 w+ Y
    3 C! z# D% _3 b5 s

    8 j6 }7 w( x9 B* q// M8 p7 N* ]& T4 q9 `
    A
      r+ g# o- ?9 s2 o8 L7 c( Z- Mj
    - P* r2 C; O( F& |* J% T5 D) V! f, ?: o: }

    $ J$ f4 z- I/ U' r- m9 C∣A
    , v$ n. {7 j1 s) dj
    * D1 s8 e& l6 T# K* ]3 I
    : c) B$ O3 [8 {' L) l' q* R5 c$ ], @  Z) N) h7 j
    6 Z+ v/ ?( H: b6 |# k' N
    ,v * Z" m) v3 s4 o7 e4 W- ~/ f
    i
    : ]5 Z* g0 b& f8 a4 Q! @" S- X+ [' j" Q& Y
    ∈A
    7 c$ i3 m, Y) \j
    $ d5 r2 x$ ~& `  {/ Z
    # J8 X" M6 Y& A4 d/ N1 G5 k) |- d5 H3 F# L2 ?! u

    . u, O4 F1 s+ h, Q9 `/ j5 }" _1 ]
    1 N# j/ c2 _* F5 R! l( z' J) D, g2 k9 E
    于是,对于h i T L h i h_{i}^{T}Lh_{i}h
    2 p% o9 F# D8 A1 N! Ri4 Z8 `4 D4 k3 X8 p
    T
      l) J1 v- w) `/ q6 g' ^- N9 W( l$ M( L* F6 u" |. m
    Lh ' S$ v- a# V: I+ |
    i% F3 h; }7 {: R1 T8 j

    ) E  a0 m/ ~2 c% {+ [9 S ,根据拉普拉斯矩阵性质可知
    * h% g$ ?2 k1 e5 r" p4 C3 E( M
    对于任意向量f = ( f 1 , . . . , f n ) T ∈ R n f=(f_{1},...,f_{n})^{T} \in R^{n}f=(f
    ) y: `; M4 @. N$ `7 J1
    3 O0 V+ I' ~5 G9 U/ s5 Y; D! K
    + J$ l$ H: f- E9 S. f) Z  E ,...,f 6 _9 N! G1 d8 O% n: K8 Z* m
    n
    # L0 l! T2 y+ ^- X3 q, b% |7 x$ a0 r" K/ C6 S5 H4 V
    ) $ a* w' \' f- y. _3 a% N
    T2 B" D. _$ I( L" S4 a& G
    ∈R
    ) {; a/ Z8 u# O7 h5 a/ ~n
    * ?1 U  y7 n7 l" X' A; G2 R ,有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 & b& ]5 ?- x* q
    T+ L: S6 g0 t5 y0 |7 S2 s$ M, u
    Lf= 2 @2 n1 r  c# s; e7 c
    2$ q  L& ~) Z2 v# @
    1! I9 C# g2 ^. k5 b

    / \5 K+ e+ l+ Q% ^! |
    0 ^3 |' c& c2 ri,j=1
    & r1 v& a; \+ h! O! g% b
    ( d7 l- P- U$ J- _- Y* On" w$ H2 ^7 R1 b2 t2 K0 Q
    + C0 m% y4 X& R( [- ~# {! n9 t- p
    w 4 }" v$ J, w! ^! D. f1 Y
    ij" v# P& u: p) d/ s5 V0 f
    9 X- H$ E0 y5 m  f+ Q8 \) T, T
    (f
    % C8 f5 [. t! @0 L; Z. ]( b. yi: e* M3 R9 X& C( O
    : p: c+ {' P; V- h& F
    −f
    3 O& T' ^' h; s; ^3 \j
    7 [3 f" o4 z0 ~- Y" Y" z1 d
    - X: v( ~; E( N$ a ) 1 Y+ x# [2 ]3 e2 t$ {
    2$ g+ d' l8 ^1 q

    2 i* K& ], {& [$ Sh 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}|}; b5 u; S" P) `  x" P6 j
    h 9 S9 ?0 \  F, i! r9 }& h# r- U
    i
    6 G+ @* }0 `" a% tT3 `" |6 ?7 E% }2 Q

    ! x- ^; L0 T8 i* w, a Lh
      n# [2 f% P4 v. p5 m* di  ~5 L$ x  A3 p, e% B

      y8 M, F" r0 ?( L$ H = 7 @% x, K1 R/ c, Z1 l6 [
    2
    ( K2 u" D+ L2 Q% ]4 q5 p9 I1
    " q, e; H& G; Z
    . a6 W: L. A5 m+ X. T) y  C4 f" h, l$ _, q) N: Y7 G
    m=1
    7 w* t- q1 ?8 V% f, C5 I# M1 ~3 x8 o* ~
    & Y9 u$ s8 b1 n6 k, c4 n8 ]' c
    % {4 g' m$ q; `. D! G
    n=1
    . w! W/ Q$ ^3 `
    4 L! X" \9 G% c6 r, V0 k+ q/ A/ m) Y( \: K6 u
    w
    " [' b& L0 O. b2 n7 v$ g' c2 O2 Dmn
    , c+ D& h  v! Y9 V# t+ |& z: {+ E" j5 Z1 ?  k: w9 O+ S4 Y
    (h
    ) @6 L" g% W0 U9 A; [im
    4 G" F9 P9 n+ g9 @6 j- M9 N
    0 P& C3 n3 t# x8 Z. p1 b( a −h
    1 ~, r0 K) {" c0 K! Qin
    6 Z6 ^1 z+ r) z& r$ X" u
    * P: R- ^  S" H& ^6 b% a# \ ) / E: ]# `& E; z8 ~2 K2 Y5 ]
    25 E+ P" v/ z6 x, n
    =
    ) _; R  b9 X* I" O6 x  t∣A
    $ G+ \, o; j# M3 u4 T7 \i% m: V) W# X( j$ z  z, M

    % D- M- \% a  s  y
    5 c3 y" X2 j0 K  `cut(A . u" f7 t6 I2 C7 T( t
    i
    6 B' t5 q4 R, y! C+ ^, u
    3 C5 @& v0 l7 H$ J7 I7 Z1 U0 E& T9 j ,
    + F6 X$ a2 y# M3 o8 D% T2 [A6 u7 Q+ {/ I5 Z) `
    ˉ0 C! m+ O) T6 E! o  Z" \6 j
    9 q/ T5 J3 o" d- e7 @( m8 Q% O
    i
    ( v/ s9 o, C. V! o/ m0 G  t/ \" l- L
    )$ P( m3 f; {; f. D/ }* ~
    " q) K) r$ F) w+ s1 Q
    ; Q# c- E7 f# ~6 g  `7 |

    2 `" f3 P. b! z% W# e严格证明过程请看刘建平博客:链接
    ' @& q, a  t. {6 u可以看到,对于某一个子图i ii,R a t i o n C u t RationCutRationCut就对应于h i T L h i h_{i}^{T}Lh_{i}h 1 u, `7 w  c- n' x' y/ m. S
    i
    + ~# _2 j) T9 t# h( V. [T
      Y0 q, d) H% X3 a
    0 Z% A) o9 j1 K0 q9 M Lh
    2 z8 X. _/ S4 n1 Y. Pi" ?4 |. O+ y4 u3 U" j  v

    9 C  }; i2 a" Z. I# o ,那么对于k kk个子图
      j. q* x; `( R, @7 k# t, F) O. \/ F, w3 z% ]9 f( @3 k* G+ R
    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)
    ) z2 _5 w# L; c8 l( d3 |  v9 |8 wRatioCut(A
    ; ^8 m$ m& A' u$ B1
    ( r& }$ }. J) x( J" [7 D! ?6 F! Z
      W) L& Q/ [! N$ r" S2 \. _; ]1 l ,A 3 E, ?" q" R  B: f* g3 }! w! i
    2. A+ p% q& j' t% I0 @; ~" m

    ' y  i3 t3 p* Z0 s7 v/ D: V( U ,...,A # {6 v9 s- b2 i# F. q% [
    k
    3 k( ^5 @' Y$ x  W9 z$ N4 K! z" B+ T
    )=   L# T% b# d" l' i. T
    i=18 J8 i: }+ C8 Y6 c. [+ l$ q4 l
    * a2 `& \+ T% f3 L5 S8 G
    k+ P: G/ O8 B4 a$ l* y- S6 e- n

    6 T4 N6 `: y* F% {/ z h
    ' W* L0 L; z2 G, z6 J- Mi6 S+ F: j# H5 Q5 i) @% R$ w) {
    T
    / D' D7 R5 a, c0 Q, ]) J/ b: W! c
    Lh : ^/ |' J' C, ]! I& P5 m; V
    i
    6 p: n  x) B/ S- ]. Y
    0 v4 T( m7 J8 F! s6 }  C. k. C =
    : `( x  V6 o4 H2 F1 O3 di=1
    # n8 J0 u8 E" V8 M/ ^0 S7 i( E- y) _9 {. ?; o: n
    k2 l6 S  _* s. R4 S$ Z& F4 L3 Y
    7 @& G! C- L8 R' n0 B9 _5 T
    (H
    , q) L# h/ \, A6 W5 o' i3 ET
    5 M/ q, d4 A2 |2 \7 D# P) V3 b$ F LH)
    4 ?/ W& ~& f3 ^  _. bii: s& k7 ~6 u- P
    9 V  X- D( x" D0 B
    =tr(H
    6 I  V7 e: U" D; gT2 C2 B5 h+ `' i- l) W- h
    LH)1 M- S* k5 t  N- }6 F
    " b2 o- X# z8 t
    因此,R a t i o n C u t RationCutRationCut切图本质就是最小化t r ( H T L H ) tr(H^{T}LH)tr(H
    . q8 }" J5 u( _( yT
    ; g& E& t/ ]. l LH)。又因为H T H = I H^{T}H=IH
    9 z1 f) X' ^0 X0 w' M& F, rT
    ) @/ G& D# @+ r) Z, r  u+ h H=I(单位矩阵),则切图优化目标为
    / [1 {+ `# }. o3 v7 v
    3 ?" @$ ~: n; A+ Wa 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! [6 s5 a7 n6 r* e+ R# y3 w
    H( }0 s! j* b$ D8 v* }
    argmin
    # y; e* G2 W$ x3 H
    $ ~" c/ d; B' j" B6 \: J6 ^- \8 p, ]. E, o2 {3 @

    / x" {, R" ^5 x8 O2 F$ J tr(H
    5 B5 ?% \, L3 \  V& _2 W- ?" ]+ pT
    1 Q8 o- j. e: E! S! f& \, z LH)s.t.H
    4 h, M8 Z  x& iT
    * q! p" W, H' z& g2 {# Z6 N H=I) m+ L: W/ L" I% Q# S
    - X7 e; `+ M) ~# ?. [& a% j% f
    对于优化目标t r ( H t L H ) tr(H^{t}LH)tr(H
    7 Z2 V, v: V# G1 _0 Et" d" v- t$ A  B+ E5 _$ l
    LH)中的每一个优化子目标h i T L h i h_{i}^{T}Lh_{i}h
    ; ?+ b% q- V7 ]% n9 Ti
    * Q: s) }& k& x5 B6 N. K& C- JT2 e- y2 A. A# P  ]: @4 h

    ' m* E  K* V' y: f! P Lh
    . h" t2 W9 W+ X5 Ti3 o) X; A. r3 E$ T, X% y/ k& c: J
    2 `  I/ I3 C5 ~
    ,其中的h hh是单位正交基,L LL为对称矩阵,所以此时h i T L h i h_{i}^{T}Lh_{i}h / J6 Q7 C+ U& M
    i1 M- N% q4 d, c3 |- t
    T
    ; x5 G: c& x% K& V! y% i- F- i2 l$ A  a" t6 l% E9 n" R
    Lh
    - ]6 `0 e( O, A1 N; ni$ H! g9 F  m; s

    # k9 r7 w; m  a 的最大值即为L LL的最大特征值、最小值即为L LL的最小特征值。而在谱聚类中,我们的目标就是要找到目标的最小特征值,得到对应特征值向量,此时切图效果最佳。所以对于h i T L h i h_{i}^{T}Lh_{i}h
    1 U3 t$ n0 |0 y) Hi
    8 O  U& F( e' g" n. ~; rT! p) X6 l6 r/ K5 K$ X  v5 j5 G$ I
    ) m1 V# {1 P7 {9 D4 P
    Lh
    ) y7 a5 i/ U. T5 b$ A0 Q* \! }i
    # y5 X4 g9 K; h9 G& v) G- Q6 ]' H& T# T
    8 p, L- {' ^  e7 h8 p7 E- r ,目标就是找到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
    + w  _* K, W6 k& }  |0 Lt
    * f4 `; v% M# C/ Z3 B! x5 `8 L LH)=
    , h" t2 c8 m8 n# |" xi=1
    8 d/ K' S; V/ B& Q9 Z. q  {+ X; E6 m
    k
    ) @4 q4 [2 }" E7 d0 b# e& X+ y% e. _! M# G  L. Z; a6 e( S6 x
    h   M3 |0 U+ ]& b" d% D
    i
    , n2 w; q' S- _$ _; bT( }7 o1 q0 _- `+ B! ?
    0 d. Y( @' G/ Y9 J1 j
    Lh
      J, a% B9 Z8 O$ r4 X# ji$ a+ K. w: Q4 K' l" j; H

    , \3 g' Y6 d% H5 t ,则目标就是要找到k kk个最小的特征值
    8 p) t* [! Q$ R9 ~2 _& n/ _
    " O  F3 L: Z! R# b& C6 u因此,通过找到L LL的最小的k kk个特征值,可以得到对应的k kk个特征向量,这k kk特特征向量组成一个n nn×k kk维矩阵,也即H HH。一般需要对矩阵H HH按行做标准化,如下
    % G; d7 B( ?3 _9 ?- {
      u2 r/ b2 H3 E! m8 Q$ o! ~一般来说,k kk远小于n nn,也就说进行了降维
    ' Z+ Y; T7 R4 a0 l. Y: T  Ch 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}}}
    % k' ^5 D8 O6 S# f: B! [h
      {8 J7 @# X3 n; E! w, ]; i4 e6 Lij
    ) r3 D! ~$ d# `3 {# L5 v! G% m& g# c  g0 M" E5 l: T9 K8 ?2 P; C
    2 a9 L7 |/ W0 r9 E3 y/ Z
    =
    9 B5 h" J3 q8 @# a& l% @6 C7 j) x(
    & ?9 C" }  h8 v# U5 T! k" b( L  S, At=17 W$ A' V& J% G: G
    * W/ E# v2 @! z9 e
    k
    $ Z9 K7 z3 [/ m) ^! c5 F% F7 U+ R, V  K: v/ z9 W
    h
    3 K6 h6 f5 Z& i  _* l9 Qit
    - X. x& _2 q  F; g# M8 V# V% ]2- F1 t' X2 w: t3 @( i2 C0 y
    : t$ M+ a& g# @1 b- ~6 B
    )
    $ ?  m; w+ @+ H* G) s2
    - [" U) Q4 h1 }8 c: c1% G. q# r5 m. m% m

    / G! N- W$ _/ n- b+ ~
    * _6 W$ t+ j' u
    1 h+ ~5 j) M( P, nh
    ( F2 t; [# S/ w3 v( zij
    , W+ x& z/ X+ m: F' b5 J" Q7 L9 t4 K2 S" R$ @# K

    & u: G, u7 f' q5 y4 G& r
    8 K; q3 y. S5 N' ]: i9 C6 E1 h; U/ s  E4 r5 S, f# B

    3 I* A4 Q$ G7 L这里需要注意,降维后导致得到的指示向量h hh对应的H HH现在并不能完全指示各样本的归属,因此一般在得到n × k n×kn×k维的矩阵H HH后还需要对每一行进行一次传统的聚类,比如使用K-Means聚类0 N& L2 i( v9 W9 ?
    + \2 f, g" U3 j  d! G$ O
    (2)规范割(常用)
    % o6 L7 @. A! Z2 Z! w; w3 o6 _规范割和比例割类似,只是把比例割的分母∣ A i ∣ |A_{i}|∣A
    1 u. v" z  ?8 R! Bi, h* Q) n) P% g; r
    6 t4 L8 k3 F8 i
    ∣换成了v o l ( A i ) vol(A_{i})vol(A * R% r, ~1 Z: J$ I
    i) M. T6 c! A! G, [2 y! ~( V

    ; W! |3 U- \1 e" B% _ ),定义指示向量h i j h_{ij}h
    $ W+ ~# G* a  l8 ?ij
    4 O+ ~5 T' P  r! [; f4 `' L8 E6 h3 k
    , o" B% ^8 O( J+ q5 Y- U: X 如下
    , J4 D# g5 e7 J+ [
    # q$ R" t6 e) |: u. vh i j = { 0 , v i ∉ A j v o l ( A i ) , v i ∈ A j h_{ij}=
      {7 B( O, {4 a: r! s  U# t4 n{0,vi∉Ajvol(Ai)−−−−−−√,vi∈Aj! l  g# I0 Z, S! {9 ^6 a6 Z
    {0,vi∉Ajvol(Ai),vi∈Aj
    0 a8 P- i: n9 ?$ K) S; p9 R2 Rh * o% k, H  P# u
    ij
      T! @9 y8 i1 T  j0 i6 B4 q% [8 h) f& D- \
    ={
    2 v8 a( W* ]0 A2 X0,v
    # a, |* t6 J5 W, P7 q9 n4 C+ ri1 I8 `6 ?% Q! F! D0 O4 N* q! b: a
    1 _# F) S, U& \; y& U8 ?- d

    / `( ?4 Q# p5 `# K' g/6 I8 J) S% q% Y: \: p# k! v
    A
    % D7 F4 h! t2 j9 g% R# x; tj8 Q) y/ }1 r+ |: F7 L) |2 ~4 ~" j

    $ P  q7 k+ }; W! W0 u  n) N& }$ u
    vol(A : ^' N/ F1 }- L, b) |! D9 W
    i
    0 _5 }4 g, F4 b; v" Z# G3 h- ^# ^. w% Q( v( c! @6 `
    )# L5 K6 G- b( z& b  U
    / N' K; }& O5 F  \8 g4 W: B# [
    ,v
    . i8 P7 P7 c* \6 p, v" Si* O% X% R7 w7 J6 M. d& y
    5 n9 D3 `/ B/ v$ _4 P
    ∈A
    3 t7 R1 G+ Y2 K! f7 N& kj
    4 [* G, a- d1 }* ?* \7 I1 d" e4 r& U+ H0 j0 B
    * y. A* ]6 M% U4 A

    " ^/ a, }# |: t" \+ i" l
    4 L, {) b' x; `+ H8 r$ G. o& `, V: x- V
    于是,对于h i T L h i h_{i}^{T}Lh_{i}h
    : _2 L$ l4 O7 |8 f, U* ?, gi( e# K) p% k' ]) [6 L" ?, t1 |
    T
    : A' `( V! t$ R8 @: C4 v; t8 X# ~& V$ Q& z, L( K' |
    Lh 8 r% M4 U! @9 ^# F2 J% m2 G* c: P
    i# M9 f; T# t9 D: T9 Y; w5 E
    / O: x( x% H) ?1 h
    ,根据拉普拉斯矩阵性质可知" T' r6 L0 Z" Z5 ?5 H

    7 o7 c: w3 ]. h* x* Q) J对于任意向量f = ( f 1 , . . . , f n ) T ∈ R n f=(f_{1},...,f_{n})^{T} \in R^{n}f=(f
    ' o- O  `( Q; v& @6 F6 g1% \4 I# w- p+ n1 X# |

    . z' ~" q1 k4 E. M9 T; r9 P ,...,f / E. W/ s7 g6 r+ ^" u
    n: m( d, v! N$ e- k1 L
    0 |& f$ W& y8 q0 Y
    )
    0 z2 p8 ^* s  _) pT
    $ W3 ^) e- C6 h" k; V5 q ∈R
    ! ?* [8 O- q: e; u1 \n6 N8 O4 [: c; [" Q: C4 y
    ,有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
    + @  H$ k7 O8 JT3 j3 G) m1 \$ c# d% [$ Z
    Lf=
    ) Y: T2 q! y3 v9 D, Q7 ?4 J2
    - k- n7 I% _0 e7 y( g+ W# L1 T1
    4 T) p: U! R3 S, H# v' W
    ; [  v  a4 {, U% z8 h- K7 z8 L- M9 i: A3 r
    i,j=1, ~. `; u; x1 O9 }7 ~' u+ J
    / l: K+ t+ y# ?6 z9 G! M" ?) b
    n$ q! a7 B  D3 G  N

    , r* S- _0 U+ q2 E* W6 ?4 V w   _, `, i# B' I8 Z. z
    ij, {1 U# p% H! S

    : b! m  R2 L( z# F! { (f ! h2 M% B* D& |: \
    i* x# ~8 {/ i1 i/ y% O' a5 }6 v

    ) Q' O0 s( \. R: G: O/ n  p6 R% O# { −f
    , [+ z, M2 @# ~5 D7 n3 s* ]! Y1 Mj
    ; }% X+ `, T8 b7 f8 t" S
    5 c3 i! x/ x# b9 K/ \; O2 |1 t )
    0 c1 s6 X" W# b7 t5 ]2
      D* E8 q: K2 L7 o, S5 s5 `5 Z* m+ 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+ T  _, K3 m7 Mh 0 }; k% a4 C. i: X) `8 f
    i2 u* t3 |) o) X- ]
    T
    5 _% ^$ ?3 ?' B" k# `" w8 D; g! B3 s" Z5 Y
    Lh   d2 e: |. ~) \* d1 Q
    i' Y1 Y' K1 x9 v7 z

      ~6 T* L. A( H/ l! D' y = . V7 O8 U  Y) t1 L; S
    2
    1 q2 d) W* b8 l4 ~) v1 d$ [- f' U; p1
    3 [) W' j1 f2 ]9 Q& F1 ^* ~$ p2 G, G7 ]+ ]6 P* D/ n- T8 J

    + ?, {6 I8 H0 a0 A% g: w0 Z) p3 em=1
    " e) T$ A4 r5 y2 S( [) |
    - X  }. A8 m+ m4 W
    ; v  A5 t+ `4 g. c
    / @" W3 d- }+ R" |n=1
    " v: n# ]/ q8 _: {: S% Q4 \. F, I4 q1 K: N" S5 f  _/ C- |2 f
    $ t2 E) V5 l9 w; B" W8 A: @3 `, v9 \
    w " V( u, Q* F3 f$ B. w# P2 @9 `
    mn$ O$ G6 @* ^8 y4 I
    ) n+ d( U! F7 t# Q2 g# _! v' V
    (h
    & v, J" e2 _/ z9 j) s6 s6 \im
    0 e. N+ d' ~: @* {# c6 x' E6 h* }+ t% f6 V! Y1 }0 P3 I
    −h 5 U" A, T; t* B7 K' n5 V
    in3 {/ e2 H" T  u- |* |& S) T
    / d8 Q* f7 b2 z# ~4 A5 y
    ) $ _3 v# q1 c. l3 V; t  F
    2
    ( D9 u) D* `! K& E =
    4 Q! V: h5 z6 ?vol(A " @& P* t& e* g* j! i
    i+ B3 U9 Y. w9 d" r7 v
    . w' t% c0 r3 U2 g# m
    )( S5 G, d/ N' E8 n, F2 i/ y; L
    cut(A
    8 N; W! [& R  P- Di0 u: ]" u! L) \# y8 \6 J

    / [6 O1 l8 g$ J) O- R4 ?  b , # \3 `) a7 Y; J' p0 Y
    A
    2 l) ?. [& K, fˉ# E# g1 g& }8 z& X7 C- c

    5 ]7 q( V1 v+ p, J. T5 Oi
    3 e0 a3 k5 f- `/ i7 K; V/ T7 z: P$ @+ z9 A! p) I
    )
    ! o, ?3 f/ T4 n
    5 G5 t: [$ h4 w' A
    % ~3 q2 W2 ^8 V+ P8 i  @# H! Q0 Z9 G0 ~# g
    严格证明过程请看刘建平博客:链接' r( c6 z* f" V. h& {' B9 L
    可以看到,对于某一个子图i ii,R a t i o n C u t RationCutRationCut就对应于h i T L h i h_{i}^{T}Lh_{i}h . b5 a; f: z. h( J/ _! ~
    i
    " V8 ^' ?% [$ W/ @. x( l8 aT8 t; C) ^( j$ p7 J& G9 G

    5 A2 @3 C. G$ n* @6 F Lh
    , c* q! Q& m- _& |+ E2 _3 l, Li' ?3 K1 ~: ~% m
    : {' |9 ^3 Y1 S) T, Z! W; D- L
    ,那么对于k kk个子图5 n$ k; k1 \4 R. i: e
    1 k8 S. w+ a7 Y8 N3 T6 X
    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)! y# ], s# O, p- B/ H
    NCut(A
    6 {$ A' e' J) l* m1
    $ r% q! F  `" E6 j; b# k, j3 ~+ Y0 B
    ,A . I# }# t! k! ~
    2
    5 W" {3 W6 x8 Y( T; N% l- D, c( I0 l; m" c* g9 Z, g" F
    ,...,A & c; X# i" a4 C3 ]$ _2 r
    k% j& \7 \+ G8 d* e% s

    5 L. k% |$ w( { )=
    # @2 A# X0 o; O+ P/ ]: g: Ni=1
    1 ?% z+ c5 q, z/ k
    * @5 Y) u/ B1 X1 v( |k
    , x8 A% p' ]$ D
    0 x# J  }# P% q2 X! L* E* Z h 1 }. f9 J; n# d6 U
    i" @' B; N) e+ f, h8 `
    T4 h7 N) w- q8 }, k1 G6 K: c/ c
    ; y' P5 _$ }4 _9 h# z  F
    Lh
    6 Y+ J; e1 [9 k! ei, K! b% T9 G( l+ z
    # Y3 Y1 B# ^: P4 ]- W) q: V
    = 5 w7 K5 P) X& ^) z3 J4 f! d* ~
    i=1
    7 t# B: F+ I  i' {3 K+ X' p( Z/ j
    1 j' p* S, i4 P9 Qk) W" F8 G% t4 p5 n4 t4 y' I
      h6 `( G+ A; I6 }& U6 j
    (H
    ! D( W, E# a  l$ C" b' ZT
    ; I" _5 s- U% [ LH) # v1 x7 n$ S" e0 x9 ~1 j5 ?
    ii
    * O" f2 ^$ Z0 k$ M% p
    % @4 t/ }; d& P1 ^( _9 { =tr(H
    7 q- a; _) p% U" T4 w. PT; e  l7 G# r5 x8 I% @  E, b8 Q
    LH)
    # ~& W; H! p: v" y3 z8 v" G! j2 v/ w2 L$ D- a. G
    但此时H T H ≠ I H^{T}H \not=IH , L6 V( N6 {0 b8 o' g, E
    T
    # x, m: [( W; ~" e; {$ O4 z0 @! l H% C( |* l; F# y0 H+ E

    ' J) a* U) g7 a+ U9 J=I,而是H T D H = I H^{T}DH =IH
    / Y2 v3 c2 {; fT
    + I( L$ N& [) N- `; j DH=I
    3 x7 g! k! a4 M: @' N$ ~9 F6 r+ z' D
    这是因为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 , l7 t1 P0 Q5 f1 ^7 r. J
    i+ p; G$ d( f% _' q: {* f/ |) r+ [
    T
    : v3 K7 v( d" X" T' r
    0 A- f& N" T: e; Q' n Dh
    ) t" X- U+ P9 t7 Ni
    4 V# d6 [0 [; F8 F8 I* P4 e" f8 k+ X( M& D- _- `4 n4 ]3 [" F
    =
    0 Y% q- Z/ K# X& x) wj=1* I* R) t0 \4 Y

    8 k, J& J# [" ]% g; \! Sn
    2 M6 E. v# b: r9 U
    ! J2 z1 n8 s  j) z( a h , C, W0 e) d9 P- p: Z
    ij5 b3 S7 {! G- e% ^2 R) R' \
    2  j( V1 \4 c) E5 z1 J2 F
    - b& W! |, P, s2 P2 X' x8 |
    d
    2 G* [1 H5 n  A! L2 w, p: Lj
    3 R0 P, K1 B* z3 }  p! L' X6 y
      h+ i! G8 m( } =
    2 m, q+ X" s7 Kvol(A
    / k1 P9 \5 h5 U3 z: U* Oi
    ! x$ O) X% s$ q: Z( W1 y/ |- s: M$ w
    )
    $ }& t$ @! A" _/ t5 ^9 d3 q8 }8 q19 Y6 {( Q6 ~4 b; P+ o* ^2 r8 y
    0 c' a: \1 q- j5 M
    + h& }! e" P$ F, {
    j∈A & z/ E! I  Q# w0 d1 g5 @( U
    i
    : g% k. u  r' W) Y7 i4 p5 }9 ~' V* `
    / N- b# L, Z5 G
    6 t6 n! I) c  O# S2 p
    . l; T  f% y8 O- w6 P5 d' }
    d : @% L4 Z: h4 Q* G/ N; G
    j1 {4 ~6 ^5 s% ^! k# o
    - R$ D0 X. ?4 ]0 t
    =
    1 J# h$ V5 [' a3 E8 l( }vol(A
    , K0 i# J6 d+ q2 Q5 yi
    & e; |: F0 T. M7 Z, a& p# K3 k7 x7 M
    )2 }: X  W( m8 j' g
    1$ V0 q  t9 x9 G% p6 y  v/ |/ _
    % e0 S: h5 @+ M3 D( i- V
    vol(A
    3 [! A% h7 q" |0 A4 R% vi9 c; z9 i  y: w- ]' v4 N2 F0 i! m

    8 ]- `  R$ n# a; x0 }1 |- O )=1/ ^. F0 d+ w& d
    因此,此时切图优化目标为+ y9 \4 i/ b+ p8 R: k, ^' j

    . }/ T* k4 g6 t( j% S1 z6 Wa 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) {1 ^$ R; [* b
    H
    ( X3 \5 e4 B' f' E* `6 kargmin3 {0 L% V5 g$ `2 e5 _8 n

    ' w  [7 A6 [: `& @( h! C) i/ O7 V7 \* L

    6 H! M5 n" y0 h8 E  Y) C+ W tr(H & Q+ T2 G) Z6 d8 o
    T5 n+ W; v: r# `0 i& A3 ~
    LH)s.t.H
    3 A. e, ^7 D; T7 M0 o! j0 H$ v1 IT9 [) N6 W! P  B7 m' [
    DH=I
    9 \* n" t, V* k: ~8 {1 k" p) f
    . P5 u  q4 b; J" b7 E+ g8 U+ T: M但是现在矩阵H HH中的指示向量h hh并不是标准正交基,所以需要对H HH做一定转换。令H = D − 1 2 F H=D^{-\frac{1}{2}}FH=D ; g  M5 i6 D0 |6 d

    3 r4 J! e, K' Z( S2
    ; [2 J8 M' N( N/ [1. X; `5 B, c1 S2 G- L

      A3 ~! e( c- m5 t
    $ ?/ l) g5 G0 c7 C: X 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
    * J  c) K) c% }( K1 PT
    - J3 O, L! J  e1 g9 n LH=F
    % a* h% |# m# w3 \; NT
    . y" T( y1 k  S D . \5 T4 w9 F7 s0 n
    4 ^; q, {; {! P# B" E3 Q
    2, j% T1 d4 ?2 `8 i+ {2 }& o
    1
    " @; g8 A) P) E5 C
    ) p0 B5 i2 y5 @1 I/ g3 h! U, Z# x# ~# j0 w
    LD 2 M* ?! [; s9 U/ b8 A. G

    2 I9 |# {1 U1 T) s2
    $ Q. E5 r6 X, I" X% Q1% X! h2 w/ n4 H/ p
    0 j; w. J5 ?# b# U# Q% t8 l- c

    & R* T4 S: P* z! k/ }$ K! z3 J% Y F、H T D H = F T F = I H^{T}DH=F^{T}F=IH
    3 ?# @; t& @% |1 z9 ST
    6 b  |7 i; \6 z4 ]; e1 ]% O DH=F # Z5 U: l$ q. P
    T; a! F, y# h& x  {& C
    F=I,于是优化目标变更为3 _2 e7 d9 e$ o" j* Q7 `% L: f
    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
    # o5 b1 F( E4 k9 t1 uF/ |# }' n, z0 l8 Y( j
    argmin& C( U: u+ M6 |4 m
    $ j+ N' u" c4 {. I2 x

    2 k6 U/ e8 U( v& O& Q" e2 b* N. P. l/ S9 a. q2 I' I! ^. C' ^
    tr(F
    & U% N3 c' [5 P, ]T, V+ v: P7 k% c! t) d
    D 4 u' S6 \# P: e0 f4 l
    - s2 k* D/ F- J9 O# K5 w- S: b6 ?
    26 \- A4 L  A0 y8 \: Y# b! w
    1
    4 \7 G% q2 j* t
    4 [% m; R! P, U/ q8 d; ^& b$ k, e, G
    LD
    2 @# a( r/ p( K6 |, J- H# C" ?0 @+ p. ^3 @9 \" s
    2
    ! e* U# A# g# X( R; e1
    & V- o6 U, C! R6 g& w6 ~  R( m, f( {. \; t* f, ^9 d

    * Z' X6 m4 S: T8 _+ I* X F)s.t.F 0 S0 N+ V, F- O" c
    T/ J  B6 ^; f. v8 a7 T$ A/ d. v
    F=I
    - t' ~1 `4 G. p3 c" f' t5 _# `+ W. ?/ s  m9 T+ s1 ~  C: V- g
    现在,和比例割一样,通过找到D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D 1 _0 T0 n* O; ~9 G0 C  A

    * [; d7 C' c+ u/ W2
    , Y( R) D6 n1 f1* F) Z8 z1 y1 F, ~- D+ j8 g

    % T- b- g/ v* r" S
    7 I2 @9 r4 _+ P& _6 z) v LD
    & N9 S) y# z2 t  |% ]
    - l+ ~3 h" U8 x" C, v0 q2* `3 P8 ~; k3 Q% u3 g
    1$ Y% u1 Q& A# }8 l" g
    9 e( {- K( d' B4 w# c

    ) j6 H. z' u9 b* D( a. F (就是之前的L LL)的最小的k kk个特征值,可以得到对应的k kk个特征向量,这k kk特征向量组成一个n nn×k kk维矩阵,也即F FF,最后对F FF进行传统聚类
    ; x. m3 A5 S, I7 y3 K* m) F
    + p% t+ x- v; ^) M: ]一般来说,D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D
    ; j8 R" d1 @- W1 X, J
    : I$ m, }: k6 R' J2
    ) @5 a7 i9 _/ C$ ^: b; g1/ _- l, c8 X7 ]. D  z4 `

    + i: D" f& j' j- K
    - \( d6 _! o( U$ J/ B# R LD
    # b8 F* Y/ {1 b  @
    7 L0 |. A& Y; m% O# @+ A2
    / w# B6 B4 ]4 ~3 a7 h+ L/ f3 m1  ^5 k$ }7 `: K; F2 Y) t
    ' B) e# ?6 z9 k5 w" j& H4 Z
    ! F2 c1 R6 w) A
    相当于对L LL做了一次标准化,也即L i j d i ∗ d j \frac{L_{ij}}{\sqrt{d_{i}*d_{j}}} ) H% B6 I; i* X# T# t  J
    d 0 n" v$ l: Q! ~+ r
    i
    % o, t& e( t  [: ~- A
    3 W6 W: t3 M( ^' @0 F ∗d
    ' L) Y' ?4 C" U: M, N4 d- `/ Lj
    : |5 g% Y# o( M! k; S
    + L# t& `3 I8 }5 }$ S3 ~2 Z9 X$ i; O3 m7 {6 {
    7 Q# M; ^9 Q4 ^) F

    1 v8 c" L& g0 k" PL
    4 o( V. }6 ^  O/ [ij
    : W0 {+ d/ v( W- S6 Z/ H: H, O$ h. S3 y+ S

    $ p0 g/ T: f. ]5 e) Z, ]' ?5 E
    : V4 u4 I# n" V* w; y1 O4 d
    ( Y. L& V, M4 j; }二:谱聚类算法流程
    8 {$ a- x/ v3 ~给定数据集D = { x 1 , x 2 , . . . , x n } D=\{x_{1}, x_{2}, ... , x_{n}\}D={x : w' v+ t4 _; ^4 d
    1+ Z. }8 x( x, X6 [4 m+ D- x  w

    6 M1 W: W) f! U6 b ,x ' u* T0 T+ T2 N  w* N! x! r
    2% u  H' u" h9 g

    ' j4 j  B. h* A: S3 X4 {' u ,...,x ) v& r/ {& X1 a# T
    n1 b( `' V6 {' C4 b0 ^1 a3 t, S

    8 S9 ]3 S% P6 x4 I- V }- B- K1 Z8 H' ?! u3 h
    " ~5 F- V! i' u2 }; \
    根据输入的相似矩阵生成方式(一般为高斯核函数)构建相似矩阵S SS(AffinityMatrix)& v* w* d$ R) ]+ N& c) z1 s; M
    根据相似矩阵S SS构建邻接矩阵W WW,再构建度矩阵D DD3 P6 V( G+ E  c: W0 _2 t1 _
    计算拉普拉斯矩阵L = D − W L=D-WL=D−W
    7 |0 ~2 W1 p- ^9 E得到标准化后的拉普拉斯矩阵D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D
    7 ]* `+ Q* d' N  N: Y' X9 P1 S$ a. F. R' v3 y
    2
    / Z# r$ u: V8 U$ Q) f1 U10 }. }- F6 K! D5 z5 A% t

    - ~+ f3 p: {" q$ \. H
    % Q- }, b# A. y( m4 o1 Z# n  e LD
    9 u3 q! ~, d6 Q' K3 u& d" Y* R4 V) l& ]: o0 B$ z. v
    26 @8 f# A$ z4 w4 K. J% q5 ?+ U
    15 ]+ h4 d- l+ I: D4 `3 C$ y
    : q+ k* q' e$ l' ]9 k
    ' W5 x3 p) T1 {* R" j

    5 n' y: n& f9 A! O: Z, s计算D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D / E% y6 P. P+ ~  f% \' r
    3 @3 g$ n* [, F$ z1 J
    23 X2 |; W9 u& b4 V4 N/ e
    1
    3 C) }: Z9 L% Q5 K' k+ W( W- ?$ R' Q$ V7 J* D: U$ c
    # _* u0 C3 r. @8 r- \9 N7 V
    LD   U& h+ K0 x* b

    7 x( \  ~) i2 }27 @: T8 A* e3 _& I0 n. A
    1; f9 d0 J. B/ P) W! E: m) K* o

      Q0 A+ g2 M+ X) Q& t
    5 p! w! B' z. W, t% B. Z 最小的k kk个特征值对应的特征向量f ff" k# p7 X0 g9 y, G6 _1 {: P
    将特征向量f ff组成矩阵并按行标准化,最终组成n nn×k kk维的特征矩阵F FF4 k6 c; Q, u) S/ @* @. _
    F FF中每一行作为一个k kk维的样本,共n nn个样本,采用某种聚类方法进行聚类,假设聚类维数为k 、 k^{、}k * V9 q/ v( c. f2 H
    0 R& J- k" H( u& e- U8 ~7 ?4 E

    2 j" c! B, I, i/ L2 D4 Y得到簇划分C( c 1 , c 2 , . . . , c k 、 ) (c_{1}, c_{2}, ... , c_{k^{、}})(c
    # R8 J/ |3 }6 k- Z; j  t6 ]% v12 k, g5 e2 D9 a4 }( f
    2 O+ C2 S4 L( x8 B: {. d
    ,c
    8 E6 f) M" X; H2
    ' t$ B! f% z' A' q! r% J5 E" r' M" h8 [# ]7 r
    ,...,c
    $ _2 M' H4 Q" Mk
    8 ]2 [/ _! D+ a) L) U. W1 ]8 q% G* I9 t6 h% q
    & P5 [; S& f0 }# i8 [6 b3 i

    ) L8 F2 f2 r8 i )
    - K( W  Z- F5 J三:Python实现
    9 T/ G/ @3 u2 jimport matplotlib.pyplot as plt
      F1 @5 u* m- z9 ^/ Jimport numpy as np; U! f# Q$ f1 ]+ o
    import pandas as pd
    0 J' q8 m0 ~& N% h  s  pfrom sklearn.cluster import KMeans
    8 u1 b" [# V" L5 x2 C6 rfrom sklearn.metrics.pairwise import rbf_kernel, I  t0 k( W& F
    from sklearn.datasets import make_blobs  p# Y% I) P7 W$ f, i4 E
    from sklearn.preprocessing import normalize* l8 t/ z2 i0 C! J1 Z# i! n* E/ k

    # {: f9 \! {. z7 V) |% zdef get_affinity_matrix(data_set):+ x5 y$ `2 T7 r. d/ i
        #  利用高斯核函数计算相似矩阵(全连接)# T9 {0 n' I8 u2 S
        rbf = rbf_kernel(data_set), [8 f4 O/ A) Z; R1 k
        for i in range(len(rbf)):
    % C. b! n5 _- V" v5 M$ N        rbf[i, i] = 03 h4 o9 ^" R0 R- o  @  i
        return rbf" D1 ?- Q3 I. l2 j) `
    / d$ U1 n; W  W. y1 w& }' r

    % k: L7 t+ ~& N+ Y* j  ]& adef distance(x1, x2):  b8 ^; }2 ?* Q! E8 b
        """1 [2 L$ _5 p7 D4 D( ~
        获得两个样本点之间的距离
    3 g% e, r5 ]1 z% Z3 e    :param x1: 样本点1
    ' @! j' N. T8 W. j; U% K1 A: C    :param x2: 样本点21 \8 A8 [4 x( u  C/ `
        :return:" R- G# I! ^% _
        """  _+ N6 q* N) `! K
        dist = np.sqrt(np.power(x1-x2,2).sum())4 F, a/ o5 E: m6 T8 c; m
        return dist3 P: s. Z2 E: m: j* N

      s9 h0 P4 n; ~- I1 H% Zdef get_dist_matrix(data):$ r* t; b: q# v2 }3 {
        """0 A2 u$ b/ y! O6 N: h4 i
        获取距离矩阵
    % B* M4 |) J5 t: r    :param data: 样本集合
    1 B( u0 e. }) x) r( _' o/ m& W, u    :return: 距离矩阵' g0 a' v) }! k3 ^7 _; Y
        """7 j+ d1 p2 P# N- h; K8 o
        n = len(data)  #样本总数! F" O- Q7 E( q
        dist_matrix = np.zeros((n, n)) # 初始化邻接矩阵为n×n的全0矩阵
    / f4 z9 F$ [/ M( l' c0 \    for i in range(n):
    1 J+ J8 [; `1 P: E4 l' S        for j in range(i+1, n):
    1 K, h/ k& |( R7 g            dist_matrix[j] = dist_matrix[j] = distance(data, data[j])
    % I  e( K$ S" \$ j    return dist_matrix* E$ D6 a8 {0 A, S1 W& R

    + r# C, R2 o! v3 k, ]) R6 ]* Odef get_W(data, k):6 u, o4 X3 X' L$ m
        # 获取邻接矩阵(K邻近法)" Q9 |( t% F/ D& [
        n = len(data). {2 g" ^# j! K. n5 \
        dist_matrix = get_dist_matrix(data)( Z: l  k! b$ _8 J' S4 Z
        W = np.zeros((n, n))
    # J1 x9 N( W9 X8 E, h    for idx, item in enumerate(dist_matrix):( q) E, j- r  q% G$ O! [+ R! o
            idx_array = np.argsort(item)  # 每一行距离列表进行排序,得到对应的索引列表. S- c$ J0 z' v) `- A1 E. B
            W[idx][idx_array[1:k+1]] = 1# J4 V- N/ P3 u6 [+ u9 ?" t
        transpW =np.transpose(W)2 B, s0 ?- }' h5 I; z7 V# A
        return (W+transpW)/25 E% a0 J$ K  u/ y4 S
    # H+ p5 j6 M. C9 O1 i1 s4 |! Z
    def spectral_clustering(data_set, k):" L  P' f/ @* Q6 `
        # 利用相似矩阵S得到邻接矩阵W/ {  w. T+ t& u; T
        W = get_affinity_matrix(data_set)  #高斯核函数(全连接法); L+ h( O/ b/ V
        #  W = get_W(data_set, k)  # K邻近法. x/ k: c% x) h" d' j  R% y/ U

    - e1 ^7 ?' K4 ?9 v0 p' p6 V" e    # 计算度矩阵D,并得到矩阵D的1/2次方的逆矩阵(便于计算拉普拉斯矩阵)
    9 M/ z. Y9 x5 |* \% V7 R    D_inv = np.diag(np.power(np.sum(W, axis=1), -0.5))' M. T. r9 A: r% G3 Q( v+ G* m

    & H3 [# i5 v. c$ C5 h) z/ w    # 计算拉普拉斯矩阵L=D-W
    " g6 t9 u2 m+ p: e  T! C    # 标准化拉普拉斯矩阵l = D_inv*L*D_inv=I-D_inv*W*D_inv
    / ~4 c& L5 K' W3 w$ u# Y    L = np.eye(len(data_set)) - np.dot(np.dot(D_inv, W), D_inv)
      }+ b6 ]/ _3 h, C! H# w4 {+ @% I: }% [9 e$ I* A( G
        # 得到特征值和特征向量& g* q$ L* \6 \( j* @3 `
        eigvals, eigvecs = np.linalg.eig(L)3 ~5 T! A1 T0 x( e$ y

    " m6 N6 r: p" C* g& i3 s    # 找到前k个最小的特征值(索引)& [& V/ N/ r8 N! W" J( t  b  A
        k_smallest_eigvals_index = np.argsort(eigvals)[:k]9 T) ?; `( B5 J$ P2 w2 K
    ; r) r8 I& _# v: j; w5 {. m
        # 取出这k小特征值对应的特征向量,并正则化
    : h6 V! C6 b* M1 V" e+ g) T    k_smallest_eigvecs = normalize(eigvecs[:, k_smallest_eigvals_index])# B8 }1 Y6 L- i. t2 v  ~: X2 m$ Z+ [
    0 X$ g& t7 b6 K
        # 使用K_Means聚类
    , w. v" [5 p% f    return KMeans(n_clusters=k).fit_predict(k_smallest_eigvecs)1 K5 v6 g/ u# @) J5 S+ c" g

    ) ]: k" G# W  Y# o7 [# Y
    - ?4 Q4 f, D/ ^$ ]  P! Hraw_data = pd.read_csv(r'E:\Postgraduate\Dataset\jain.csv', header=None)+ ?% M% X7 i+ b+ X1 F9 K: m
    raw_data.columns = ['X', 'Y']3 I! ]; X+ V/ M" c  K
    x_axis = 'X'
    # ^! z5 {" I1 }y_axis = 'Y'
    ) P, k/ D! J  X1 \" o! a( }
    0 ~. z3 V9 m5 a5 Nexamples_num = raw_data.shape[0]
    / B3 ~9 p, q: P+ Jtrain_data = raw_data[[x_axis, y_axis]].values.reshape(examples_num, 2)  \% J' F0 y. _& n# S1 B1 Q
    ! H! j2 e- Y' V( F5 x

    $ W& R+ w# i) ~* Y5 [1 jmin_vals = train_data.min(0)( z% w6 n6 X: Y3 h8 B
    max_vals = train_data.max(0)1 u" d5 l" k: a- ?) u* N- ?5 W5 K
    ranges = max_vals - min_vals
    / T1 M8 I9 n% Z8 c  ^; Jnormal_data = np.zeros(np.shape(train_data)), h( e4 J5 v/ g% O( {, }& F
    nums = train_data.shape[0]# |; F8 Y+ i) Z  b3 ?7 w9 N8 p' n/ |
    normal_data = train_data - np.tile(min_vals, (nums, 1))
    & z2 j8 [, H, }4 Y. B/ p( lnormal_data = normal_data / np.tile(ranges, (nums, 1))0 R0 {3 |3 B7 h) o' t, g9 R  R9 m
    3 P4 R% n, k# P3 \0 x. p
    labels = spectral_clustering(normal_data, 2)
    9 b; U% f) V* N2 T+ T  _+ W& P  V; K1 B6 m) V# J) s8 D
    # 原数据
    ! k/ ]5 k1 Y- ^* i7 _" Cfig, (ax0, ax1) = plt.subplots(ncols=2)
    ) H8 ~- c, E" U3 q3 a! Z8 Kax0.scatter(normal_data[:, 0], normal_data[:, 1], c='black')
    3 M2 \2 Z6 `, T- q% Z2 b  Tax0.set_title('raw data')
    4 p0 G, P$ }' M# 谱聚类结果6 B+ g# d# \/ `" d$ m8 }
    ax1.scatter(normal_data[:, 0], normal_data[:, 1], c=labels)
    4 m% e, K1 F+ t4 V1 Gax1.set_title('Spectral Clustering')
    ( `& m+ {- p! [5 Z% D. f# M
    & `( h# |' A$ q2 W( b' Y9 |plt.show()
    ( k" v% T3 d% b! k2 g( ?5 U3 [/ q9 W1 Q. f( e' z9 w
    19 ~* I7 K' ~/ \, o
    24 }5 W3 J- I. z6 Z8 c! z& h; \
    3+ ^5 F" O% p* T/ {* @; X! Y, m
    4. D4 i+ w0 P6 P8 V8 P
    52 G7 @$ d1 W% E7 L4 j
    6
    ( K+ c3 ]0 E1 \7
    % d& D' C# N$ d( e1 t, f$ h8
    3 ~  F$ ~+ Z+ y# z, G3 h0 i9/ I% _7 M! L6 x, E  E. c9 B( L
    10% u% R. ]- ]; f5 n' y, L: }- k
    11
    ! t3 o  ?3 Y3 m6 p/ j12* b  N8 i& c; z7 M) _! M( H5 b8 P
    138 I2 y3 j( G% R9 R9 D# E
    14
    % O6 k0 U/ C% s; D! t8 v& M15( Q; Z8 I" j2 u4 J: \1 K5 A7 U
    16' U& w; w2 f! e1 A1 ?+ w; V- f1 N) t
    178 X' s4 {7 A: G$ U; A& E6 d: ~* P/ j
    18
    % b- G2 r; k2 ]- V0 r19
    * y5 H1 U0 P# c7 M5 T  x/ B20/ f$ n- j8 D! ^
    21
    ( }; v7 I: P4 K22
    3 J. G6 H. E: q2 ^23# u; ~$ l* O( a* L5 x
    248 {5 M/ J0 ]7 [) F) E+ K# C
    254 Q: i  c7 P6 a5 V
    26
    2 O% v3 R/ Q+ T( ?; X+ e0 S1 M4 l27. j/ s/ ^8 ^) ^: k1 f% M
    286 T% D, T/ ]! ^# K. o
    296 y9 V& X9 N: p0 X  W4 ?% I
    30
    : m0 Z4 K3 b! f31
    4 L) k2 q" W. e# p; h32& p* q4 q* q7 k( y1 k: L& N
    33
    , S4 V/ q1 ^: r7 ]% \+ x% F* x7 j34; s: }* A4 s4 S$ {) q8 x0 P
    35
    4 S9 [- E5 k/ R& v36# ~) [4 M, z1 Q5 l* u" m
    37
    0 H0 C7 x1 P; T/ J387 D1 u' @- N$ s1 V5 T0 q* S
    39$ W/ b* }' f8 o9 B5 K4 i2 F
    40
    8 [8 `. v" S! |! ~5 i% p418 g7 @; X3 M) f  @8 G: n# R3 r
    424 G) \' I3 M/ }' z; r
    43
    : z. n2 c6 `) W) U  M4 T& I44
    ! d& W7 b6 _  p9 m% k* y! Z' g' Y45
    2 M0 x* ^% f1 W7 J  R! O46
    " U3 Q- g7 @. v; e6 v( Z) N47) Z) M  W" u) W; U
    48; x9 C9 i8 l" }4 w9 W- I
    49+ \: `9 ?- F1 f, a2 L! t# a' B2 n  G9 ~4 m
    50
    - c5 A8 p5 K' L5 q6 [9 K* w% q518 {  `/ O; ], i9 S4 r# N, b( R
    52* F& h2 g7 ?; E* A) b) S7 ^
    53" g4 O4 J, J" d3 P7 q. _
    54) m- W1 `9 _( G& H  |$ e) [0 P
    55
    ! R, x$ O# ~$ N56) h' @( ]- |2 A( D9 `$ @+ O! v' ^
    57; b* u- g; x, }
    58
    $ c0 H$ P$ J, y59
    7 B( }: j& {! i60' z9 }/ W$ b% Z7 c
    61# d' o2 T* @9 X3 _' i+ y
    628 f5 N+ T  V% v) _
    637 q7 C" Z7 |; ?- M" d
    64) n( D; D( t6 K2 y
    65
    7 n# i4 s0 M% q+ ~66
    ! o2 {- T$ ?' N; Q67/ I7 x; t" o1 C) t3 z
    68
    2 o( m+ z8 Y. i# Q& w# ^, l) w  d69; Y4 U2 B- p% l/ d: {* u6 U) z
    70
    9 Y0 j4 P9 I% G& Z71
    # k; U4 w9 S- i" V. ]$ O72) V7 R6 ?8 G/ Y4 D9 ~8 r( ~
    739 \, K$ L1 f, t6 b4 h4 y/ T2 ~
    74
    3 J# \" y6 o1 \- d) ?4 ^$ B75- J4 V# q- x! C+ d2 Z% r% B
    766 w- z! _+ @5 s  Z3 _: ?
    773 s( b, D0 Q' i2 F' a0 B& K0 [
    78
    ! T6 s9 k4 O. D7 m0 K79
    # E7 m! p0 b5 u& p2 }80
    / E# m3 d2 R. V  S& M$ U" l. z& E& i81
    8 r7 E: D1 [$ Q3 u0 K82
    3 F- o5 p; @% R$ \% n) a& q83
    4 J# P. J5 D: }84
    ! X: Z$ p7 @2 h: |4 A85
    % [3 |8 F( E4 `9 j86
    & l+ v- c: x/ y87
    8 ~6 t( [& l. ]) \6 p  h) a88
    $ C: O3 x) H) `4 y89* n" ]" n5 Q! @! A6 X
    90
    . L, ]; j( E( z9 H+ f6 s$ Y91
    3 S7 n4 ^0 _; c& ]3 c& V! S92
    ! C& V: {9 R) e6 C9 k% C0 s, j5 g9 @93, B% y; L5 Q  [: ~+ ^# O
    947 N3 j, V# [* L! r2 A( R
    95
    7 N5 u8 u3 u% ^% Y# g" j) \1 ]- Q96
    . B, l1 ~- l- G. c97
    9 ~5 B1 A7 E1 n6 c2 w9 }& T7 T98. J8 w! \0 x+ c( |3 N7 B9 H
    99
    2 a/ F) B4 _* I100
    $ A0 f# k2 C; c; S) V0 t101
    & \' U6 X- @& J  c6 C102
    9 Q. S9 b1 {- n- D1038 |* ~& z4 |, C: v" p3 e0 Q/ U
    (高斯核函数)
    , B1 Q. b1 x9 @; K# U7 a3 o+ a3 C' I
    6 j' f$ a( P' c' D1 u
    8 X; {4 G# c3 h9 h9 p, j5 }# F(K邻近法)
    - e6 |7 o& f- I
    / K7 A/ x1 y) T9 K# J& n
    9 q. H$ Y: C5 b* ~$ p7 r: H四:谱聚类算法优缺点4 B, L/ b1 G% f7 S
    (1)优点
    . X" A; C# k' P9 c" H9 ?谱聚类只需要数据之间的相似度矩阵,所以对于稀疏数据的聚类很有效
    9 \2 A$ ~. N+ _1 Q+ `. \使用了降维,因此处理高纬数据聚类时复杂度要明显低于传统聚类算法. }0 {$ P$ D) S# W
    谱聚类算法建立在谱图理论基础上,与传统聚类算法相比,它具有能在任意形状的样本空间上聚类且收敛于全局最优解# P1 a. R5 _% c2 a4 [
    (2)缺点
    ; Y# y/ c- F* ]" ?* X0 L如果最终聚类的维度非常高,则由于降维的幅度不够,导致算法的运行速度和最后效果都不是很好
    : K) ~( }- G& q" o& G聚类效果依赖于相似度矩阵,所以不同的相似度矩阵得到的最终聚类效果大不同相同
    ( Z. m% A, ]( E4 d9 d/ t+ V————————————————( r0 |+ b2 D( _4 ^- W
    版权声明:本文为CSDN博主「快乐江湖」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    ) D+ W* g/ h8 A$ k5 S) [原文链接:https://blog.csdn.net/qq_39183034/article/details/126747494" F5 D9 e% |: o0 J1 O' _* {

    . n, W$ z. \: t5 h" r" `8 E8 F% k0 r8 j5 k, ?% b
    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-6-13 09:03 , Processed in 0.433160 second(s), 51 queries .

    回顶部