文章目录

  • 1. 聚类评估指标
    • 1.1 外部评估指标
      • RI 兰德指数
        • ARI 调整兰德指数
      • Jaccard JC指数
      • FMI FMI指数
      • MI 互信息
        • NMI 归一化互信息
        • AMI 调整互信息
    • 1.2 内部评估指标
      • DBI 戴维森堡丁指数
      • DI Dunn指数
      • SC 轮廓系数
  • 参考文献

相关文章:

机器学习 | 目录

机器学习 | 距离计算

无监督学习 | KMeans与KMeans++原理

无监督学习 | KMeans之Skleaen实现:电影评分聚类

1. 聚类评估指标

Clustering performance evaluation

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

聚类是将样本集D划分为若干互不相关的子集,即样本簇(类),而我们又希望聚类结果的“簇内相似度”(intra-cluster similarity)高且“簇间相似度”(intra-cluster similarity)低。

聚类性能度量大致有两类,一类是将聚类结果与某个“参考模型”(reference model,样本含标签的)进行比较,称为“外部指标”(external index);另一类是直接考察聚类结果而不利用任何参考模型,称为“内部指标”(internal index)。

对数据集 D={x1,x2,⋯,xn}D=\{x_1,x_2,\cdots,x_n\}D={x1​,x2​,⋯,xn​},假定通过聚类给出的 kkk 个簇,划分为 C={C1,C2,⋯,Ck}C=\{C_1,C_2,\cdots,C_k\}C={C1​,C2​,⋯,Ck​},参考模型给出的 sss 个簇划分为 C∗={C1∗,C2∗,⋯,Cs∗}C^*=\{C_1^*,C_2^*,\cdots,C_s^*\}C∗={C1∗​,C2∗​,⋯,Cs∗​}。相应地,令 λ\lambdaλ 与 λ∗\lambda^*λ∗ 分别表示 CCC 与 C∗C^*C∗ 对应的簇标记向量。我们将样本两两配对考虑,定义:

