【机器学习基础】第三十三课:聚类之性能度量

【机器学习基础】系列博客为参考周志华老师的《机器学习》一书,自己所做的读书笔记。

1.性能度量

聚类性能度量亦称聚类“有效性指标”(validity index),对聚类结果,我们需通过某种性能度量来评估其好坏;另一方面,若明确了最终将要使用的性能度量,则可直接将其作为聚类过程的优化目标,从而更好地得到符合要求的聚类结果。

聚类是将样本集 D D D划分为若干互不相交的子集,即样本簇。那么,什么样的聚类结果比较好呢?直观上看,我们希望“物以类聚”,即同一簇的样本尽可能彼此相似,不同簇的样本尽可能不同。换言之,聚类结果的“簇内相似度”(intra-cluster similarity)高且“簇间相似度”(inter-cluster similarity)低。

聚类性能度量大致有两类。一类是将聚类结果与某个“参考模型”(reference model,例如将领域专家给出的划分结果作为参考模型)进行比较,称为“外部指标”(external index);另一类是直接考察聚类结果而不利用任何参考模型,称为“内部指标”(internal index)。

对数据集 D = { x 1 , x 2 , . . . , x m } D=\{ \mathbf{x}_1 , \mathbf{x}_2 , ... , \mathbf{x}_m \} D={x1,x2,...,xm},假定通过聚类给出的簇划分为 C = { C 1 , C 2 , . . . , C k } \mathcal{C}=\{C_1,C_2,...,C_k \} C={C1,C2,...,Ck},参考模型给出的簇划分为 C ∗ = { C 1 ∗ , C 2 ∗ , . . . , C s ∗ } \mathcal{C}^*=\{C_1^*,C_2^*,...,C_s^* \} C={C1,C2,...,Cs}。相应地,令 λ \mathbf{\lambda} λ λ ∗ \mathbf{\lambda}^* λ分别表示与 C \mathcal{C} C C ∗ \mathcal{C}^* C对应的簇标记向量。我们将样本两两配对考虑,定义:

通常 k ≠ s k\neq s k=s

a = ∣ S S ∣ ,   S S = { ( x i , x j ) ∣ λ i = λ j , λ i ∗ = λ j ∗ , i < j } (1) a=\lvert SS \rvert, \ SS=\{ (\mathbf{x}_i,\mathbf{x}_j) \mid \lambda_i = \lambda_j, \lambda_i^* = \lambda_j^*,i<j \} \tag{1} a=SS, SS={(xi,xj)λi=λj,λi=λj,i<j}(1)

b = ∣ S D ∣ ,   S D = { ( x i , x j ) ∣ λ i = λ j , λ i ∗ ≠ λ j ∗ , i < j } (2) b=\lvert SD \rvert, \ SD=\{ (\mathbf{x}_i,\mathbf{x}_j) \mid \lambda_i = \lambda_j, \lambda_i^* \neq \lambda_j^*,i<j \} \tag{2} b=SD, SD={(xi,xj)λi=λj,λi=λj,i<j}(2)

c = ∣ D S ∣ ,   D S = { ( x i , x j ) ∣ λ i ≠ λ j , λ i ∗ = λ j ∗ , i < j } (3) c=\lvert DS \rvert, \ DS=\{ (\mathbf{x}_i,\mathbf{x}_j) \mid \lambda_i \neq \lambda_j, \lambda_i^* = \lambda_j^*,i<j \} \tag{3} c=DS, DS={(xi,xj)λi=λj,λi=λj,i<j}(3)

d = ∣ D D ∣ ,   D D = { ( x i , x j ) ∣ λ i ≠ λ j , λ i ∗ ≠ λ j ∗ , i < j } (4) d=\lvert DD \rvert, \ DD=\{ (\mathbf{x}_i,\mathbf{x}_j) \mid \lambda_i \neq \lambda_j, \lambda_i^* \neq \lambda_j^*,i<j \} \tag{4} d=DD, DD={(xi,xj)λi=λj,λi=λj,i<j}(4)

λ i \lambda_i λi表示样本 x i \mathbf{x}_i xi C \mathcal{C} C中所属的簇。 λ i ∗ \lambda_i^* λi表示样本 x i \mathbf{x}_i xi C ∗ \mathcal{C}^* C中所属的簇。

