聚类算法评价指标学习笔记
聚类算法评价指标学习笔记
本文列举常用聚类性能度量指标,并列出相应代码与参考资料
聚类性能度量大致分两类,一类将聚类结果与某个“参考模型”(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,显而易见
由上文可导出常用聚类性能度量外部指标:
- Jaccard 系数(Jaccard Coefficient,简称JC)
- FM指数(Fowlkes and Mallows Index,简称FMI)
- Rand指数(Rand Index,简称RI)
显然,上述性能度量的结果值均在 [0,1] 区间,值越大越好。
V-measure
V-measure 是同质性(homogeneity)和完整性(completeness)的调和平均数,
- 这个测度独立于label的绝对值,调整类别标签或聚类标签的值不会改变测度结果。
- 这个测度关于类别标签与聚类标签对称,交换类别标签与聚类标签不会使得测度结果发生变化。
- 当类别标签未知时,这种测度方法还可以用来比较两种标记策略的相似程度。
- 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
聚类算法评价指标学习笔记相关推荐
- 计算机视觉算法——Transformer学习笔记
算机视觉算法--Transformer学习笔记 计算机视觉算法--Transformer学习笔记 1. Vision Transformer 1.1 网络结构 1.2 关键知识点 1.2.1 Self ...
- 内部和外部聚类算法评价指标
目录 1.内部评价指标 1.1 Silhouette Coefficient(轮廓系数) sihoueette_score 参数介绍 silhouette_samples参数介绍 1.2 Calins ...
- 数据结构与算法-链表学习笔记
数据结构与算法-链表学习笔记 链表的概念 链表是有序的列表. 链表是以节点的方式来存储,是链式存储,它在内存中并不是一定是连续的. 每个节点包含 data 域:存储数据, next 域:指向下一个节点 ...
- 聚类算法评价指标之DBI指数及Python实现
目录 1.概念介绍 2.具体计算步骤 3.Python实现 参考资料:https://blog.csdn.net/weixin_46713695/article/details/126385691?s ...
- 算法训练营学习笔记1
算法训练营学习笔记 贪心算法 心算法总是做出当前最好的选择,期望通过局部最优选择得到全局最优的解决方案.从问题的初始解开始,一步歩地做出当前最好的选择,逐步逼近问题的目标,尽可能得到最优解: 贪心本质 ...
- python 两阶段聚类_挑子学习笔记:两步聚类算法(TwoStep Cluster Algorithm)——改进的BIRCH算法...
转载请标明出处:http://www.cnblogs.com/tiaozistudy/p/twostep_cluster_algorithm.html 两步聚类算法是在SPSS Modeler中使用的 ...
- r型聚类典型指标_常用的聚类算法及聚类算法评价指标
1. 典型聚类算法 1.1 基于划分的方法 代表:kmeans算法 ·指定k个聚类中心 ·(计算数据点与初始聚类中心的距离) ·(对于数据点,找到最近的{i}ci(聚类中心),将分配到{i}ci中) ...
- End-to-end目标检测算法的学习笔记
1 前言 End-to-end目标检测算法都是一些比较厉害的模型 2 End-to-end的SOTA检测模型--Deformable-DETR 现在最强的端到端模型是Deformable-DETR: ...
- Acwing算法基础课学习笔记
Acwing学习笔记 第一章 基础算法 快速排序 归并排序 二分查找 前缀和与差分 差分 位运算 离散化 第二章 数据结构 单链表 双链表 栈 队列 单调栈 单调队列 KMP算法 Trie 并查集 堆 ...
最新文章
- 阿里云 centos 6.9 安装 mysql 5.7
- Java 生成有序 UUID
- 正则表达式二 :贪婪与非贪婪
- MySQL 高可用架构 之 MHA (Centos 7.5 MySQL 5.7.18 MHA 0.58)
- SAP中负数的表示增强 负号从数字后更改到数字前面
- 随着互联网的深化,世间万物都将如何学会思考?
- P3302-[SDOI2013]森林【主席树,LCA,启发式合并】
- 爬虫_淘宝(selenium)
- 开发简易飞机订票系统(C/C++)
- 华为数通 软开 2022校招 面试全过 已开奖
- centos7、Linux实现文件夹共享、Linux共享文件夹后无权限访问
- 软件破解技术之API替换
- Invalid bound statement (not found): com.wu.dao.BlogMapper.addBook错误
- ppt太大如何压缩到最小的批量处理方式
- Linux系统安装使用glassfish3.1.2.2
- 一种通用的Qt数据库接口操作方法
- 仙人掌树学习1:仙人掌图	洛谷:[SHOI2008]仙人掌图 II
- [NHZXOI2017]二叉堆
- 全网最全-探花交友项目-面试总结-简历优化
- 【基础知识】HTML5 Canvas小项目时钟的简单实现(图文、演示)
热门文章
- 开课吧:哪些人适合转行做Web前端?
- C++基础教程之C++数据抽象
- Kubernetes使用Nginx Ingress暴露Dashboard
- SQL Server 2012 完全安装
- 政府部门和金融行业已成网络攻击的最大目标
- 利用Windows 2003系统中实现两个网段的路由
- 程序员面试金典——18.7最长合成字符串
- 关于OPENCV 访问外部传进来的Mat矩阵元素的问题
- 解决qt工程文件.pro配置、LIBS添加、ld.so.conf文件添加、库文件权限设置等一系列问题
- ubuntu 上 nvidia-smi 没显示所有的GPU