聚类算法评价指标学习笔记

本文列举常用聚类性能度量指标,并列出相应代码与参考资料

聚类性能度量大致分两类,一类将聚类结果与某个“参考模型”(reference model)进行比较,称为“外部指标”(external index);另一类是直接考察聚类结果而不利用任何参考模型,称为“内部指标”(internal index)。(机器学习,周志华)。本文主要针对聚类算法的外部指标做总结。

与分类不同,聚类算法获取的类别标签具有不确定性,不能直接基于ground truth获得类似于分类算法的错误率、召回率、精度等评价指标。聚类算法通常将样本两两配对,再做进一步计算与评价。通过聚类给出的簇划分为C,参考模型(ground truth)给出的簇划分为K,通常K与C给出的簇类别数量不相同。定义a, b, c, d如下:

a: 在C中属于同一类别且在K中属于同一类别的样本对数量

b: 在C中属于同一类别且在K中属于不同类别的样本对数量

c: 在C中属于不同类别且在K中属于同一类别的样本对数量

d: 在C中属于不同类别且在K中属于不同类别的样本对数量

记总样本数量为m,显而易见

由上文可导出常用聚类性能度量外部指标:

  1. Jaccard 系数(Jaccard Coefficient,简称JC)

  1. FM指数(Fowlkes and Mallows Index,简称FMI)

  1. Rand指数(Rand Index,简称RI)

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

V-measure

V-measure 是同质性(homogeneity)和完整性(completeness)的调和平均数,

  1. 这个测度独立于label的绝对值,调整类别标签或聚类标签的值不会改变测度结果。
  2. 这个测度关于类别标签与聚类标签对称,交换类别标签与聚类标签不会使得测度结果发生变化。
  3. 当类别标签未知时,这种测度方法还可以用来比较两种标记策略的相似程度。
  4. V-measure取值在[0,1]区间内,值越大相似程度越高。

Mutual information

  已知聚类标签与真实标签,互信息(mutual information)能够测度两种标签排列之间的相关性,同时忽略标签中的排列。有两种不同版本的互信息以供选择,一种是Normalized Mutual Information(NMI),一种是Adjusted Mutual Information(AMI)。比起最近才提出的AMI,更早提出的NMI更频繁地应用于文献中。

  MI、NMI、AMI都是对称函数,交换变量不改变函数值,因此可以用做一致性检验。对于AMI与NMI,最佳的标签配对对应的函数值都是0,但是MI不是,这使得MI有时难以作为判断依据。

对于随机标签,通常会获得接近于0的AMI值。AMI的输出范围在[0,1]区间内,值越大表示相似程度越高。

基于MI的测度需要ground truth,在真实环境中ground truth需要大量手工标记,通常难以获得。但这并不意味着MI在无监督学习中一无是处。在纯的无监督学习中,基于MI的测度可以作为一致性指标的构建模块,用于聚类模型选择,用于纯无监督学习。

NMI与MI没有针对机会做调整(这个“机会”令我费解,要调研一下)。

基于MI的评价指标的数学公式

假设对于N个样本,存在两种标签分配策略,分别记做U,V。信息熵是一种信息不确定性的测度,定义如下:

  其中  表示从U中随机选取一个样本属于类别 U_i 的概率。同理有:

  其中  。U和V的互信息计算公式如下:

  其中,是随机选取的样本同时属于U_i与V_j的概率。

  NMI定义如下:

  这个互信息的值经过了标准化,没有针对机会做调整(这个“机会”令我感到很费解,还需要学习),并且会随着聚类类别数量增加而增加,没有考虑不同的label分配方式之间的“互信息”的实际数量。

  互信息的期望可以基于以下公式计算获得。(略)

  AMI,调整后的互信息,定义如下:

参考资料

scikit-learn模块中的MI指标说明(包括定义、公式、代码、例程等)

http://scikit-learn.org/stable/modules/clustering.html#mutual-information-based-scores

转载于:https://www.cnblogs.com/nwpuxuezha/p/6582110.html