a=∣SS∣,SS={(xi,xj)∣λi=λj,λi∗=λj∗,i<j}(1)a=|SS|,\quad SS=\{(x_i,x_j)| \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=∣SD∣,SD={(xi,xj)∣λi=λj,λi∗≠λj∗,i<j}(2)b=|SD|,\quad SD=\{(x_i,x_j)| \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=∣DS∣,DS={(xi,xj)∣λi≠λj,λi∗=λj∗,i<j}(3)c=|DS|,\quad DS=\{(x_i,x_j)| \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=∣DD∣,DD={(xi,xj)∣λi≠λj,λi∗≠λj∗,i<j}(4)d=|DD|,\quad DD=\{(x_i,x_j)| \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)

其中集合 SSSSSS 表示点 iii 和点 jjj 在聚类结果中处于同一个簇,而实际上这两个点也是处于同一个簇的所有点的集合,相当于混淆矩阵中的 TP;

集合 SDSDSD 表示点 iii 和点 jjj 在聚类结果中处于同一个簇,而实际上这两个点不处于同一个簇的所有点的集合,相当于混淆矩阵中的 FP,…。

由于每个样本对 (xi,xj)(i<j)(x_i,x_j)(i<j)(xi​,xj​)(i<j) 仅能出现在一个集合中,因此有 a+b+c+d=Cn2=n(n−1)/2a+b+c+d=C_n^2=n(n-1)/2a+b+c+d=Cn2​=n(n−1)/2 成立。[1]

1.1 外部评估指标

基于公式(1-4)可以导出下面常用的聚类性能度量外部指标

RI 兰德指数

Rand Index 兰德指数

RI=(a+b)Cn2()RI=\frac{(a+b)}{C_n^2}\tag{}RI=Cn2​(a+b)​()

ARI 调整兰德指数

Adjuested Rand Index 调整兰德指数

sklearn.metrics.adjusted_rand_score

ARI=RI−E(RI)max(RI)−E(RI)(5)ARI=\frac{RI-E(RI)}{max(RI)-E(RI)}\tag{5}ARI=max(RI)−E(RI)RI−E(RI)​(5)

Advantages

  • Random (uniform) label assignments have a ARI score close to 0.0 for any value of n_clusters and n_samples (which is not the case for raw Rand index or the V-measure for instance).

  • Bounded range [-1, 1]: negative values are bad (independent labelings), similar clusterings have a positive ARI, 1.0 is the perfect match score.

  • No assumption is made on the cluster structure: can be used to compare clustering algorithms such as k-means which assumes isotropic blob shapes with results of spectral clustering algorithms which can find cluster with “folded” shapes.

Drawbacks

  • Contrary to inertia, ARI requires knowledge of the ground truth classes while is almost never available in practice or requires manual assignment by human annotators (as in the supervised learning setting).

However ARI can also be useful in a purely unsupervised setting as a building block for a Consensus Index that can be used for clustering model selection (TODO).

Jaccard JC指数

Jaccard Coefficient

JC=aa+b+c(6)JC=\frac{a}{a+b+c}\tag{6}JC=a+b+ca​(6)

FMI FMI指数

Fowlkes and Mallows Index

sklearn.metrics.fowlkes_mallows_score

FMI=aa+b⋅aa+c(7)FMI=\sqrt{\frac{a}{a+b}\cdot\frac{a}{a+c}}\tag{7}FMI=a+ba​⋅a+ca​​(7)

Advantages

  • Random (uniform) label assignments have a FMI score close to 0.0 for any value of n_clusters and n_samples (which is not the case for raw Mutual Information or the V-measure for instance).

  • Upper-bounded at 1: Values close to zero indicate two label assignments that are largely independent, while values close to one indicate significant agreement. Further, values of exactly 0 indicate purely independent label assignments and a FMI of exactly 1 indicates that the two label assignments are equal (with or without permutation).

  • No assumption is made on the cluster structure: can be used to compare clustering algorithms such as k-means which assumes isotropic blob shapes with results of spectral clustering algorithms which can find cluster with “folded” shapes.

Drawbacks

  • Contrary to inertia, FMI-based measures require the knowledge of the ground truth classes while almost never available in practice or requires manual assignment by human annotators (as in the supervised learning setting).

MI 互信息

Mutual Information 互信息

sklearn.metrics.mutual_info_score

对数据集 D={x1,x2,⋯,xn}D=\{x_1,x_2,\cdots,x_n\}D={x1​,x2​,⋯,xn​},假定通过聚类给出的 kkk 个簇,划分为 C={C1,C2,⋯,Ck}C=\{C_1,C_2,\cdots,C_k\}C={C1​,C2​,⋯,Ck​},参考模型给出的 sss 个簇划分为 C∗={C1∗,C2∗,⋯,Cs∗}C^*=\{C_1^*,C_2^*,\cdots,C_s^*\}C∗={C1∗​,C2∗​,⋯,Cs∗​}。

MI(C,C∗)=∑i=1k∑j=1sP(Ci,Cj∗)logP(Ci∩Cj∗)P(Ci)P(Cj∗)=∑i=1k∑j=1s∣Ci∩Cj∗∣nlogn⋅∣Ci∩Cj∗∣∣Ci∣∣Cj∗∣(8)\begin{aligned} {MI(C,C^*)} &= {\sum_{i=1}^k \sum_{j=1}^s P(C_i,C_j^*)log \frac{P(C_i\cap C_j^*)}{P(C_i)P(C_j^*)}} \\ &= {\sum_{i=1}^k \sum_{j=1}^s \frac{|C_i\cap C_j^*|}{n}log\frac{n\cdot|C_i\cap C_j^*|}{|C_i||C_j^*|}} \\ \end{aligned}\tag{8} MI(C,C∗)​=i=1∑k​j=1∑s​P(Ci​,Cj∗​)logP(Ci​)P(Cj∗​)P(Ci​∩Cj∗​)​=i=1∑k​j=1∑s​n∣Ci​∩Cj∗​∣​log∣Ci​∣∣Cj∗​∣n⋅∣Ci​∩Cj∗​∣​​(8)

P(Ci),P(Cj∗),P(Ci∩Cj∗)P(C_i),P(C_j^*),P(C_i\cap C_j^*)P(Ci​),P(Cj∗​),P(Ci​∩Cj∗​) 可以分别看作样本属于聚类簇 CiC_iCi​ ,属于类 Cj∗C_j^*Cj∗​ 以及同时属于两者的概率。

定义熵 H:
H(C)=−∑i=1kP(Ci)logP(Ci)=−∑i=1k∣Ci∣nlog(∣Ci∣n)(9)\begin{aligned} H(C)& =-\sum_{i=1}^kP(C_i)log P(C_i)\\ & = -\sum_{i=1}^k \frac{|C_i|}{n}log(\frac{|C_i|}{n})\\ \end{aligned}\tag{9} H(C)​=−i=1∑k​P(Ci​)logP(Ci​)=−i=1∑k​n∣Ci​∣​log(n∣Ci​∣​)​(9)

给定簇信息 C∗C^*C∗ 的前提条件下,类别信息 CCC 的增加量,或者说其不确定度的减少量,直观的,可以写出如下形式:

MI(C,C∗)=H(C)−H(C∣C∗)(10)MI(C,C^*)=H(C)-H(C|C^*)\tag{10}MI(C,C∗)=H(C)−H(C∣C∗)(10)

  • 互信息的最小值为 0, 当类簇相对于类别只是随机的, 也就是说两者独立的情况下, CCC 对于 C∗C^*C∗ 未带来任何有用的信息;

  • 如果得到的 CCC 与 C∗C^*C∗ 关系越密切, 那么 MI(C,C∗)MI(C,C^*)MI(C,C∗) 值越大. 如果 CCC 完整重现了 C∗C^*C∗ , 此时互信息最大。

  • 当 k=nk=nk=n 时,即类簇数和样本个数相等,MI 也能达到最大值。所以 MI 也存在和纯度类似的问题,即它并不对簇数目较大的聚类结果进行惩罚,因此也不能在其他条件一样的情况下,对簇数目越小越好的这种期望进行形式化。

NMI 归一化互信息

Normalized Mutual Information 归一化互信息

sklearn.metrics.normalized_mutual_info_score

NMI 则可以解决上述问题,因为熵会随着簇的数目的增长而增大。当 k=nk=nk=n 时, H(C)H(C)H(C) 会达到其最大值 log(n)log(n)log(n) , 此时就能保证 NMI 的值较低。之所以采用 12H(C)+H(C∗)\frac{1}{2} H(C)+H(C^*)21​H(C)+H(C∗) 作为分母,是因为它是 MI(C,C∗)MI(C,C^*)MI(C,C∗) 的紧上界, 因此可以保证 NMI∈[0,1]NMI\in[0,1]NMI∈[0,1] 。

NMI(C,C∗)=2×MI(C,C∗)H(C)+H(C∗)(11)NMI(C,C^*)=\frac{2\times MI(C,C^*)}{H(C)+H(C^*)}\tag{11}NMI(C,C∗)=H(C)+H(C∗)2×MI(C,C∗)​(11)

AMI 调整互信息

Adjusted Mutual Information 调整互信息

sklearn.metrics.adjusted_mutual_info_score

AMI(C,C∗)=MI(C,C∗)−E(MI(C,C∗))avg(H(C),H(C∗))−E[MI(C,C∗)](12)AMI(C,C^*)=\frac{MI(C,C^*)-E(MI(C,C^*))}{avg(H(C),H(C^*))-E[MI(C,C^*)]}\tag{12}AMI(C,C∗)=avg(H(C),H(C∗))−E[MI(C,C∗)]MI(C,C∗)−E(MI(C,C∗))​(12)

令 ai=∣Ci∣,bj=∣CJ∗∣a_i=|C_i|,b_j=|C_J^*|ai​=∣Ci​∣,bj​=∣CJ∗​∣ ,则 E[MI(C,C∗)]E[MI(C,C^*)]E[MI(C,C∗)] 为:

E[MI(C,C∗)]=∑i=1∣C∣∑j=1∣C∗∣∑nij=(ai+bj−n)+min(ai,bj)nijnlog(n⋅nijaibj)ai!bj!(n−ai)!(n=bj)!n!nij!(ai−nij)!(bj−nij)!(n−ai−bj+nij)!(13)E[MI(C,C^*)] = \sum_{i=1}^{|C|}\sum_{j=1}^{|C^*|} \sum_{n_{ij}=(a_i+b_j-n)^+}^{min(a_i,b_j)} \frac{n_{ij}}{n}log(\frac{n\cdot n_{ij}}{a_i b_j}) \frac{a_i!b_j!(n-a_i)!(n=b_j)!}{n!n_{ij}!(a_i-n_{ij})!(b_j-n_{ij})!(n-a_i-b_j+n_{ij})!} \tag{13}E[MI(C,C∗)]=i=1∑∣C∣​j=1∑∣C∗∣​nij​=(ai​+bj​−n)+∑min(ai​,bj​)​nnij​​log(ai​bj​n⋅nij​​)n!nij​!(ai​−nij​)!(bj​−nij​)!(n−ai​−bj​+nij​)!ai​!bj​!(n−ai​)!(n=bj​)!​(13)

当 log 取 2 为底时,单位为 bit,取 e 为底时单位为 nat。[2]

1.2 内部评估指标

考虑聚类结果的 kkk 个簇划分 C={C1,C2,⋯,Ck}C=\{C_1,C_2,\cdots,C_k\}C={C1​,C2​,⋯,Ck​},其中 dist(⋅,⋅)dist(\cdot,\cdot)dist(⋅,⋅) 用于计算两个样本之间的距离(2. 距离计算),μ\muμ 代表簇 CCC 的中心点 μ=1k∑1≤i≤kxi\mu=\frac{1}{k}\sum_{1\leq i\leq k} x_iμ=k1​∑1≤i≤k​xi​。

定义:

簇 CCC 内样本间的平均距离 avg(C)avg(C)avg(C):

avg(C)=Ck2∑1≤i≤j≤kdist(xi,xj)(14)avg(C)=C_k^2\sum_{1\leq i\leq j \leq k} dist(x_i,x_j) \tag{14}avg(C)=Ck2​1≤i≤j≤k∑​dist(xi​,xj​)(14)

簇 CCC 内样本间的最远距离 diam(C)diam(C)diam(C):

diam(C)=max1≤i≤j≤kdist(xi,xj)(15)diam(C)=max_{1\leq i\leq j \leq k}dist(x_i,x_j) \tag{15}diam(C)=max1≤i≤j≤k​dist(xi​,xj​)(15)

簇 CiC_iCi​ 与簇 CjC_jCj​ 最近的样本间距离 dmin(Ci,Cj)d_{min}(C_i,C_j)dmin​(Ci​,Cj​):

dmin(Ci,Cj)=minxi∈Ci,xj∈Cjdist(xi,xj)(16)d_{min}(C_i,C_j)=min_{x_i \in C_i,x_j \in C_j} dist(x_i,x_j) \tag{16}dmin​(Ci​,Cj​)=minxi​∈Ci​,xj​∈Cj​​dist(xi​,xj​)(16)

簇 CiC_iCi​ 与簇 CjC_jCj​ 中心点间的距离 dcen(Ci,Cj)d_{cen}(C_i,C_j)dcen​(Ci​,Cj​):

dcen(Ci,Cj)=dist(xi,xj)(17)d_{cen}(C_i,C_j)=dist(x_i,x_j) \tag{17}dcen​(Ci​,Cj​)=dist(xi​,xj​)(17)

DBI 戴维森堡丁指数

Davies-Bouldin Index 戴维森堡丁指数,越小越好。

sklearn.metrics.davies_bouldin_score

DBI=1k∑i=1kmax⁡j≠i(avg(Ci)+avg(Cj)dcen(μi,μj))(18)DBI=\frac{1}{k}\sum_{i=1}^k \max \limits_{j\neq i}(\frac{avg(C_i)+avg(C_j)}{d_{cen}(\mu_i,\mu_j)}) \tag{18} DBI=k1​i=1∑k​j​=imax​(dcen​(μi​,μj​)avg(Ci​)+avg(Cj​)​)(18)

DI Dunn指数

Dunn Index,越大越好。

DI=min⁡1≤i≤k{min⁡j≠i(dmin(Ci,Cj)max⁡1≤l≤kdiam(Cl))}(19)DI= \min \limits_{1\leq i\leq k} \bigg\{ \min \limits_{j \neq i}\bigg(\frac{d_{min}(C_i,C_j)}{\max \limits_{1 \leq l \leq k} diam(C_l)}\bigg) \bigg\} \tag{19} DI=1≤i≤kmin​{j​=imin​(1≤l≤kmax​diam(Cl​)dmin​(Ci​,Cj​)​)}(19)

SC 轮廓系数

Silhouette Coefficient 轮廓系数

sklearn.metrics.silhouette_score

S=b−amax(a,b)(20)S=\frac{b-a}{max(a,b)} \tag{20}S=max(a,b)b−a​(20)

Advantages

  • The score is bounded between -1 for incorrect clustering and +1 for highly dense clustering. Scores around zero indicate overlapping clusters.

  • The score is higher when clusters are dense and well separated, which relates to a standard concept of a cluster.

Drawbacks

  • The Silhouette Coefficient is generally higher for convex clusters than other concepts of clusters, such as density based clusters like those obtained through DBSCAN.【不适用于紧凑、密集的数据,DBSCAN的带噪声的数据】

参考文献

[1] 周志华. 机器学习[M]. 北京: 清华大学出版社, 2016: 197-199.

[2] Gan Pan.[ML] 聚类评价指标[EB/OL].https://zhuanlan.zhihu.com/p/53840697, 2019-06-28.

机器学习 | 聚类评估指标相关推荐

  1. 机器学习模型评估指标总结!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:太子长琴,Datawhale优秀学习者 本文对机器学习模型评估指标 ...

  2. 机器学习性能评估指标汇总

    机器学习性能评估指标汇总 Accuracy:准确率 Precision:精确率 / 查准率 Recall:召回率 / 查全率 F1 score:F1 值 PR:查准率.查全率曲线 ROC:真正率.假正 ...

  3. 【机器学习基础】非常详细!机器学习模型评估指标总结!

    作者:太子长琴,Datawhale优秀学习者 本文对机器学习模型评估指标进行了完整总结.机器学习的数据集一般被划分为训练集和测试集,训练集用于训练模型,测试集则用于评估模型.针对不同的机器学习问题(分 ...

  4. 机器学习 | 回归评估指标

    文章目录 1. 回归评估指标 1.1 平均绝对误差 MAE 1.1.1 Sklearn 计算 MAE 1.2 均方误差 MSE 1.2.1 Sklearn 计算 MSE 1.3 判定系数 R^2 1. ...

  5. 机器学习 | 分类评估指标

    文章目录 1. 分类评估指标 1.1 混淆矩阵 Confusion Matrix 1.1.1 scikit-learn 混淆矩阵函数接口 1.2 真阳性TP.假阳性FP.真阴性TN.假阴性FN 1.2 ...

  6. 机器学习模型评估指标ROC、AUC详解

    我是小z ROC/AUC作为机器学习的评估指标非常重要,也是面试中经常出现的问题(80%都会问到).其实,理解它并不是非常难,但是好多朋友都遇到了一个相同的问题,那就是:每次看书的时候都很明白,但回过 ...

  7. 机器学习模型评估指标总结

    常用机器学习算法包括分类.回归.聚类等几大类型,以下针对不同模型总结其评估指标 一.分类模型 常见的分类模型包括:逻辑回归.决策树.朴素贝叶斯.SVM.神经网络等,模型评估指标包括以下几种: (1)二 ...

  8. 机器学习常用评估指标的前世今生

    在机器学习中,性能指标(Metrics)是衡量一个模型好坏的关键,通过衡量模型输出y_predict和y_true之间的某种"距离"得出的. 性能指标往往使我们做模型时的最终目标, ...

  9. kmeans及模型评估指标_机器学习模型评估指标总结

    常用机器学习算法包括分类.回归.聚类等几大类型,以下针对不同模型总结其评估指标 一.分类模型 常见的分类模型包括:逻辑回归.决策树.朴素贝叶斯.SVM.神经网络等,模型评估指标包括以下几种: (1)二 ...

最新文章

  1. 谁能撼动美国男篮霸主地位?东京奥运看这四队
  2. Linux系统下,MySQL以及禅道的安装/卸载
  3. centos 6.2安装mysql_CentOS 6.2下安装MySQL_服务器知识学堂-中关村在线
  4. 命令行运行Jmeter实例
  5. 求101-200以内的素数
  6. [洪流学堂]Hololens开发入门篇2之Hello World
  7. 初识 Vue(10)---(计算属性的 setter 和 getter)
  8. day02_20190106 基础数据类型 编码 运算符
  9. 【luogu P3804】【模板】后缀自动机 (SAM)
  10. Kettle入门案例
  11. matlab哪些教材好,新手入门,恳请推荐一本matlab好教材
  12. android生成透明图片格式,Android编程实现图片透明的方法
  13. 可以联机的计算机游戏,多人玩的游戏_可以多人联机玩的游戏 乐游网
  14. 阿里云飞天系统的技术架构(转)
  15. 【数学】 隐函数求导法则
  16. MySQL Workbench 类似Navicat侧边栏查表名
  17. 驭龙HIDS的简介,它开源了
  18. 浅谈策略交易、系统交易和程式交易
  19. 2021-2027全球与中国讲解员视频软件市场现状及未来发展趋势
  20. 会议活动如何与微信结合发挥微信营销助力转化优势

热门文章

  1. 如何绘制逻辑图 — 6.要素的属性:内聚与解耦
  2. 新书推荐 |《5G安全技术与标准》
  3. 【面向对象】面向对象程序设计测试题10-类的设计测试题
  4. Android 8.0 AutoFill自动填写框架实践
  5. vboxmanage查询正在运行的vbox虚拟机
  6. 【Eclipse】Eclipse常用操作
  7. python的错误处理——try语句
  8. tiantianguandan官方网站
  9. Linux 牛书推荐:《Linux网络编程》
  10. 很有气势的语言openeim