QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3104|回复: 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
    【数据聚类】第八章第二节:谱聚类算法之切图聚类、算法流程及其实现% @- t# w1 ~  ~" B2 m9 ]! l
    $ u; ?+ B1 B! Z1 d
    本文部分内容源自刘建平博客,在此基础上进行总结拓展) v  J' C5 n9 ?. s3 @

    3 g* _3 s/ D( R' W+ C原文链接1 W% E3 h& K  i1 f' R) B
    文章目录
      k  t7 l# p# O2 {1 P9 B: I+ \3 W& e一:谱聚类与图划分- Q3 f+ l% s( c# \# t7 C, R  o
    (1)比例割
    - F& U3 h6 x8 u- b8 g( H(2)规范割(常用)
    1 Q! A9 c6 S; K9 F- X5 P1 V2 c' E二:谱聚类算法流程9 a6 h7 ?# m) J' t& b
    三:Python实现0 U( u% M4 _# z
    四:谱聚类算法优缺点
    6 n- A4 j  A. ](1)优点
    ! `( m- r) s( ?( L; H(2)缺点! U; R7 p& Z2 T+ a4 i
    一:谱聚类与图划分5 E2 d; t" p8 x  o: d- Z
    无向图切图:谱聚类算法根据数据点之间的相似度将数据点划分到不同簇中,因此将数据点映射到无向图之后,可以转化为图划分的问题。对于无向图G GG,切图的目标是将图G ( V , E ) G(V,E)G(V,E)切分成互相无连接k kk个子图,其中
    4 `1 j! @8 e# r! H* S) W( e% b- b5 p+ X9 P# R
    每个子图点的集合为{ A 1 , A 2 , . . . , A k } \{A_{1},A_{2},...,A_{k}\}{A
    + A" b, P; Z- Y: x6 E2 j) c. b! r1) \6 x$ ^; O0 _, x/ V) j
    ​
    8 R0 O( d9 L6 a ,A " W' Q  `: e" f# c9 N+ {
    2
    ; ]" s  t) B' R$ I$ W' i​
    + l5 \  z( O- g3 K8 \) N* z, p ,...,A
    ) A7 v/ \- Z& R9 N! ^k, z  f' q2 i$ r. D) }/ m
    ​
    " Q# w* U8 ?' c1 @ },且满足A i ∩ A j = ∅ A_{i}\cap A_{j}=\emptyA & u9 F6 [+ `/ b' v, q
    i, [6 U& w0 d8 w
    ​8 ~* M  ^- f! v) x5 v2 j% ]
    ∩A
    ( _. U- L% U3 [3 Q7 _% Xj
    ; Z0 o1 k1 L1 d" I5 n, J( e​) V) u9 P" ]$ X
    =∅、A 1 ∪ A 2 ∪ . . . ∪ A k = V A_{1}\cup A_{2}\cup ... \cup A_{k}=VA / G2 O* @1 ^8 i) {. [
    1
    7 ~. `( j7 J# ^; }: O​1 h# i/ o- l5 J) T. c* ^
    ∪A , K6 B& C# i  w0 c
    2. n  v2 }4 J: R, c0 ]# ]! A
    ​
    & A3 n; _2 F; \  A% j' r ∪...∪A
    % x. _% Z# N% g" lk/ ?( |, L# A% T1 Q! U- i$ y
    ​
    5 o  E% i$ g5 e6 b =V
    & B% o' z& Q+ F& u对于任意两个子图点的集合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)= 6 M6 ]1 a& e8 p: m2 n
    i∈A,j∈B) E' B3 I% L( _4 f6 ]
    ∑% E7 D- |/ N4 T0 U, G
    ​
    . a# |0 U* g1 A3 m/ ?" S) v w & l0 _. {8 B4 Z! n) d. D! q0 h! _
    ij
    6 V: a( `" ^; W1 s$ O7 K+ c9 K​
    9 y: Z2 s. k% ]
    ; s, f- g+ E# K对于k kk个子图点的集合{ A 1 , A 2 , . . . , A k } \{A_{1},A_{2},...,A_{k}\}{A 8 k! M6 M" p4 Q+ T- K+ z
    1
    , d( ?: q, ]" P+ p* p! [​& |0 ~+ j0 x4 k1 ]. [
    ,A 5 O) W5 [/ U4 Q7 @2 I* w
    2
    1 n2 M) F) R4 r8 _7 z; B' p​2 }1 ^/ {) p7 H2 x% T
    ,...,A
    7 c$ l% C! a7 Q/ i$ y3 A/ r/ bk
      K2 c2 D! \  Z! I+ ]​$ k$ o% n3 V2 y. `; B2 H- ?: _* ~
    },定义切图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
    $ F. X6 ^& f0 n- e! F13 A* [2 l- i" `6 {! O4 s
    ​
    & w* ]: r( n7 G ,A
    7 `/ l7 j1 M( E& O! H4 K; B+ D2- z8 f6 J7 `8 G+ F
    ​
    ; a( ~  N( S  ^8 q ,...,A
    1 ^1 p- \& i+ j4 D& f- ^4 J  zk
    , H: e$ v% o* M$ a7 q, d​
    * \) Q& W6 M+ w0 u+ r )= ' i. B% z; f9 S% t: B! e1 u1 a  b
    2* h- ]: j$ s6 V* O5 P( P! R2 q
    1$ b% N& S3 N. ^( u
    ​
    ! b  r1 b# ]/ D7 W2 a
    5 ~# n' r, E! K- J; }i=13 C6 |6 o6 @3 [7 y7 v9 r% I( f4 J
    ∑1 e; S1 o: k5 G: c0 r6 B
    k
    / n! R) @2 F# G9 q1 n8 X! {​0 G; F& T' e7 }$ k
    W(A ! e' l1 T% Z# j) A' p/ p; S- ?
    i' Z9 X; j6 A' k
    ​0 E; \0 x1 F4 N7 W2 l1 X- z
    ,
    1 u  x7 [7 d1 R+ B# j. vA  c% K/ G+ D- D* T( T+ {# U
    ˉ
    , N5 y2 y( t5 Z8 V, [* k
    . M$ R" t* H/ H; X* g' ji
    * f7 k; K7 N. {, G. |% D( ^​
    / j% X& c6 [6 Z+ @ ) (其中A ˉ i \bar A_{i} ) k5 t+ z- I3 `
    A3 I( a! |" a7 u4 V8 Q+ ?$ L, E
    ˉ( `5 i. P6 u- w2 {6 E$ P1 v2 [3 Z$ {
    $ [6 Y9 j' U$ `$ Z3 A" ~" h
    i
    ! C: J; |3 d, z1 ~( \; v" p​
    # w8 M9 E0 [5 }4 x 为A i A_{i}A 5 ~3 x) |' N- }1 U7 X* w
    i, j) [! t. \. b5 q( w' P
    ​
      v4 c- U) k( @! h 的补集)
    1 f7 @# y# X: ^- ^8 k可以看出,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
    ; A: }: }* `7 {2 @  h( [11 O; `  v6 D  n  J; ]
    ​
    4 {8 @3 l7 Z! X7 K7 _5 A ,A 4 l( l. y/ Q2 g' ?; u1 W
    2: i& L* X& e( `1 |5 Y' Y
    ​( h- r4 i' \3 ?+ x
    ,...,A 5 A0 ]& R! F' K8 z
    k# u8 u8 V/ A! s; f
    ​
    9 G( g1 z2 A4 x# @ )= + U& T% h( d, `/ |$ U. j, Q6 X: n
    2
      x( b% Q( X, ?, Z1' F2 J0 `' Z" ^% e# |
    ​8 n7 D- b" z  k6 T6 D
    + v" E; B( C* H/ E
    i=1
    ' r* D. x0 a, c0 J* `! j5 U∑
    ( y  s% h) G! U5 Y5 ]k; k  {+ x+ A) s7 A/ K# K
    ​, X3 b) k  u$ L+ M; S0 I
    W(A
    0 e5 `% q3 h6 V2 I; _i
    4 ~# U) k1 E: F​
    1 G1 H8 B) y) |) x ,
    ' W3 u% v: p5 |A7 R# }8 q$ ?0 p
    ˉ
    . ?& }! u- E, g
    : k/ _- m2 b' i- a, i0 ci( G5 ?& C8 }+ F6 Y
    ​
    # a# q: r. w1 y# } )在划分子图时并没有考虑每个子图中节点的个数。所以在某些情况下,最小化c u t ( A 1 , A 2 , . . . , A k ) cut(A_{1},A_{2},...,A_{k})cut(A ( v5 }7 A  b4 J, X( d
    13 R. f* d3 v5 o% t
    ​
    1 N$ \: ]2 B* k0 ? ,A / X) b; h0 x2 Q
    2
    . E. M6 O/ k- \​
    , D% f8 H/ g8 f ,...,A
    & A) H/ s6 V5 M; Sk
    5 H4 U0 o+ Z2 ?( w  M8 \​
    ( E2 @+ K$ F2 P4 \; Q )可能会把一个数据点或是很少数据点看做一个子图,导致子图划分结果不平衡8 B9 [& T) f5 T: }
    . L; L& ]# x- a1 b  U7 H
    例如下图,选择一个权重最小的边缘的点,比如C CC和H HH之间进行c u t cutcut,这样可以最小化c u t ( A 1 , A 2 , . . . , A k ) cut(A_{1},A_{2},...,A_{k})cut(A
    8 r( O- y2 j! Y; m( d1" z- x$ D( h# P& A
    ​
    ) ], n, N* N; X: \+ A& P1 s9 y ,A
    % n( k2 q' p& u" U, T5 X/ v2
    " |6 |+ }0 Q6 ]' \2 ~9 f  u​
    4 v2 N0 n# {3 i1 I# T ,...,A + C2 u: P; K/ R' ]
    k
    2 b* ^3 u* p# g% X, V0 l​$ t0 j6 f4 K5 I: t9 D. M: _
    )但是却不是最优的切图  `" w2 J7 d/ ]; I5 z. y
    ! S7 s" j  c2 W$ Q% l1 X! z
    为了解决这个问题,会引入一些正则化方法。最常用的两种方法为比例割和规范割: q2 c; g# n/ c: m

    , m! p$ d+ z) X& A, T4 r2 s比例割: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 . r: Z5 ~0 J- x
    1
    % ~: [' w. o3 u7 \: q/ U% W​6 D( R$ D, d  A* ]% P5 l% Z
    ,A
    7 D( S5 ]$ ?$ t+ @# Q5 L2+ i, Q& @0 R% h; X5 A- |. |9 N1 F
    ​9 s+ w5 y" R# [# d  n
    ,...,A
    7 U% A0 c# N& N+ o. x5 _k
    & R$ d: K" n( _​, o& R& X0 R' b. r& W" D( u
    )= + p' R2 w( R$ S" L; B7 z* J3 _9 s
    2
    $ b' y+ ~$ L4 M. c+ T: Q1
    ' a& x, _5 J0 F6 Y& Z7 A​
    * |: @0 T! [+ z9 `  S3 L0 Q+ ]& ?* k8 E% I9 J; S/ ^! g
    i=15 }4 G& G. X! l- r' }
    ∑9 c/ s$ E9 V5 K! K1 e; P7 y! N0 E4 A
    k
      n7 O: \# J  |​/ V( z" W) U) k0 Z
    " b7 a0 i# Q1 ]- }. x
    ∣A 8 B0 C* U3 ^9 L( I6 B! c
    i0 d' Y) {) u3 V! H; h- h' Z
    ​! s  A: p+ I3 t. b/ S, W% o3 [, {
    ∣
    ( h" J- O6 ^& l, r; ^% N8 f( }W(A
    $ @0 O- V5 q& Q4 e3 W: V+ o! N$ [i
    % n3 t8 I+ b9 X) o/ i( a​6 F! S5 i2 O+ p2 |0 N1 \& R, \4 w
    ,
    5 Z. @& q5 D) U0 t7 `, G# ?, IA7 }9 g  F6 ~5 [5 {% X! B8 x6 g) p4 b
    ˉ5 q& E4 J; y! t2 `

    % n; v# y, U4 ]; mi
    6 _: h* b- L9 \+ |% h​: f4 c# F# F+ T+ l2 c
    )
    2 k5 i! T& M" c& L8 L/ F​
    7 }! C6 a0 |, `7 L2 O
    7 }9 h6 ]9 M6 X3 E) R% 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 , M% _1 c" X6 H, [7 A% h8 z
    1
    - e, ~9 z1 c9 h8 R" L​& q- p$ c+ S4 W; i; }
    ,A
    ! N* n: w% `6 C6 Z2
    " b1 V( w( G  V- t; x! }) a​
    # A% H) [" B2 W' R$ z3 h ,...,A 6 p1 W. S. y3 k8 h
    k
    % c$ L# c7 _6 G​
    $ s2 d. Z! i4 Y1 ] )=
    2 |+ ]5 @! c, z9 X! s! a% r2
    * q% g" `: r  h( C4 d/ V1
    : g  m7 n9 f* D; c( f8 O4 s' A​( B/ _$ A, Z; G7 A% t# G7 o

    * ^1 `& F) A- T$ Bi=1
    ) D* f3 ^0 |8 d7 Y5 a∑
    6 b# |/ W' Q3 i, E5 g  ^: bk( z' @! z! C1 U5 h
    ​$ U4 M" b* M$ k* |. b2 M
    " {* e  \6 F# b/ w3 k5 W
    vol(A $ f, a, |1 ]5 Z% U, `9 I) V
    i
    8 {0 n+ p% O8 k8 k8 l4 b" P​+ G* n* n. `1 a$ N# c& H* d( p, ^
    )
    6 B6 ?" R" s" s1 P7 P! l* tW(A
    2 C0 i3 y: x  M0 ~i
    # I% M; k: U* B. m" N​
    9 l0 z0 ?+ h2 k7 m! x , - B) e  K* G5 z. j7 U
    A: Q9 x2 J, \! q! Z0 l$ A1 V
    ˉ
    5 o0 ]: w  @) J& R7 L4 _6 k  L" f. B$ d. S$ a
    i
    " ~( ?7 I; G, N- D​
    2 j1 C- C1 l  e0 G7 G5 v' k )
    + q9 a0 e4 N& V/ l8 @5 n+ y​. X8 ?/ }; ^4 a! Z- ^+ `

    0 k0 b2 a! U! Q8 _, u0 O6 d(1)比例割0 V+ z; {% d# P$ t$ C
    引入指示向量(点击可查看指示向量定义)h j ∈ { h 1 , h 2 , . . . , h k } h_{j}\in\{h_{1},h_{2},...,h_{k}\}h 5 n% Z- ]! r4 |6 m" S% d! U
    j
    ' t- O+ n( x1 \$ x& A​/ Y; r6 J( t" p0 O4 `6 L
    ∈{h
    7 s+ m+ Q- j: `' V9 ~% ~  Z  j1; C1 g, ]% {6 [+ H5 J
    ​; L2 t+ [. S7 m; W. Y0 e+ D! `  e
    ,h
    6 r* [7 I5 C6 C  Y4 P) c$ u2
    9 {$ t0 L; l/ ]. P​
    - U- B% N1 G% ], V! i5 v8 y8 M: g ,...,h
    , g( I/ b" K% v" K0 mk
    1 t# T" k1 S0 w: S- e3 s​
    7 O: B8 K! C3 @4 Z% l },j = 1 , 2 , . . . , k j=1,2,...,kj=1,2,...,k。对于任意一个向量h j h_{j}h 2 e) @* r; ]9 F- x6 k* }: ?4 c9 R0 R# o
    j
    - h/ w: T) T- S7 Q/ J7 n​6 ^# a) X* u8 C; S/ c8 u/ @) C
    ,它是一个n nn维向量(n nn表示样本数),定义h i j h_{ij}h / f/ P% X. v6 y4 }% K
    ij
    ( y! m2 Y. q8 h+ }! ^  G! e​* n  S1 L  _# w' a, Y
    如下. L4 p5 [# J& x( w+ \1 q

    + y4 Z5 V6 i' ?4 v+ f' nh i j = { 0 , v i ∉ A j ∣ A j ∣ , v i ∈ A j h_{ij}=
    . q: Z- W0 w9 Y{0,vi∉Aj|Aj|−−−√,vi∈Aj7 Q$ l+ A- _* [  S2 ]5 J  Z- Z' Q' |
    {0,vi∉Aj|Aj|,vi∈Aj6 S- L, @0 ?% ?# L- E' _) p
    h 0 G. P" Y$ {' H5 e* o$ D
    ij
    # q0 T! x6 D( l5 H; L# j+ N​
    ; D1 l5 L4 G& E+ m ={
    4 W1 Y' C; i# p. h: r% ~! G# R( k0,v 7 H1 n5 g3 V. i' y
    i  g# J2 _8 j% |5 W" f
    ​
    4 S( W) b; P6 D9 C' U& |7 d( X ∈! A% Z5 h5 [) H; a1 M9 J3 ~# R. Q
    /* p1 Z( Y2 v; a6 d# B4 e# N' X
    A
    & K) k. B" r6 B. R$ N8 t+ @9 e8 {j
    % E% Q9 B$ D- D; [​6 L; I1 Q8 k/ \! H  k2 n5 ^' K2 b

    " m8 |# q6 E; d8 N# {, N∣A
    * j8 F% O9 x$ Tj) m+ s5 M4 q, H2 ^
    ​
    ! W9 L7 Y" I4 l: c6 v ∣
    # Y/ f( _- O  b8 N​' h! y' Q0 t% w9 O) Y( `
    ,v 2 D1 o1 C/ x2 E+ G& G  B
    i9 V7 g6 d( P) Q8 E* U
    ​
    - b& R9 r* g4 E3 b ∈A ( G7 M( j! @) D& {) k* j8 P
    j
    / V; x$ y3 P7 k' N! y8 j/ H; z" g​
    ) w3 S4 M( |0 s) ^! T4 |
    % H( r! k, a8 y# }0 A​
    * C" S1 c2 ?' }; E3 G- c- G/ A4 ]9 ^

    % L- o: R: e* S. p8 L( g1 x$ B于是,对于h i T L h i h_{i}^{T}Lh_{i}h
    2 H/ o! l9 p' @6 R- z( Yi
    2 e6 C4 b/ i8 ?% @$ }$ HT( k- V( D2 [* v2 R4 v
    ​7 i2 y! I% v/ I* L' }* A
    Lh # l& W% u' Q: h; D$ p' N
    i9 q& y* _" m  k  H! A* b
    ​$ ^& X0 Q* K' b; D5 W
    ,根据拉普拉斯矩阵性质可知% ?( [) s9 b% ~% K
    - U! o# I/ s' F  ^8 n' Z( l# ^
    对于任意向量f = ( f 1 , . . . , f n ) T ∈ R n f=(f_{1},...,f_{n})^{T} \in R^{n}f=(f
      M' J& c) }: A) L1- M$ b2 n" [/ I1 }3 u4 U7 e3 B
    ​
    2 B" s1 `% W% ^( D2 L ,...,f
    : R1 E3 n+ M8 P: An
    7 f5 |6 o  R) N& n​
      i6 ~6 U6 K/ |3 j )
    3 i2 z9 R% J- bT
    , s- a% E# v( {* a; u- H) X# m ∈R 9 z. t# N2 _6 P7 \3 k
    n
      b3 Y4 T1 w8 N) v% G" H9 F ,有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
    " b2 v$ Q* R0 x, [9 |' a8 rT
    ; [4 O+ A& w9 `) Z; p, t Lf=
    # T9 W' _0 h4 M) V, J2
    - p9 {* L* N0 @4 M% k" {1# X" v4 Y( O# z+ k1 I$ u: D# l9 Q
    ​
    4 V/ Q; V+ D8 B4 M' s' a8 E: Q7 S4 Z
    i,j=1
    8 z% ?7 x0 S/ b8 D2 E2 M, I4 a8 M∑" f, B) C5 p$ k' I% L) [8 R) G
    n
    ; U# ?, _! l* x& w' b" u​
    4 ?% n, l) J, I" M" E w
    3 E& z9 Y$ ]) ?ij
    " q3 Q" Q/ e# f8 {$ p" V​. y4 e1 l  V( ^+ j9 q
    (f & ]& ?1 Q6 [  c& Y. K! `1 ?; ~0 }
    i
    ' S8 }5 m9 T% G. {6 U​
    0 y+ R( e; [' f  u9 R −f : o$ [, R) P6 i: \3 F/ }# I
    j
    $ w/ p4 y" Y6 I, v​
    - \( C7 G* {/ H, e  s ) 7 @% ?: V7 N" N2 r5 j# F* O
    24 [: a& u. e  P7 I7 z
    8 V3 _1 S* G1 }4 y  [6 {
    h i T L h i = 1 2 ∑ m = 1 ∑ n = 1 w m n ( h i m − h i n ) 2 = c u t ( A i , A ˉ i ) ∣ A i ∣ h_{i}^{T}Lh_{i}=\frac{1}{2}\sum\limits_{m=1}\sum\limits_{n=1}w_{mn}(h_{im}-h_{in})^{2}=\frac{cut(A_{i},\bar A_{i})}{|A_{i}|}
    , |# E+ X2 o+ U3 Lh
    ( _' r$ @6 z% E; K; X8 Wi' ?3 s' l$ e1 x2 N+ F
    T! d; Y0 d5 K& U8 Y: e2 T1 q* y  M! _! n
    ​. ?* k# {% J7 q5 N7 s3 q/ y8 G
    Lh ( [' Z& R. C5 n" ~6 Y# |3 N  c
    i( d: d3 h6 h! X
    ​
    . s' V+ I, @2 w, g% c =
    / j8 R0 R" c3 i4 l+ |+ f2  M( p! {! s. s& [8 A
    1' C- c) n0 p# K0 `. u. k. n. m
    ​
    % C, ^. i$ E2 N& @# p) T8 @  _
    4 B7 T' e+ I" M% ^2 jm=1  z& s9 k! U& H3 ], ?+ k2 X7 [
    ∑0 O: u2 a* _9 M5 q0 [( ~. x
    ​
    " A& t3 O: D; j0 i. W  o) q/ I+ I! ^$ h4 k1 y7 L
    n=1
    * {* N" ~* j- z' I/ F∑
    * G! H. E3 o/ X/ t* v  S1 g1 w​% s, w- s. z3 X$ o7 [
    w # e5 D  U+ e/ {3 W$ Q% ]
    mn% v+ l' j& E% @  p; R
    ​8 J1 _+ O5 T' n
    (h ! K! s! ]: T( ?5 j! l& p1 g
    im1 V/ \' a& {0 e& S# l' q2 m
    ​0 K% l9 K, g4 G% B0 o
    −h ( c+ _3 W! s8 Z. D( B: v4 S9 }- W
    in
    : o& H# ~& a! G9 W1 U​
    9 Q1 U; A* W3 r# c" h4 @/ E )   A0 K" W' O, Y6 c  r) Z  f
    2
    # |$ R( @! O$ `6 w4 N% l; @: z = ' N* ~( T2 J3 N* J+ L& x1 B
    ∣A
    ( r) |- E7 f0 \- K- o- Mi
    , E( @8 L; N3 H​* X  ~/ h, E4 i3 B
    ∣% ~: O. y8 i) h' R1 I
    cut(A
    ( e/ B5 Y& a% a( M1 [* D% ?i/ b+ K; N) D' U3 U/ g% D
    ​
    * Z5 p/ C! y4 @8 t9 H# K4 B+ l ,
    0 I5 j) X. \6 f4 @$ K. KA2 m* v6 p8 m: i" Q# Y( C. W
    ˉ/ W. U% k: f4 s& i' C4 ?
    8 z/ a- p' C8 Q6 a% g
    i
    $ b8 a; E* ?5 V2 [# g$ V# _4 y​
    5 w, f8 T# e+ ]6 Y& z )+ n, y  Y% f: p# Y- T
    ​) E! S0 C1 F4 x6 `1 v
    . \8 k, n: _. g% p+ ?3 b

    3 y0 v5 `5 R3 W) r( k严格证明过程请看刘建平博客:链接/ h8 T' T9 m. c1 \, ~7 n8 t
    可以看到,对于某一个子图i ii,R a t i o n C u t RationCutRationCut就对应于h i T L h i h_{i}^{T}Lh_{i}h : g! u% J$ X/ Y6 C) R" C  _9 ~" d
    i
    . W$ g1 v$ m5 yT8 H# w( M" Q- I! W0 Y
    ​
    4 m8 z; P2 M% q6 L, A( J Lh
    / W/ K* j% I. P/ g4 U* H# N1 a  P6 Vi
    1 Z' r; }( v0 Y0 H( O​
    6 r5 h" `0 i. c6 X0 i4 Z. Y0 K- K ,那么对于k kk个子图; o& d! [) X1 l4 y, t& ^0 d2 w
    ( \! M3 o9 {- U& `
    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): d: y1 Q* W( f+ v5 H
    RatioCut(A ( X; N0 R# ]) o* {: @
    1; ~; [# w' X& p6 T  q1 N8 E. o/ [
    ​+ U' g6 A" Y+ L! I, m
    ,A
    9 S) t: _9 a( d* i, P, T5 Y2/ s4 s+ L$ U+ a8 ]( f
    ​0 w6 Q" O+ I/ H9 O* j" |
    ,...,A + @) q, [9 w4 V2 c* @& d4 l
    k; W& u) W8 h( @
    ​: l  c1 V. \9 a# x: z7 ?: o
    )=
    8 X1 r7 Z$ `) F* n0 Ei=1, M# u/ ?4 }. Q" {, L* [, l0 W8 C; r) \
    ∑9 Z- o2 j( @/ h6 R* s! C- `1 F
    k, u' v& @5 U. U: A
    ​+ z$ e( t* E7 ^" U2 j# F
    h 0 j' Y& O/ F+ d4 g8 f7 x8 d
    i
    7 A+ c; N4 n# `T$ s, ?7 |: ~' x; [8 x$ g. C/ \
    ​
    7 X/ r3 O+ [% \ Lh
    % T) o+ {: }# R2 Z8 F+ ~i0 T8 y2 b/ D4 U' q$ w. q1 N  y
    ​
    2 b' }9 Z, n! g; g5 D =
    $ A3 d2 W2 \6 I) p2 K/ ui=1
    - w1 T5 M$ H, |) Q2 l∑' I  q' r* c1 N8 F, I; Q/ k9 l. s
    k
    2 r) f0 x( k$ H6 e* g4 x​: {) v! o! V: n
    (H " C* N+ r7 [& A" z1 a9 e
    T! W3 ?5 p9 Z& v; T; G
    LH) 9 E& ?3 w; I; z4 A/ g
    ii& L5 P) ]0 X, e  \, h& E% `
    ​% u& F# L, Q7 h5 u4 Y
    =tr(H
    " G6 @6 Y, j1 ~9 {" hT7 e' o4 c6 ?' r+ ?; ?2 m4 F
    LH)
    # t& C3 X( m* E0 h  w% c. }
    4 |8 x& g5 I" l1 g  |: V3 Y% R1 h因此,R a t i o n C u t RationCutRationCut切图本质就是最小化t r ( H T L H ) tr(H^{T}LH)tr(H 8 K8 M# ~6 `! l! {( W# q
    T
      @% e- q1 W7 v" z% g" p' W+ b4 f LH)。又因为H T H = I H^{T}H=IH
    * H, y3 b0 S: l. e1 [9 U* b1 F+ \8 sT
    / A9 {- r6 q6 k8 Y4 g; W H=I(单位矩阵),则切图优化目标为
    # O* O' Y3 q4 C6 |1 I
    , f) B# m" y# |6 f3 da 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
    + l5 H! ~) j+ y' N5 e, g' \5 LH
    7 I% H& g/ C" B2 y8 Zargmin
    ) \3 m5 ?: E# \: m7 s4 p% s​3 H/ f5 Z' L3 f7 _1 W  t

    0 T3 \8 }7 R. I, r& E​
    2 l1 ?; q+ G( j6 ^ tr(H % ?, u3 b; F! ]0 q2 \  U# M
    T1 f  m8 l  H( ^; V' k
    LH)s.t.H " o, j0 P9 Y  M# W* a1 A6 O
    T. n( ?: `8 ^. }( q
    H=I. j0 E( s& m& p: j' {
    : M2 t* C) \/ C& e4 f3 u. b7 w
    对于优化目标t r ( H t L H ) tr(H^{t}LH)tr(H 6 x1 o3 o  X* M  u' p
    t$ |& Z; h5 w0 d+ g+ S. q
    LH)中的每一个优化子目标h i T L h i h_{i}^{T}Lh_{i}h 1 d' k* ]7 N! b, i! n  C
    i6 Q0 L: J( f1 x6 m
    T
    ( Y/ [2 C$ P1 W+ `/ J. Z( O​+ _7 l; D/ F* H2 L+ o; N- k$ w7 W
    Lh
    " H0 K; x; [* R" [0 j, Pi
    . z3 J$ Q# J( _4 v+ S# e( Y9 n​
    0 _' Q: s0 z# e ,其中的h hh是单位正交基,L LL为对称矩阵,所以此时h i T L h i h_{i}^{T}Lh_{i}h
    ; m+ f; {& `3 t- W, T  Gi7 a/ {5 z9 S! {+ e1 s
    T
    ) n0 o1 Z* C. }, Z$ _​4 f9 _3 n8 _6 S8 k
    Lh
    + \; W+ L# y; _4 N. i9 {i
    $ u9 B8 f: k  L8 X​4 l- E) a1 K0 J% _, i0 V& q
    的最大值即为L LL的最大特征值、最小值即为L LL的最小特征值。而在谱聚类中,我们的目标就是要找到目标的最小特征值,得到对应特征值向量,此时切图效果最佳。所以对于h i T L h i h_{i}^{T}Lh_{i}h
    8 t6 F. ~1 _2 l; _$ bi. W, E8 v4 m# ~' W* p, @7 L" f  n
    T3 M# Z5 U/ ~) Y, O
    ​2 j5 D5 O" H" P# Q4 S! Y; J9 |
    Lh , `- a& ~' E; Z6 ^; ~
    i
    / a3 E3 j+ b5 B7 V​# ?7 s; z2 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
    $ w% c0 k+ x3 @$ d# R+ _2 l) o6 wt
    ! N% S/ i+ n& D" n% B4 r LH)= $ y; \: H% V7 b7 _$ B' c
    i=1
    * r. B! C" X) \2 ~1 t' H7 E, s∑+ ?4 N. H, Z0 z' D4 n( ^) i
    k( o" A6 e: ~: w5 `  I8 k9 M
    ​
    9 Y! [; g& A8 o  [1 ^, S" I0 B h ! n, a- B9 u( ?' z& u: z# g
    i
    9 b% S# a0 H5 d) dT
    6 O4 N: ~' |$ \$ c3 a% t​
    2 I0 `: X5 n( ]  _ Lh 9 I0 y3 u3 z. U3 J$ Y8 [
    i
    8 E1 F% O. }5 s* @+ `​' _0 d3 z6 N1 g# {% O; Q
    ,则目标就是要找到k kk个最小的特征值- w* _9 c6 q7 Y' u! P, w4 b

    + S: f# c; ~- S  M因此,通过找到L LL的最小的k kk个特征值,可以得到对应的k kk个特征向量,这k kk特特征向量组成一个n nn×k kk维矩阵,也即H HH。一般需要对矩阵H HH按行做标准化,如下% j+ l: S2 H) k" f2 u

    1 n6 a  o& [5 Z: t9 E2 p! _一般来说,k kk远小于n nn,也就说进行了降维
    ; e3 ^1 H9 K  Yh 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}}}
    % `; P, |7 Z( D: K0 Kh & X# ]9 k" J2 h; T0 {
    ij* Y/ s. e+ s9 ~9 O
    ∗3 k: J! v% e  w# W
    ​4 P6 O# V1 u9 n3 z4 O, _% N0 J
    =
    ' T5 q' `5 ?7 ~  T2 S% i/ ~# X0 s2 S(
    3 T" |2 x& c# e) p0 c. dt=1* U- C. ]5 |7 ^4 Q7 S
    ∑  ^3 }. n8 }! f1 N
    k
    * @6 n2 N! |* Q/ K" h, W6 k/ C$ L/ Y​
    $ u1 G$ M. G3 P4 Z) s. m h
    & p/ D' ?( l( K* \3 u/ yit; o# L) E% M  C: H
    25 H( H! `1 P. b+ |$ c; ]
    ​  o  b& w) p- q4 E& B# k
    ) 1 H1 ^) q4 a0 f6 P% r) O, s6 ~
    2
    - |0 F- W  Y9 R4 G9 ~+ P* }10 o) n! _. \* D* j1 Z9 ^
    ​9 H$ x0 x5 m& O' G% I1 F/ i
    4 U! Q8 x2 A8 O7 }! w  K
    & V7 A$ k; r/ a9 l3 c! f+ E. S
    h 1 t7 F  A9 d, S( B  l6 {- F+ C
    ij6 [, S, [( O; }
    ​! q0 ?4 A, M6 l6 V
    7 c& T" a: Z; b' @( U& ~: u" g2 o1 N
    ​
    . Q" u# R  n$ J& }. F
    ! T/ T* I, x" u; |/ j1 W- I
      B7 f! J" A* J$ O2 ?8 q  r) {8 ^这里需要注意,降维后导致得到的指示向量h hh对应的H HH现在并不能完全指示各样本的归属,因此一般在得到n × k n×kn×k维的矩阵H HH后还需要对每一行进行一次传统的聚类,比如使用K-Means聚类* n) p4 W! j& r! c0 t, l9 G& u% V

    ) |6 A/ X3 }" O5 \* Y(2)规范割(常用)
    1 D( M# Q2 B$ |+ W  `3 ^规范割和比例割类似,只是把比例割的分母∣ A i ∣ |A_{i}|∣A   o, G8 |+ e$ H9 R" A$ i
    i+ ^6 R1 [4 j  ]& Y
    ​- o' c4 R, j3 e' k1 \4 ?8 o& R
    ∣换成了v o l ( A i ) vol(A_{i})vol(A
    4 f' @+ ^" O) {- h+ Oi% P9 q9 c. z. C. `
    ​
    2 b: x' o% ~- m3 Z7 l4 i* e ),定义指示向量h i j h_{ij}h
    $ n9 _. p! z/ b; ^2 _6 U$ wij
    6 v+ ?6 c- j8 ~; {9 V; F4 y​& y4 p: t1 f- [* R2 c
    如下1 f; C; ^/ F5 e5 X0 [

    + `% }7 _# l6 L! b- |0 `1 b: oh i j = { 0 , v i ∉ A j v o l ( A i ) , v i ∈ A j h_{ij}=
    . V3 N" `( A% A6 Y4 \{0,vi∉Ajvol(Ai)−−−−−−√,vi∈Aj9 z& S/ \2 o4 ?) t3 `
    {0,vi∉Ajvol(Ai),vi∈Aj
    # R) j3 e9 }  }2 Qh
    ! q: [/ e6 [; D% ]+ n# |ij! A, q6 U/ d1 B0 b6 E
    ​
    ( @+ Q2 n4 A4 t" E3 Q ={ & f: `  w5 b3 W. @  a2 a  P/ k/ H
    0,v 6 ?; |( C& D) `4 M: b- N& s( c2 J
    i; }$ o8 q2 M5 b( T. `, X) Y9 d
    ​4 V2 Y% I- m$ p" W
    ∈* W- r6 U* b  X0 |* Y3 i( M
    /
    ! G2 c& f- ^, ~* p; LA 8 v: X0 r# e; o8 D1 ~2 n
    j$ `( C  e% b6 \7 x7 J' x; t
    ​
    1 R0 h! ?) u) w" k* a, ?* V4 g+ r& c* T$ @$ Q& I: ~' R
    vol(A + c; T3 |: H+ D8 R# d  n3 o: |
    i
    # s/ O) k  I" `; Y​
    % F# E5 K- H+ ]0 V' V5 \- g )3 U& @: v: ?9 Q
    ​
    $ @6 R# M' T) B: {7 _. P ,v - o: g5 T  O5 h6 O" X
    i% T0 Q) _9 W& v7 ~0 V6 t
    ​$ w3 b, N" p" J5 b$ M, ]+ f4 ?# V
    ∈A * }7 i3 E0 D% E, s
    j
    $ E& I5 s: r2 _+ Z- n8 `​
    ! @/ C3 N7 T* a
    3 C2 c2 X- i+ Y4 C( N​
    - R* m! z5 i1 N; K" R  \: a
    ; R- M: H: W9 q5 Z5 T
    5 w* g1 ~- x6 R& `于是,对于h i T L h i h_{i}^{T}Lh_{i}h * e/ l4 [2 Y! f6 f9 h; E
    i9 @9 R! B3 Z) \6 l/ `
    T4 f/ g  }& T  R6 h
    ​
    $ P+ r4 D9 ?9 }3 a6 S Lh ) d% Y$ ~+ x- {6 E
    i% A$ t1 @- m3 _& ]/ g  k
    ​( _7 ^+ n& g* a- p# ^. e- e5 q6 L" D
    ,根据拉普拉斯矩阵性质可知5 m7 U9 z3 s) z+ K

    # D5 W5 k& ~% R+ }对于任意向量f = ( f 1 , . . . , f n ) T ∈ R n f=(f_{1},...,f_{n})^{T} \in R^{n}f=(f 3 z& I# r+ j9 q+ R  a# G3 X
    1
    # y6 B" c  W. [+ q! j​
    . G6 ?  B" |- ]( d- ` ,...,f $ h# k5 {2 n% Y! y! F
    n( ~9 Y8 Y3 m2 z' }2 U
    ​
    9 y0 N2 M9 t- s+ C ) % s- B) f5 D- ]+ y
    T
    , g* X* g+ a" o, d  }$ F2 O+ L/ o3 |- Q ∈R : J) P4 K; S1 Y
    n
    # h; R4 W+ Z6 N% z5 t! R  Z ,有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) q! P; A% ~5 k, Y. U! F. N' UT; f1 K+ j: [/ g$ ~; G$ P
    Lf= 8 g) Q+ u; A4 r# L3 Z3 c! K- X
    22 ?8 X: \& z: u( E9 s. ]: `
    1
    , [$ c9 H/ U9 D0 J9 b* w​
    1 x+ R: P- [3 Y% G2 h& ^' @) e6 V
    i,j=17 r; K. m  Y8 a7 g/ E
    ∑
    ( E% V, P" K. O% {4 [( @n
    % ?6 x; t: X/ r5 m​- q) X& a+ z% k  J3 z3 L
    w - a+ E1 G" s) E: y/ _
    ij
    3 _0 a6 a# F5 C1 x" {5 ]$ B​2 @( X8 I/ t! h! ~: N1 d
    (f & g  E5 I# T: d" @  A0 ?: G" v8 i
    i
    ! @" F; R, D' W( _% m1 K' \​9 e5 b9 F6 m- G; a7 O5 M; P- P9 ^3 C* K
    −f
    7 N7 r* u. Q+ k5 mj2 Y9 k7 i' x+ k$ M0 J5 \0 ~5 x
    ​
    4 `+ C$ v; S+ ^) H4 f5 Y1 r  O ) ' V4 a% U, b1 t4 @4 I
    2# E$ L8 G; S8 Y5 \

    2 l5 |& d0 ?- V2 h0 O3 F# 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 ) 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})}
    + W) P* I+ w% x/ _  i* F! {h 6 ]  K& w* S, p: ?! d0 O$ G( \5 Z
    i
    $ s4 a) |- r1 ?, w. OT6 b7 V( t2 \" B0 Q3 X' o
    ​0 I) S. G3 [, s/ ^
    Lh
    # P1 L) L1 P2 S2 T4 ?i( ?- S- U% n4 h" g  v. I* \
    ​
    5 q, I/ y+ |% K! j = 6 h" K# ?6 W- W7 r+ ^! I
    2
    + v7 \9 M! I# Y' m. P1
    3 |1 Q7 a; o0 q​, d. L* f- y7 @' v! {5 R4 X7 [

    1 h7 m4 O0 F7 ?3 `8 ~m=1
    . k0 x) p$ z9 C- B6 d* W( [∑
    , p) Z' S  W% P​' g3 E8 s7 F: M
    $ h+ o6 ^9 f' {! e; K
    n=1
    1 Q7 z; G+ x0 ~" i' Q" Z∑& T) o9 B4 q2 w
    ​
    2 g5 B& r$ j, e* W  ~* b, r* j w 9 y/ W4 |; h+ P9 i
    mn
    : p( S, c# C# m, O; O​) @" H$ Y! I1 S: p
    (h 2 }1 W) b# N. W8 W# g6 ]
    im9 W9 z+ x4 Q+ X  W$ K. O
    ​" C' e6 G$ p" A3 b1 {; ^9 O2 k6 T
    −h 0 w# f$ P0 N" H* Y% ]$ V
    in$ c, I4 h8 u5 E2 e
    ​* l2 A1 z  k) s( I7 N) O
    ) 4 Y4 l, C" S2 u. f' O) Z
    2
    5 V6 y1 M6 h/ ?8 M = 5 p3 N  r9 t$ c/ T, s
    vol(A
    " y  |' ^: a" a# Y' k' y. Xi% v' \) Y0 R% `: ~2 x  m$ L) n. I
    ​
    ' F/ `! x' f( F  ?' M6 S0 Z ); ^- i8 A& o5 i7 d& }
    cut(A
    3 D( ?! ?# ?3 A3 M: gi$ B, c+ }3 E1 V: r
    ​
    ' ^, j, p8 [5 T. Q: j1 K# k3 L ,
    ) k$ B0 m. C! t8 M" G8 _0 ]A
    3 g6 c( y; q1 [' \! Jˉ
    1 ~4 v3 A- I  G* z8 b, g
    ! Q# q5 x1 B6 J8 }: Qi
    9 {5 N( O$ j- _​; a: _2 y& q' W) V& l' x
    ). p9 |1 E# k" E' W! D( @+ t
    ​" t; I) Z% R; h9 m7 @. V0 X) I, z/ r! L

    % |5 M: }+ h% Y5 d+ \
    7 A: @6 A- S* P  y1 b3 F" p+ U严格证明过程请看刘建平博客:链接  s# r( y/ F" ^/ ?: I  [; {/ J
    可以看到,对于某一个子图i ii,R a t i o n C u t RationCutRationCut就对应于h i T L h i h_{i}^{T}Lh_{i}h
    8 B/ k5 D' g9 Q* E0 zi# N# J, N* i7 \0 G8 Q
    T" {. j8 a$ t3 j
    ​1 p) a5 y: m  T; L# H
    Lh
    : \0 `+ S; m; u6 M! h. L$ _. Yi) j9 E( b, Y4 ?/ b# x: v
    ​- b  \! j5 C# W; D: X7 I
    ,那么对于k kk个子图
    % I$ y5 @$ A! C4 I! `; ~5 }# T0 x: `9 \  r! z0 b' B
    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)0 E% |6 W) {9 o, n, O, g
    NCut(A
    3 u' L" ?' T& J" ]* a7 Z1
    6 t" @4 p9 O) k& p9 S9 q1 x​
    * \7 s! R" a" |  O ,A
    + [/ W' q) E, E  {5 w- k4 f0 M2
    # G# L1 j0 }3 S. k  o6 u​
    ' O& N+ |) ~; ^8 l& V ,...,A 7 S9 f5 x9 d% E' T1 p: s
    k
    ( F( \7 V1 E. D, Q4 N7 w1 D​
    / I1 ?& a( h$ t/ P  f* t )= # |$ ]1 R7 h9 t9 {9 V  @. d
    i=1
    ; I8 S4 [( o& C& f. |* |% m∑
    1 \2 i6 b0 x6 G; @2 u) S, yk
    3 ]1 `  [: v' V4 R4 Z( E​
    4 x6 Z4 ]7 Q- b' W; [ h ! |* h% {3 K0 G! J+ e& I( K# N
    i, S2 W: Y. y, g0 ~' \6 ~7 L( ]4 K
    T
    % @! O1 {: ]2 Y7 z7 v8 \0 g; L​) n! k1 q8 ]& c& M  t
    Lh
    2 S3 _  d8 @: z1 V1 g% i  ^9 `i
    1 L" b" @+ P9 {& n$ v​% G! K% ~) _' o
    =
    9 T3 f" E+ i/ J. li=1
    ; o  ]6 j& B6 {8 O7 _1 T9 D: o∑
    ; s; J3 N& A8 m8 U. lk
    2 l3 x% F3 l* z( V( Z* h+ A0 Y' a8 s​
    4 ~+ z. K5 b8 y$ W$ k. h/ a (H
    7 a, Y4 c7 a3 g5 ?/ s' t) S$ iT
    % I4 P6 W) Y0 ^; V7 r! v. T LH) 7 J" r5 L/ R; I* N- Y4 F; r- i
    ii
    * g  @4 a4 u* Q+ v5 q​; M1 o; Y% Q6 ?& }
    =tr(H
    3 s2 D# e9 A' r" S7 \, UT
    $ U5 c% C0 J; a7 c LH)$ {( w% ~& r9 t! B3 k3 f. t, M

    . q9 j+ Q/ z' I' P, C但此时H T H ≠ I H^{T}H \not=IH % G+ k3 L" J, Q5 l& h: n* M' h' U
    T
    2 r  J4 f3 o* X H
    1 U4 z  j+ |( {2 w. V+ _7 v2 Y- s# k8 m  X( i; n
    =I,而是H T D H = I H^{T}DH =IH
    2 F7 a* g7 k+ ET' b7 o) \$ d4 F" N
    DH=I1 j$ n. ?+ W$ j  C* E9 O0 \
    ) x) D& Q* X1 X6 M* [8 a( P
    这是因为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 : r! W  c2 H' [& V/ Y
    i
    ; C5 z4 m. ?+ W5 ^/ k( \7 m# i; I* qT
    1 f1 M0 I! {) h+ T​
    ' r5 K/ ^0 j' I1 w! F" p1 Z! E1 O Dh
    ) u8 I; o- B- f$ z2 m* wi3 j3 `, U; ]) X% `/ i
    ​& ~% X7 F) `" P
    = 6 @) t2 z" W9 x: b" l7 Q( |
    j=1
    & t' Q' @8 M! X5 Z% |∑
    * T0 G, s7 w, x0 On2 _% h+ V! i% _  X! }  H. b6 g1 u
    ​  P9 g, K# d6 H2 T  t9 G
    h + ]. I- m8 C1 P
    ij
    & k, Y: [5 d5 H2
    2 r, q/ ~0 N$ I4 f0 J/ N​
    1 l$ a4 l$ n" j! m) \$ q1 M; x4 o d
    , S; N, {7 M% Z, S& G! k" mj
    9 O; B! B* I( {3 Y7 H​
    ) ?# R4 }0 y; d/ G! r =
    , c1 |" Q" ?" w/ H& ^2 B" vvol(A
    * x$ T8 B6 R) U, g4 z0 Ni' a: v/ f' W5 ?; F, x% G
    ​# ~: r: z: m& g1 f
    )8 W/ f! ~1 g* K: J* L" e( `3 P& O
    1
    ' m1 X+ W+ `6 {2 \! W1 R# K$ u( v​2 p" `7 W: ^1 m" N. z$ q

    3 s  \  @3 F! }j∈A : b1 P, a# D. ]: }
    i
    9 E! X- ~8 g! @4 D1 j​; O: J$ E1 d- |/ y/ z6 Q+ z
    ) Z: X3 j& s3 y  u! I% W
    ∑
    % S% S. z. _0 _, D9 K​
    ; v2 C5 G5 {* [6 k! [: t d 6 H. q2 e& k9 ?+ M
    j
      _- H/ @7 l! i% ?; C​  A/ A5 B4 u2 ^0 S
    = + G$ a: Y4 h  t# \1 a
    vol(A 7 e" v  h) o0 }, [$ s, ]5 J
    i+ L5 C0 v4 ^8 i; H
    ​. W2 m& D# `3 n9 [5 W9 R! a
    )
    & i& y2 ^$ r0 b6 ?( o2 Q1
    ) x+ x" k' N6 V& j9 s4 F​
    + |. q# U" y9 J: r$ d: } vol(A
    " _8 S2 N: n" q+ ?3 a/ t$ t  Ki
    " h2 s8 Q- Q" r6 z8 y7 L​0 E) c7 ]4 D. c0 K& H) N9 m
    )=15 s* I. N7 g3 u
    因此,此时切图优化目标为
    : d0 I9 {1 t& e% A2 v  U$ a$ b  R5 @9 U4 m% U9 H
    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=I2 E) U8 c8 f! m* y
    H
    5 v7 \2 r8 m6 yargmin4 r- h- s; x, s) j1 k& c
    ​
    / l9 f7 V' I+ J- Z) S! _4 O+ @  u3 y5 j  w. f
    ​  O5 W( f# i: P4 F/ P7 l
    tr(H 4 B. g6 E( ~5 K$ f/ R
    T3 b" ^- t0 G5 |) m( M
    LH)s.t.H
    0 E1 G* K7 N* h0 @& ?& \T
    , V1 M, K7 T! Q1 B$ r( J9 ] DH=I
    / u# M7 ^2 Y" f$ D. o& `4 t2 Z
    % S% Q3 n$ m* G  [# Q4 H但是现在矩阵H HH中的指示向量h hh并不是标准正交基,所以需要对H HH做一定转换。令H = D − 1 2 F H=D^{-\frac{1}{2}}FH=D 6 P5 O4 b- }1 o" I- F( q
    −
    6 i/ F( R; W! \& {; o2
    % `6 }+ z2 r$ x# f2 M. a2 S1( s3 Q3 y' o' |7 R4 }
    ​3 s( B: b+ }7 H& c3 C% ~- i7 \5 K8 u
    5 `8 @/ H0 ~: 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 1 d; |& T0 e+ D( |, A
    T
    / G4 j. H8 B9 A8 v; a3 u- O6 a LH=F 8 @- R1 b- l: E' a
    T
      j7 ?* V3 @, v D 7 E, a% H: @7 s
    − 3 b3 S5 R- ]  D
    2
    6 e1 z2 \& M' O5 O1
    + S* c' G& ?8 S​8 o9 @, E, ?' j7 P6 I# K
    # k8 V" U+ d  L
    LD
    % ~# y0 _) B0 [3 J$ p& {− ! q" V3 E7 O& ~8 [& n$ g+ |
    2) g+ M# x- n: o  G$ L
    12 f5 H. U; F, q9 _* c( ~6 B
    ​
    & q8 |+ C: g" v* S
    6 i# H- F- w- {* x' b9 D  v F、H T D H = F T F = I H^{T}DH=F^{T}F=IH
    ; R3 ]4 P& \, p$ B$ n. }' [4 QT6 c( N6 t4 K) D) m( A
    DH=F
    9 @+ u! U/ H* MT+ I' R" p9 x4 u0 m- ?& U0 L
    F=I,于是优化目标变更为
    ) ]4 f+ l1 @" za 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' g4 n' E+ P1 G
    F0 |( M5 H/ z' M# i/ l$ ]
    argmin
    2 X0 s) z. P  w3 E7 {- @​0 f) r  F. M/ T$ W& Y

    / o+ C# U* |; a. f5 C​
    ' W  o; t( z/ Q1 k' A$ q# m9 |) Y tr(F
    5 R" Z# y0 _8 hT
    5 K; U, u( i5 W D 9 ~) r" R7 e8 E, Z8 T
    −
    ( L$ F/ z: U! R/ T+ c2
    & P# w; x7 p& z, l( V( ^, g1
    7 t  g2 q1 y) R; a7 @% P4 D​
    % t! N' _- t$ b7 L. e: q
    8 G  H' u. C& l" e/ ~% U- _ LD
    ( ]5 s' P; c2 N+ ?1 C" m: Z−
    : n# \+ S4 l+ f+ d29 C/ u9 v& }' o5 O( t8 A
    1
    * [. ]% |! E* s+ {% ?2 Q, i​+ k8 q" I9 M* T% R- l

    5 h0 e9 T! ]/ Y8 ~  k1 ` F)s.t.F , p! ~! G7 k" ^+ x& I
    T/ m& E- s0 `3 R
    F=I6 \* M7 A5 p! S: e0 V' N

    & f0 |8 d; c3 ]7 H! r现在,和比例割一样,通过找到D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D
    . [. l2 W" U8 p9 L: \− 0 s6 `! U7 K' L
    2  `- j1 X" N: U7 @* P
    1+ d, K) b$ p/ X2 W
    ​  c( Q5 \$ }8 E
    4 m$ t! m, S! S* k
    LD
    " a5 n$ y5 E( U7 F8 F6 `# P) a− 9 j, r: m& ]/ Q1 V+ I( j
    21 u+ I  P/ D: U3 U
    1
    - [" C% m+ ^  N* t- P5 Q" Q: |​) m1 @9 U6 s  `( A' t- V7 c. d
    1 Y3 x; B7 d0 {) O
    (就是之前的L LL)的最小的k kk个特征值,可以得到对应的k kk个特征向量,这k kk特征向量组成一个n nn×k kk维矩阵,也即F FF,最后对F FF进行传统聚类7 X' Q/ T, E6 F( z

    # m4 d+ {' X8 L一般来说,D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D
    8 w3 @" ?6 k+ y3 i$ v  h−
    6 u5 a9 ~; i( _: W- J, X26 N/ F9 E- F) h7 z# x0 p
    1( z! F* |0 L7 P* T3 Y( w( n
    ​
    7 i- a! u! x* ^
    0 Y( z8 l: [) N! F LD
    5 x7 r, i8 b/ p9 V! s. O% W5 f− ! |" i+ Z3 V: _0 p- {) S; S) j, }
    2
    : |3 n" v4 V7 t+ g8 \0 P/ K6 y1
    . a) R3 Q% \' \4 w+ B; L$ r​4 A" b3 ^. i) l6 u* M7 s
    . T0 ?1 W3 p4 O* t2 x& [
    相当于对L LL做了一次标准化,也即L i j d i ∗ d j \frac{L_{ij}}{\sqrt{d_{i}*d_{j}}}
    7 G8 L) k2 d/ V% [/ m7 Cd $ L7 k! `) i  u4 e8 T2 S
    i
    : [* b5 v8 E$ m" Q& D4 ~7 L" R​2 p2 a4 |* |" _& Z6 K4 A3 b5 y
    ∗d $ y$ K3 H8 C: I5 f. p
    j/ V4 s1 L( s! a
    ​* O# o; R, t  d7 d& P
    . I: x0 W7 O$ e+ {) _9 }! ^/ {& x( F
    ​. R7 M/ S6 v- @
    ) w% W4 {# K& q& h0 N
    L
    1 k4 s9 ^6 g6 u' Y0 }3 s, g  E# [ij
    4 ^- Q; ^$ W0 D2 A. l​; y: i4 s9 a. }+ e5 F* h( F6 o

    " I; Y0 e( }0 B​
    ) ?. p9 Z; T" J+ E/ {, Z1 L
    - W- c) `2 k- [7 W+ v2 J二:谱聚类算法流程
    ! o8 X: {1 z; X2 ^给定数据集D = { x 1 , x 2 , . . . , x n } D=\{x_{1}, x_{2}, ... , x_{n}\}D={x
    8 [2 M5 L) V- G6 U4 r1
    - B3 {) o, N. T6 q7 ?4 }​' U4 I1 [5 X3 E1 E
    ,x ! M8 T1 ?8 Z- n1 N! l* z4 W
    2  v( X% t4 s8 S: U) |) x8 d- _
    ​' n' e4 x0 j- H8 {# x
    ,...,x
    # g' V/ y5 B% }. wn
    5 O) {! h# Z' b  i! i​
    5 m1 G) u  V3 ]) s }
    3 R: z1 K& g* e2 x. J- r6 ?8 r+ e# m# o$ w% z
    根据输入的相似矩阵生成方式(一般为高斯核函数)构建相似矩阵S SS(AffinityMatrix)
    . f% D, U& r2 A1 A% {: Y4 _4 u根据相似矩阵S SS构建邻接矩阵W WW,再构建度矩阵D DD+ q9 ?+ J4 \, C) d4 P1 i
    计算拉普拉斯矩阵L = D − W L=D-WL=D−W
    * z5 l6 J3 m7 ~6 U. z& j1 U得到标准化后的拉普拉斯矩阵D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D 9 d: Q( M7 c9 l: V# M! {8 g( D( j
    − 3 E5 Y" ~( ?. |( f; X! O8 i
    2. U; B: n) |( c; C/ A2 ^6 h  ?& _
    1
    . D+ r5 X7 T, H​2 E' B8 ~# Q+ S* N6 y3 Y; ~+ J4 u; D

    8 d- {( y5 p: G/ x4 N6 u, c# I LD # `) V# _. }4 G0 n# O
    − 4 R* n# h5 W& q/ b4 `; s$ p: A
    2
    + i8 g2 P! F$ W0 b( y2 c1* C( n+ g5 k7 U* v2 l! v$ b
    ​; P: U# b* n2 Z6 K4 P6 @3 @% i

      P; q& J, q! `, X7 r4 Q2 E, `- K. X( D5 [4 K" v
    计算D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}}D
    : @' Q" J: n; i/ F4 p/ B−
    ! [1 i; ]. l9 C8 {5 V, R7 d8 R; e28 B9 ]: o. w3 R4 h7 ^9 \: b  n
    1# L3 ~0 K: z/ }1 s4 {9 X9 H
    ​
    ! A2 X# a1 h$ F2 j! k
      ^- {4 b. n2 x1 N LD $ G4 z# D# K' J+ M
    − ! U) v/ m& Q0 r7 r: Z8 }' H  t: X
    2
    - h% q. u/ T2 s/ g0 A8 Y3 i1
    9 F% T# |. l( c5 K. ?1 f! y​
    + Q6 g* L( P+ U: x6 m9 o; G, e, ^2 o$ d
    最小的k kk个特征值对应的特征向量f ff6 B+ ~3 d* e' `2 A! ?6 Y
    将特征向量f ff组成矩阵并按行标准化,最终组成n nn×k kk维的特征矩阵F FF% Z# g9 A! ~4 w  k+ Z. W* C3 c  m
    F FF中每一行作为一个k kk维的样本,共n nn个样本,采用某种聚类方法进行聚类,假设聚类维数为k 、 k^{、}k 8 C* n& s, y4 S, f  ?
    、' ~5 P6 B% e) _! o1 z

    % E8 V' Q' K* I: v$ Z: h/ n得到簇划分C( c 1 , c 2 , . . . , c k 、 ) (c_{1}, c_{2}, ... , c_{k^{、}})(c
    ' {) Y9 s: ]0 ?, o1 K1
    6 N2 D2 U* I2 q, }( q  Z​2 h2 j8 @6 A% P$ E- m
    ,c " Y3 S6 w8 f/ q* }& R# U
    2
    ! g4 [1 s: T2 H2 Q& c4 |. g​$ `! w/ C: m, M( @9 b* m6 Q% G
    ,...,c
    ) @0 |. F; ?/ p& U/ c2 O$ V  hk - D, i7 Z& ]/ t3 X3 r
    、
    % z  S2 Q. G& k' v% {! W* k8 I$ h6 j9 o" g
    ​
    . M9 m# w$ L, {" e# U& E5 m% Z6 R )4 L* _. G9 G- F- u% Q; F
    三:Python实现1 b. _( a3 O# h' Z( N
    import matplotlib.pyplot as plt
    ' E/ V) j6 h+ B: i2 M6 N& Q5 j" ]import numpy as np
    " U' F% d" k3 M% W+ O& Timport pandas as pd
    : y, f! _( t$ k# O2 Xfrom sklearn.cluster import KMeans5 B0 H/ I  u6 Z3 H5 E* B
    from sklearn.metrics.pairwise import rbf_kernel
    , ^  O+ W0 e: W: ifrom sklearn.datasets import make_blobs
    % M+ k  y& l9 c( t& Ffrom sklearn.preprocessing import normalize
    ! r- ]; X+ Z0 m' c4 L# R
    / \5 n3 K9 @- K; `8 wdef get_affinity_matrix(data_set):
    % }8 Z( O; A2 N) v) P8 ~1 ?    #  利用高斯核函数计算相似矩阵(全连接)% T, E8 N/ h+ n# r  b- I
        rbf = rbf_kernel(data_set)
    3 z4 e( O( w* S    for i in range(len(rbf)):
    $ d% c& ~8 \0 W2 H3 m% {. V6 s4 ?        rbf[i, i] = 0
    6 l* ^* k& G2 o" e  |7 w    return rbf! O5 y/ q* g' v  w

    ( @! i, i7 f0 O* h1 f4 ]' w. [: K' o" I8 o2 h, @
    def distance(x1, x2):
    + W" O# v5 O$ Q2 P6 h( `* @3 E    """  b3 S7 f" i& x# m( ?
        获得两个样本点之间的距离* @7 n6 T* {/ w- m: D9 M
        :param x1: 样本点1
    : C: ~& H1 F8 W7 I$ L* I    :param x2: 样本点2
    % ?2 K5 l5 d4 Z" d8 {: [    :return:9 G: Y! B3 }6 `& j2 J% m8 W
        """' z* V0 e- k+ m
        dist = np.sqrt(np.power(x1-x2,2).sum())
    ; e* D; U, j: s8 Y# S& j9 K) Y2 S    return dist8 J3 n8 X" V* @: B* P
    % T) y2 h# U: m# }$ v
    def get_dist_matrix(data):
    + u7 D8 l" P9 v; z* }    """) J/ f* D: D6 P6 o: _! x5 G
        获取距离矩阵
    : d$ C* ~# D8 M& r, h3 V6 i( w+ S. L    :param data: 样本集合
    . O7 L+ l* H5 f$ b$ p* o9 y! F    :return: 距离矩阵
    $ Y8 |) Z/ @  }8 L1 N9 [    """4 ?2 L7 [' V+ y- i' D; ], J
        n = len(data)  #样本总数
    ( C6 s% S* {1 Q2 r5 I& x    dist_matrix = np.zeros((n, n)) # 初始化邻接矩阵为n×n的全0矩阵
    4 ?8 Y* `1 V/ I! t) h8 B$ P    for i in range(n):
    0 r( y) i7 c) L2 w9 z/ l0 H        for j in range(i+1, n):( H8 f3 L. B& I5 Y6 c1 T0 k
                dist_matrix[j] = dist_matrix[j] = distance(data, data[j])
    7 r; H! K$ B4 Y1 _! B: A- F8 B+ c: u    return dist_matrix. [  C5 V3 k/ {( K5 j* u# D4 H& v
      f* U+ ?( L& f1 W: \3 L2 d
    def get_W(data, k):
    + h/ C5 U4 ?1 L0 p# y( E5 v2 n    # 获取邻接矩阵(K邻近法)
    0 z) q* o/ t6 U4 B; u# n: d, _6 \    n = len(data)
    $ d+ {) n, j# G% B2 i" K    dist_matrix = get_dist_matrix(data)+ P, E' r% b. F. |7 u# V
        W = np.zeros((n, n))
    % w$ b9 M! x/ S8 v( ]    for idx, item in enumerate(dist_matrix):; r* ?  \& a" Z; X3 H
            idx_array = np.argsort(item)  # 每一行距离列表进行排序,得到对应的索引列表9 V8 s2 q4 n# s
            W[idx][idx_array[1:k+1]] = 1# `1 S* h' ?! n  U0 k* ~, _
        transpW =np.transpose(W)
    # t# M- y0 l4 M  \/ C    return (W+transpW)/2
    - z- `) ^/ O: h* |) h; p) Q; f# ]6 y% f  Q+ z9 G1 E
    def spectral_clustering(data_set, k):3 _& W8 ?5 o: W
        # 利用相似矩阵S得到邻接矩阵W0 o+ b3 [) j: |+ K: ]
        W = get_affinity_matrix(data_set)  #高斯核函数(全连接法)( o  O2 h" q* E9 s: ]# R
        #  W = get_W(data_set, k)  # K邻近法# B* Z( o2 F. V) j: m2 u4 S

    ; A- x: I2 F' y. v7 ?, d1 x0 }    # 计算度矩阵D,并得到矩阵D的1/2次方的逆矩阵(便于计算拉普拉斯矩阵)
    5 b4 x5 Y! \, N  c7 K    D_inv = np.diag(np.power(np.sum(W, axis=1), -0.5))( N# o9 g5 Z( _# S

    2 x& R6 U( B6 Y% c: f    # 计算拉普拉斯矩阵L=D-W
    # i1 {0 T, o* P2 x. D% E    # 标准化拉普拉斯矩阵l = D_inv*L*D_inv=I-D_inv*W*D_inv
    % R  u  Q) n1 Y) k9 R$ D6 h+ M    L = np.eye(len(data_set)) - np.dot(np.dot(D_inv, W), D_inv)
    6 L7 H# N1 Q- P% c& |% T& h' h) z
        # 得到特征值和特征向量
    8 {0 N/ @% B& C4 K6 A- k8 H    eigvals, eigvecs = np.linalg.eig(L)* o! N; s) G( u2 d2 [- F
    & B( O% d/ F) t9 _& j% z4 V# s
        # 找到前k个最小的特征值(索引)
    2 |( N* B. ~! I0 W; c! W) K& r    k_smallest_eigvals_index = np.argsort(eigvals)[:k]8 R2 w, U0 W4 f" M( \
    9 {6 P! f( S" d6 W
        # 取出这k小特征值对应的特征向量,并正则化
    ) \. w/ N2 H+ ]6 g' b4 s4 T    k_smallest_eigvecs = normalize(eigvecs[:, k_smallest_eigvals_index])
    ! u; c9 Q3 t% x5 s# V! W& M9 N' ?2 i% c4 Y- y
        # 使用K_Means聚类
    ) s" v7 Q" f' B: @& Y5 `. y7 f    return KMeans(n_clusters=k).fit_predict(k_smallest_eigvecs)7 G, Y5 k6 E8 f0 r/ \9 ^

    3 }/ O7 e7 \" L3 f  M, D: a
    3 w0 p# \* p9 E% draw_data = pd.read_csv(r'E:\Postgraduate\Dataset\jain.csv', header=None)5 v8 e$ a5 {" K5 @" U$ y. i
    raw_data.columns = ['X', 'Y']
    0 g' n6 N9 a: n6 z3 Ex_axis = 'X'
    $ M! S' ~1 K/ P8 i2 H% qy_axis = 'Y'! C( A* [( j" U9 n* [
    ; W: s% a6 G  Q1 M" ?2 t
    examples_num = raw_data.shape[0]
    3 \  L2 P" h' n2 a8 f% J1 g9 jtrain_data = raw_data[[x_axis, y_axis]].values.reshape(examples_num, 2)
    4 F, J3 Q; d; p: p7 `3 n- j5 z5 n/ E* P, i' s  ?/ Z
    ' {; A$ G4 N  a  l) G
    min_vals = train_data.min(0)6 @# G- t% s0 I
    max_vals = train_data.max(0)
    ( z0 @6 D4 M! h4 Eranges = max_vals - min_vals3 W1 B% \( k) _8 i0 f
    normal_data = np.zeros(np.shape(train_data))( ]( F) \2 X# X6 f# h
    nums = train_data.shape[0]
    ( n* S( Q6 S$ a: h5 M4 Onormal_data = train_data - np.tile(min_vals, (nums, 1))$ M- r: {, {" H0 i( N1 W
    normal_data = normal_data / np.tile(ranges, (nums, 1))
    0 F9 {! ]$ ]1 O
    & p% ~# e; j; p0 \2 R) i6 O. D  e: u- Alabels = spectral_clustering(normal_data, 2)
    ; S' x1 }, Y0 j* I! D3 G8 T2 C
    / Q' Z8 _1 r  F4 L, ^% G. ]$ v; ]# 原数据
    7 b9 R2 N0 M, v3 i* }. i& Ffig, (ax0, ax1) = plt.subplots(ncols=2)  N( R2 R/ [7 `0 P/ p
    ax0.scatter(normal_data[:, 0], normal_data[:, 1], c='black')4 ^. {! f  {: {% Q; w; N( Q" E
    ax0.set_title('raw data')5 Y, U- H& ]0 O6 m0 F
    # 谱聚类结果
    * R* V7 {1 g  N; \6 Pax1.scatter(normal_data[:, 0], normal_data[:, 1], c=labels)! G- G+ Y3 g! z% Q" ~6 G1 v* n
    ax1.set_title('Spectral Clustering')
    ( W- t4 s7 M# j: M' V7 I" X# R+ z6 @0 @( w8 ~
    plt.show()
    # `9 h8 a# X& \9 J3 Q" g4 ?6 L4 i* A% t4 R. S5 {  P
    1
    * V, ~: p- g! ^3 m9 U, t24 X7 y) R& x# M7 W1 {" V
    3
    3 K7 l4 P/ K+ Z" w* `: ~- C4 j4
    # @! z3 [  B4 L5 d+ B5
    + O# Q9 H+ v# u% V& i6' E' H( Y' q& d; X
    7: w: u; L) o1 N8 B, W
    8/ W1 r8 M) Q! [8 x+ ]! V
    9
    7 ^' q+ p" D, k7 e) h$ b10  X/ y, R# o7 I. l
    11# K. C7 e9 \* G  T( A* ?- h  C# {  T
    12
    9 y( F- [! p5 o; l13* x0 W7 U1 q  s! B+ u
    14* o1 j' V0 x$ m
    15# Y5 n# d. u% K5 x6 [8 v  C. [
    16
    4 k( P/ J8 J4 I  T0 H0 M17+ Y: m0 \; H/ A/ M$ r
    18. {" d  n" J" v5 ?
    193 j4 N( b( }; J9 s% ?5 i* }) y: C
    205 q  A) S$ S; Y
    214 Y) v7 {2 \& i
    22( t/ z" U5 Q% r4 p6 c$ R' w
    23
    2 N& y! Y: N( c24
    ' B! S8 B& s0 [' C, C1 M/ |2 U25% H2 R4 D0 L1 F
    26
    + ?. g/ c8 e- Q4 g7 M0 L+ ^27
    : W5 P% P! L* X  F5 n28
    6 n2 d! K3 m5 [4 i/ W% g29
    5 o0 ^  }: @  T' o* J0 ], o30
    ( O, S, S" y8 V; `' I31
    ) Y: v; v7 B! w3 g7 M32
    + ^2 Y9 v1 {0 B7 _& S: C33& d# p% j! F! w, H3 t
    34
    * S/ y( T! W6 \' O35
    + I! J+ Z& S' V, X, s" O36) |: G3 B" ]) q4 ^; w( ^% w* z. n
    370 A4 L6 }5 U% C  I
    38
    , }! i! z. B$ V" L. P  @& I2 h39
    ' F1 z; Y( W' ]' V40
    9 [' X, Z. R. E  K9 e0 I- f41& h& t; W  L' F7 @" Q
    42/ R% b9 a/ D9 q7 T$ {3 K. J. L. q
    43% n; u7 K, H0 z! S$ O: c, B7 o
    440 }' h, U& i$ I
    45
    & K: R/ t% o, Y8 B# ?46+ j+ @' \9 d- v; Q2 z/ n2 F
    473 N+ G( q- o9 F+ a! C/ m
    48
    ; c0 |2 X3 r& c; Y49, R* y' O" h. a: v) ~# x; U
    50
    # X! f6 Q% a2 `51
    + H7 u: S$ k3 x- b52! N; _9 }. R: b- W& ^: X
    53) O. {) G9 ~* W1 g7 |8 P
    54
    , D4 ~0 q7 [/ I( [+ l" C/ ?" \/ y553 A: l) r7 L  Y* s4 e! n0 U
    568 C2 M1 z( H; O2 w. Q
    57
    ( o) Q& D) U5 ]1 e58
    " Q$ N2 x: U3 a  _59
    % g6 {( x  x5 U, A60
    5 Q6 p" f1 c! `8 v- S6 p+ y614 J  x, F, n: L2 W
    62
    1 B7 ?  g0 y& y) q" X63; }2 |* B1 I, T( I/ r' w
    64) @8 a5 h- M# s
    65" q0 c$ E! E1 w  a
    66/ ~- D$ _5 D& f& w0 U
    67
    2 i4 y8 l; Q. x* J684 H* J9 }) M5 ]% s( [
    690 L( u  _3 s) t8 |0 f3 l& p
    708 u0 }9 d, q6 N+ [8 n
    71. d, Z5 d- K) h* L, f5 @: {
    72
    * k, Y) r+ t. G* e9 x73
    7 H. q0 a2 h* T! u0 X3 b74( P" c% ~( W7 O* W1 L! X; L
    75
    ( B0 e0 V, \/ n76! {" @2 r8 c  e. D
    772 M6 [1 Z  t/ e" C
    78( @6 d/ m6 N, H$ ?. U
    79% u2 M. R. m, L- n+ e
    80
    2 B/ p1 p' N6 y. L. H5 @9 k81
    : d9 V! E' K4 @1 v82
    , i; G; Y# w1 Y9 r7 i' f) S83" H" \1 p4 b& B9 Q
    84
    ! K0 z2 K6 _( _0 K  K' B- y* L" }85, \7 [; Q; `) i& d
    86# M' z8 x) h2 c7 M2 r
    87
    , r9 O, O* H7 Z88
    - ^- J5 J4 ^0 N5 A0 v8 H0 E89  c& }3 X4 U" q. W0 d
    90
    2 T: B, Z& o8 M' e- f5 Q9 I/ r91: y9 ]& A" u5 f" O5 S4 x/ d$ B$ y( m
    92
    6 B1 w9 t# y( r! b+ n93
    , q  [% s: ]+ p) y! e. _94) v9 ?+ b2 @, r) y5 Y6 n
    95. q; t' e3 Q* w- m7 K
    96
    5 d# s, L, n( y" [# e97
    , f, N: \% T% Q5 n: S98  b# W! @/ Q. ]* A- O) G/ W6 H: L# m1 B
    99
    6 i, p5 H4 n1 K/ i+ d  t( M2 r100
    # B/ ^$ z7 v% Z7 C& P101
    ' ?5 A4 v4 [1 e$ |0 t9 u1020 }; a8 P& Z7 i
    103
    # q* x3 l) @5 a(高斯核函数)
    ! o# p. {/ P6 w& ~1 k/ m3 E0 ~: w) d7 B7 D1 B

    9 F7 H$ [7 y. \3 G7 |(K邻近法)8 F- _) X& ]! j3 p: O+ L

      O" m1 `- W( Y4 ?0 O$ i) p& `
    . f* t4 v5 l; g. h/ V( B9 V四:谱聚类算法优缺点
    % _- d; M% b/ h0 K(1)优点$ l: H- ~/ G  [8 W5 B* Q6 L
    谱聚类只需要数据之间的相似度矩阵,所以对于稀疏数据的聚类很有效& A+ f% k% v  H
    使用了降维,因此处理高纬数据聚类时复杂度要明显低于传统聚类算法: p7 E  b( m+ G3 W0 W' s
    谱聚类算法建立在谱图理论基础上,与传统聚类算法相比,它具有能在任意形状的样本空间上聚类且收敛于全局最优解
      q# n  T1 s) a5 w6 v' T: m(2)缺点: g. {# p$ |( S$ K& C" \& T4 n% v
    如果最终聚类的维度非常高,则由于降维的幅度不够,导致算法的运行速度和最后效果都不是很好
    3 {6 Y! @0 p: `0 N7 A+ b聚类效果依赖于相似度矩阵,所以不同的相似度矩阵得到的最终聚类效果大不同相同! I. B- x) p+ e2 G
    ————————————————( P, q( T, v! K5 S3 u, M2 I  j
    版权声明:本文为CSDN博主「快乐江湖」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    8 ]" `& v0 Q' @% M原文链接:https://blog.csdn.net/qq_39183034/article/details/126747494  r# p9 x0 g. M( A* \6 _

    4 d5 D2 b5 \+ A) t2 \; |5 H: K
    9 \5 y9 k* a" X3 X+ M3 G& U% }
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-10-9 07:18 , Processed in 0.357542 second(s), 51 queries .

    回顶部