其中集合 S S SS SS包含了在 C \mathcal{C} C中隶属于相同簇且在 C ∗ \mathcal{C}^* C中也隶属于相同簇的样本对,集合 S D SD SD包含了在 C \mathcal{C} C中隶属于相同簇但在 C ∗ \mathcal{C}^* C中隶属于不同簇的样本对。由于每个样本对 ( x i , x j ) ( i < j ) (\mathbf{x}_i,\mathbf{x}_j)(i<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成立。

基于式(1)~式(4)可导出下面这些常用的聚类性能度量外部指标:

👉Jaccard系数(Jaccard Coefficient,简称JC):

J C = a a + b + c (5) JC=\frac{a}{a+b+c} \tag{5} JC=a+b+ca(5)

👉FM指数(Fowlkes and Mallows Index,简称FMI):

F M I = a a + b ⋅ a a + c (6) FMI=\sqrt{\frac{a}{a+b} \cdot \frac{a}{a+c} } \tag{6} FMI=a+baa+ca (6)

👉Rand指数(Rand Index,简称RI):

R I = 2 ( a + d ) m ( m − 1 ) (7) RI=\frac{2(a+d)}{m(m-1)} \tag{7} RI=m(m1)2(a+d)(7)

显然,上述性能度量的结果值均为 [ 0 , 1 ] [0,1] [0,1]区间,值越大越好。

考虑聚类结果的簇划分 C = { C 1 , C 2 , . . . , C k } \mathcal{C}=\{C_1,C_2,...,C_k \} C={C1,C2,...,Ck},定义:

a v g ( C ) = 2 ∣ C ∣ ( ∣ C ∣ − 1 ) ∑ 1 ⩽ i < j ⩽ ∣ C ∣ d i s t ( x i , x j ) (8) avg(C)=\frac{2}{\lvert C \rvert (\lvert C \rvert -1)} \sum_{1 \leqslant i <j \leqslant \lvert C \rvert} dist (\mathbf{x}_i,\mathbf{x}_j) \tag{8} avg(C)=C(∣C1)21i<jCdist(xi,xj)(8)

d i a m ( C ) = max ⁡ 1 ⩽ i < j ⩽ ∣ C ∣ d i s t ( x i , x j ) (9) diam(C)=\max _{1 \leqslant i <j \leqslant \lvert C \rvert} dist (\mathbf{x}_i,\mathbf{x}_j) \tag{9} diam(C)=1i<jCmaxdist(xi,xj)(9)

d m i n ( C i , C j ) = min ⁡ x i ∈ C i , x j ∈ C j d i s t ( x i , x j ) (10) d_{min}(C_i,C_j) = \min_{\mathbf{x}_i \in C_i , \mathbf{x}_j \in C_j} dist (\mathbf{x}_i,\mathbf{x}_j) \tag{10} dmin(Ci,Cj)=xiCi,xjCjmindist(xi,xj)(10)

d c e n ( C i , C j ) = d i s t ( μ i , μ j ) (11) d_{cen} (C_i,C_j)=dist(\mathbf{\mu}_i,\mathbf{\mu}_j) \tag{11} dcen(Ci,Cj)=dist(μi,μj)(11)

其中, d i s t ( ⋅ , ⋅ ) dist(\cdot,\cdot) dist(,)用于计算两个样本之间的距离(距离越大则样本的相似度越低); μ \mathbf{\mu} μ代表簇 C C C的中心点 μ = 1 ∣ C ∣ ∑ 1 ⩽ i ⩽ ∣ C ∣ x i \mathbf{\mu}=\frac{1}{\lvert C \rvert} \sum_{1 \leqslant i \leqslant \lvert C \rvert} \mathbf{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 m i n ( 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中心点间的距离。

基于式(8)~(11)可导出下面这些常用的聚类性能度量内部指标:

👉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 ) ) (12) DBI=\frac{1}{k} \sum^k_{i=1} \max_{j\neq i} (\frac{avg(C_i) + avg(C_j)}{d_{cen}(\mathbf{\mu}_i,\mathbf{\mu}_j)}) \tag{12} DBI=k1i=1kj=imax(dcen(μi,μj)avg(Ci)+avg(Cj))(12)

👉Dunn指数(Dunn Index,简称DI):

D I = min ⁡ 1 ⩽ i ⩽ k { min ⁡ j ≠ i ( d m i n ( C i , C j ) max ⁡ 1 ⩽ l ⩽ k d i a m ( C l ) ) } (13) DI=\min_{1 \leqslant i \leqslant k} \{ \min_{j\neq i} (\frac{d_{min} (C_i,C_j)}{\max_{1\leqslant l \leqslant k} diam(C_l)}) \} \tag{13} DI=1ikmin{j=imin(max1lkdiam(Cl)dmin(Ci,Cj))}(13)

显然,DBI的值越小越好,而DI则相反,值越大越好。


想要获取最新文章推送或者私聊谈人生,请关注我的个人微信公众号:⬇️x-jeff的AI工坊⬇️

个人博客网站:https://shichaoxin.com

GitHub:https://github.com/x-jeff


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值