聚类算法评价指标学习笔记相关推荐

  1. 计算机视觉算法——Transformer学习笔记

    算机视觉算法--Transformer学习笔记 计算机视觉算法--Transformer学习笔记 1. Vision Transformer 1.1 网络结构 1.2 关键知识点 1.2.1 Self ...

  2. 内部和外部聚类算法评价指标

    目录 1.内部评价指标 1.1 Silhouette Coefficient(轮廓系数) sihoueette_score 参数介绍 silhouette_samples参数介绍 1.2 Calins ...

  3. 数据结构与算法-链表学习笔记

    数据结构与算法-链表学习笔记 链表的概念 链表是有序的列表. 链表是以节点的方式来存储,是链式存储,它在内存中并不是一定是连续的. 每个节点包含 data 域:存储数据, next 域:指向下一个节点 ...

  4. 聚类算法评价指标之DBI指数及Python实现

    目录 1.概念介绍 2.具体计算步骤 3.Python实现 参考资料:https://blog.csdn.net/weixin_46713695/article/details/126385691?s ...

  5. 算法训练营学习笔记1

    算法训练营学习笔记 贪心算法 心算法总是做出当前最好的选择,期望通过局部最优选择得到全局最优的解决方案.从问题的初始解开始,一步歩地做出当前最好的选择,逐步逼近问题的目标,尽可能得到最优解: 贪心本质 ...

  6. python 两阶段聚类_挑子学习笔记:两步聚类算法(TwoStep Cluster Algorithm)——改进的BIRCH算法...

    转载请标明出处:http://www.cnblogs.com/tiaozistudy/p/twostep_cluster_algorithm.html 两步聚类算法是在SPSS Modeler中使用的 ...

  7. r型聚类典型指标_常用的聚类算法及聚类算法评价指标

    1. 典型聚类算法 1.1 基于划分的方法 代表:kmeans算法 ·指定k个聚类中心 ·(计算数据点与初始聚类中心的距离) ·(对于数据点,找到最近的{i}ci(聚类中心),将分配到{i}ci中) ...

  8. End-to-end目标检测算法的学习笔记

    1 前言 End-to-end目标检测算法都是一些比较厉害的模型 2 End-to-end的SOTA检测模型--Deformable-DETR 现在最强的端到端模型是Deformable-DETR: ...

  9. Acwing算法基础课学习笔记

    Acwing学习笔记 第一章 基础算法 快速排序 归并排序 二分查找 前缀和与差分 差分 位运算 离散化 第二章 数据结构 单链表 双链表 栈 队列 单调栈 单调队列 KMP算法 Trie 并查集 堆 ...

最新文章

  1. 阿里云 centos 6.9 安装 mysql 5.7
  2. Java 生成有序 UUID
  3. 正则表达式二 :贪婪与非贪婪
  4. MySQL 高可用架构 之 MHA (Centos 7.5 MySQL 5.7.18 MHA 0.58)
  5. SAP中负数的表示增强 负号从数字后更改到数字前面
  6. 随着互联网的深化,世间万物都将如何学会思考?
  7. P3302-[SDOI2013]森林【主席树,LCA,启发式合并】
  8. 爬虫_淘宝(selenium)
  9. 开发简易飞机订票系统(C/C++)
  10. 华为数通 软开 2022校招 面试全过 已开奖
  11. centos7、Linux实现文件夹共享、Linux共享文件夹后无权限访问
  12. 软件破解技术之API替换
  13. Invalid bound statement (not found): com.wu.dao.BlogMapper.addBook错误
  14. ppt太大如何压缩到最小的批量处理方式
  15. Linux系统安装使用glassfish3.1.2.2
  16. 一种通用的Qt数据库接口操作方法
  17. 仙人掌树学习1:仙人掌图 洛谷:[SHOI2008]仙人掌图 II
  18. [NHZXOI2017]二叉堆
  19. 全网最全-探花交友项目-面试总结-简历优化
  20. 【基础知识】HTML5 Canvas小项目时钟的简单实现(图文、演示)

热门文章

  1. 开课吧:哪些人适合转行做Web前端?
  2. C++基础教程之C++数据抽象
  3. Kubernetes使用Nginx Ingress暴露Dashboard
  4. SQL Server 2012 完全安装
  5. 政府部门和金融行业已成网络攻击的最大目标
  6. 利用Windows 2003系统中实现两个网段的路由
  7. 程序员面试金典——18.7最长合成字符串
  8. 关于OPENCV 访问外部传进来的Mat矩阵元素的问题
  9. 解决qt工程文件.pro配置、LIBS添加、ld.so.conf文件添加、库文件权限设置等一系列问题
  10. ubuntu 上 nvidia-smi 没显示所有的GPU