[Machine Learning]聚类任务、性能度量、距离计算

聚类任务与性能度量
本文探讨了聚类任务的本质,介绍了外部指标与内部指标两种聚类性能度量方法,详细解析了Jaccard系数、FM指数、Rand指数、DB指数及Dunn指数,并阐述了距离计算的重要性。

  Note:本文系笔者学习机器学习过程中的学习笔记,期间加有个人的见解,如有错误,欢迎评论区留言讨论,共同进步。
非监督学习

一、聚类任务

  聚类,即根据数据的“相似性”将数据集中的样本划分成若干个通常是不相交的子集,每一个子集称为一个**“簇”(cluster)**;需注意,聚类过程仅能自动形成簇结构,簇所对应的概念语义需由使用者来把握和命名。

  形式化地说,假定样本集 D = { x 1 , x 2 , . . . , x m } D{\rm{ = \{ }}{{\rm{x}}_1}{\rm{,}}{{\rm{x}}_2}{\rm{,}}...{\rm{,}}{{\rm{x}}_m}{\rm{\} }} D={x1,x2,...,xm}包含 m m m个无标记样本,每个样本 x i = ( x i 1 ; x i 2 ; . . . ; x i n ) {x_i} = ({x_{i1}};{x_{i2}};...;{x_{in}}) xi=(xi1;xi2;...;xin)是一个 n n n维特征向量,则聚类算法将文本集 D D D划分为 k k k个不相交的簇 { C l ∣ l = 1 , 2 , . . . , k } \{ {C_l}|l = 1,2,...,k\} {Cll=1,2,...,k},其中 C l ′ ∩ l ′ ≠ l C l = ∅ {C_{l'}}{ \cap _{l' \ne l}}{C_l} = \emptyset Cll̸=lCl= D = ∪ l = 1 k C l D{\rm{ = }} \cup _{l = 1}^k{C_l} D=l=1kCl.相应地,我们用 λ j ∈ { 1 , 2 , . . . , k } {\lambda _j} \in \{ 1,2,...,k\} λj{1,2,...,k}表示样本 x j {x_j} xj的**“簇标记”(cluster label)**,即 x j ∈ C λ j {x_j} \in {C_{{\lambda _j}}} xjCλj.于是,聚类的结果可用包含 m m m个元素的簇标记向量 λ = ( λ 1 ; λ 2 ; . . . ; λ m ) \lambda = ({\lambda _1};{\lambda _2};...;{\lambda _m}) λ=(λ1;λ2;...;λm)表示。

  评估两个不同样本之间的“相似性”(即性能度量),通常使用的方法就是计算两个样本之间的“距离”(即距离计算)。使用不同的方法计算样本之间的距离会关系到聚类结果的好坏。

二、性能度量

  性能度量,即聚类的有效性指标(validity index)。根据聚类任务,我们希望得到的聚类结果是“簇内相似度”(intra-cluster similarity)高且“簇间相似度”(inter-cluster similarity)低。
在这里插入图片描述

2.1、“外部指标”(external index)

  对于数据集 D = { x 1 , x 2 , . . . , x m } D{\rm{ = \{ }}{{\rm{x}}_1}{\rm{,}}{{\rm{x}}_2}{\rm{,}}...{\rm{,}}{{\rm{x}}_m}{\rm{\} }} D={x1,x2,...,xm},假定通过聚类给出的簇划分为 C = { C 1 , C 2 , . . . , C k } C = \{ {C_1},{C_2},...,{C_k}\} C={C1,C2,...,Ck},参考模型给出的簇划分为 C ∗ = { C 1 ∗ , C 2 ∗ , . . . , C s ∗ } {C^*} = \{ C_1^*,C_2^*,...,C_s^*\} C={C1,C2,...,Cs}.相应地,令 λ \lambda λ λ ∗ {\lambda ^*} λ分别表示与 C C C C ∗ {C^*} C对应的簇标记向量.我们将样本两两配对考虑,定义
a = ∣ S S ∣ , S S = { ( x i , x j ) ∣ λ i = λ j , λ i ∗ = λ j ∗ , i &lt; j } , a = \left| {SS} \right|,SS = \{ ({x_i},{x_j})|{\lambda _i} = {\lambda _j},\lambda _i^* = \lambda _j^*,i &lt; j\} , a=SS,SS={(xi,xj)λi=λj,λi=λj,i<j}, b = ∣ S D ∣ , S D = { ( x i , x j ) ∣ λ i = λ j , λ i ∗ ≠ λ j ∗ , i &lt; j } , b = \left| {SD} \right|,SD = \{ ({x_i},{x_j})|{\lambda _i} = {\lambda _j},\lambda _i^* \ne \lambda _j^*,i &lt; j\} , b=SD,SD={(xi,xj)λi=λj,λi̸=λj,i<j}, c = ∣ D S ∣ , D S = { ( x i , x j ) ∣ λ i ≠ λ j , λ i ∗ = λ j ∗ , i &lt; j } , c = \left| {DS} \right|,DS = \{ ({x_i},{x_j})|{\lambda _i} \ne {\lambda _j},\lambda _i^* = \lambda _j^*,i &lt; j\} , c=DS,DS={(xi,xj)λi̸=λj,λi=λj,i<j}, d = ∣ D D ∣ , D D = { ( x i , x j ) ∣ λ i ≠ λ j , λ i ∗ ≠ λ j ∗ , i &lt; j } , d = \left| {DD} \right|,DD = \{ ({x_i},{x_j})|{\lambda _i} \ne {\lambda _j},\lambda _i^* \ne \lambda _j^*,i &lt; j\} , d=DD,DD={(xi,xj)λi̸=λj,λi̸=λj,i<j},注:由于每个样本对 ( x i , x j ) ( i &lt; j ) ({x_i},{x_j})(i&lt;j) (xi,xj)(i<j)仅能出现在一个集合中,因此有 a + b + c + d = m ( m − 1 ) / 2 a + b + c + d = m(m - 1)/2 a+b+c+d=m(m1)/2成立。
  一般地,我们有以下常用的聚类性能度量外部指标:

  • J a c c a r d Jaccard Jaccard系数(Jaccard Coefficient,简称JC) J C = a a + b + c JC = {a \over {a + b + c}} JC=a+b+ca
  • F M FM FM指数(Fowlkes and Mallows Index,简称FMI) F M I = a a + b ⋅ a a + c FMI = \sqrt {{a \over {a + b}} \cdot {a \over {a + c}}} FMI=a+baa+ca
  • R a n d Rand Rand指数(Rand Index,简称RI) R I = 2 ( a + d ) m ( m − 1 ) RI = {{2(a + d)} \over {m(m - 1)}} RI=m(m1)2(a+d)
      综上,上述性能度量的结果值均在 [ 0 , 1 ] [0,1] [0,1]区间,值越大越好。

2.2、“内部指标”(internal index)

  对于聚类结果的簇划分 C = { C 1 , C 2 , . . . , C k } C = \{ {C_1},{C_2},...,{C_k}\} C={C1,C2,...,Ck},定义 a v g ( C ) = 2 ∣ C ∣ ( ∣ C ∣ − 1 ) ∑ 1 ≤ i &lt; j ≤ ∣ C ∣ d i s t ( x i , x j ) avg(C) = {2 \over {\left| C \right|(\left| C \right| - 1)}}\sum\nolimits_{1 \le i &lt; j \le \left| C \right|} {dist({x_i},{x_j})} avg(C)=C(C1)21i<jCdist(xi,xj) d i a m ( C ) = max ⁡ 1 ≤ i &lt; j ≤ ∣ C ∣ d i s t ( x i , x j ) diam(C) = {\max _{1 \le i &lt; j \le \left| C \right|}}dist({x_i},{x_j}) diam(C)=1i<jCmaxdist(xi,xj) d min ⁡ ( C i , C j ) = min ⁡ x i ∈ C i , x j ∈ C j d i s t ( x i , x j ) {d_{\min }}({C_i},{C_j}) = {\min _{{x_i} \in {C_i},{x_j} \in {C_j}}}dist({x_i},{x_j}) dmin(Ci,Cj)=xiCi,xjCjmindist(xi,xj) d c e n ( C i , C j ) = d i s t ( μ i , μ j ) {d_{cen}}({C_i},{C_j}) = dist({\mu _i},{\mu _j}) dcen(Ci,Cj)=dist(μi,μj)
其中, d i s t ( ⋅ , ⋅ ) dist( \cdot , \cdot ) dist(,)计算两个样本之间的距离; μ \mu μ代表簇 C C C的中心点 μ = 1 ∣ C ∣ ∑ 1 ≤ i ≤ ∣ C ∣ x i \mu = {1 \over {\left| C \right|}}\sum\nolimits_{1 \le i \le \left| C \right|} {{x_i}} μ=C11iCxi.显然, a v g ( C ) avg(C) avg(C)对应于簇 C C C内样本间的平均距离, d i a m ( C ) diam(C) diam(C)对应于簇 C C C内样本间的最远距离, d min ⁡ ( C i , C j ) {d_{\min }}({C_i},{C_j}) dmin(Ci,Cj)对应于簇 C i {C_i} Ci与簇 C j {C_j} Cj最近样本间的距离, d c e n ( C i , C j ) {d_{cen}}({C_i},{C_j}) dcen(Ci,Cj)对应于簇 C i {C_i} Ci与簇 C j {C_j} Cj中心点间的距离.
  一般地,我们有如下常用聚类性能度量内部指标:

  • D B DB DB指数(Davies-Bouldin Index,简称DBI) D B I = 1 k ∑ i = 1 k max ⁡ j ≠ i ( a v g ( C i ) + a v g ( C j ) d c e n ( μ i , μ j ) ) DBI = {1 \over k}\sum\limits_{i = 1}^k {\mathop {\max }\limits_{j \ne i} \left( {{{avg({C_i}) + avg({C_j})} \over {{d_{cen}}({\mu _i},{\mu _j})}}} \right)} DBI=k1i=1kj̸=imax(dcen(μi,μj)avg(Ci)+avg(Cj))
  • D u n n Dunn Dunn指数(Dunn Index,简称DI) D I = min ⁡ 1 ≤ i ≤ k { min ⁡ j ≠ k ( d min ⁡ ( C i , C j ) max ⁡ 1 ≤ l ≤ k d i a m ( C l ) ) } DI = \mathop {\min }\limits_{1 \le i \le k} \{ \mathop {\min }\limits_{j \ne k} ({{{d_{\min }}({C_i},{C_j})} \over {{{\max }_{1 \le l \le k}}diam({C_l})}})\} DI=1ikmin{j̸=kmin(max1lkdiam(Cl)dmin(Ci,Cj))}
      综上, D B I DBI DBI值越小越好, D I DI DI值越大越好。

三、距离计算

3.1、距离度量

  对于 d i s t ( ⋅ , ⋅ ) dist( \cdot , \cdot ) dist(,),其距离度量(distance measure)满足:

  • 非负性: d i s t ( x i , x j ) ≥ 0 dist({x_i},{x_j}) \ge 0 dist(xi,xj)0
  • 同一性: d i s t ( x i , x j ) = 0 dist({x_i},{x_j}) = 0 dist(xi,xj)=0,当且仅当 x i = x j {x_i}={x_j} xi=xj
  • 对称性: d i s t ( x i , x j ) = d i s t ( x j , x i ) dist({x_i},{x_j}) = dist({x_j},{x_i}) dist(xi,xj)=dist(xj,xi)
  • 直递性(三角不等式): d i s t ( x i , x j ) ≤ d i s t ( x i , x k ) + d i s t ( x k , x j ) dist({x_i},{x_j}) \le dist({x_i},{x_k}) + dist({x_k},{x_j}) dist(xi,xj)dist(xi,xk)+dist(xk,xj)

3.2、闵可夫斯基距离及其推广

  对于给定样本 x i = ( x i 1 ; x i 2 ; . . . ; x i n ) {x_i} = ({x_{i1}};{x_{i2}};...;{x_{in}}) xi=(xi1;xi2;...;xin) x j = ( x j 1 ; x j 2 ; . . . ; x j n ) {x_j} = ({x_{j1}};{x_{j2}};...;{x_{jn}}) xj=(xj1;xj2;...;xjn),有闵可夫斯基距离(Minkowski distance): d i s t m k ( x i , x j ) = ( ∑ u = 1 n ∣ x i u − x j u ∣ ) 1 p dis{t_{mk}}({x_i},{x_j}) = {\left( {\sum\limits_{u = 1}^n {\left| {{x_{iu}} - {x_{ju}}} \right|} } \right)^{{1 \over p}}} distmk(xi,xj)=(u=1nxiuxju)p1 x i − x j {x_{i}} - {x_{j}} xixj L p {L_p} Lp范数 ∥ x i − x j ∥ 2 {\left\| {{x_i} - {x_j}} \right\|_2} xixj2;对 p ≥ 1 p \ge 1 p1,显然满足距离度量的基本性质。
  有如下推广:
p = 2 p=2 p=2时为欧氏距离: d i s t e d ( x i , x j ) = ∥ x i − x j ∥ 2 = ∑ u = 1 n ∣ x i u − x j u ∣ 2 dis{t_{ed}}({x_i},{x_j}) = {\left\| {{x_i} - {x_j}} \right\|_2} = \sqrt {\sum\limits_{u = 1}^n {{{\left| {{x_{iu}} - {x_{ju}}} \right|}^2}} } disted(xi,xj)=xixj2=u=1nxiuxju2 p = 1 p=1 p=1时为曼哈顿距离: d i s t m a n ( x i , x j ) = ∥ x i − x j ∥ 1 = ∑ u = 1 n ∣ x i u − x j u ∣ dis{t_{man}}({x_i},{x_j}) = {\left\| {{x_i} - {x_j}} \right\|_1} = \sum\limits_{u = 1}^n {\left| {{x_{iu}} - {x_{ju}}} \right|} distman(xi,xj)=xixj1=u=1nxiuxju

3.3、连续属性与离散属性

  连续属性即“数值属性”,在定义域内有无穷多个取值,因其能直接在属性值上计算距离,故又称为“有序属性”;
  离散属性即“列名属性”,在定义域上有有限个取值,因其不能直接在属性值上计算距离,故又称为“无序属性”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值