【机器学习】聚类评价指标之福尔克斯–马洛斯指数(Fowlkes–Mallows Index, FMI)

ops/2025/1/13 3:48:57/

福尔克斯–马洛斯指数Fowlkes–Mallows Index, FMI)是一种用于评估聚类结果与实际标签之间一致性的指标。FMI 值可以用于衡量聚类的准确性,特别是在有真值标签的监督评估场景中。

计算公式

FMI 的计算基于以下公式:

其中:

  • TP(True Positive):聚类中正确地将同一类别的样本分到同一簇的对数。
  • FP(False Positive):聚类中错误地将不同类别的样本分到同一簇的对数。
  • FN(False Negative):聚类中错误地将同一类别的样本分到不同簇的对数。

FMI 是基于样本对(pairwise)的评价方法,它考虑了聚类结果与实际标签在配对样本之间的一致性。


FMI 的取值范围

  • FMI∈[0,1]
  • 值越接近 1,表示聚类结果与实际标签越一致。
  • 值越接近 0,表示聚类结果与实际标签基本无关。

优点

  1. 平衡性:FMI 通过结合精确率(Precision)和召回率(Recall)的平方根,能够综合反映聚类的性能。
  2. 可解释性强:与常见的分类指标类似,易于理解和分析。
  3. 适用于有标签数据:特别适用于监督学习场景下的聚类结果评估。

缺点

  1. 对类别不平衡敏感:当数据的类别分布不均衡时,FMI 的结果可能会受到影响。
  2. 计算成本较高:在大规模数据集上,由于需要计算所有样本对之间的关系,计算开销可能较大。

应用场景

  • 聚类性能评估:用于评价聚类算法在有真值标签数据集上的性能。
  • 多模态数据对齐:在多模态单细胞分析中,FMI 可用于衡量不同模态数据对齐结果的优劣。
  • 模型比较:在聚类算法的对比实验中,FMI 常作为关键评估指标之一。

常见的有监督评价方式

以下是一些典型的有监督聚类评价指标及其特点:

  1. 调整兰德指数(ARI, Adjusted Rand Index): 衡量两个聚类(算法结果 vs. 真值标签)的一致性,调整了随机聚类带来的影响。

  2. 归一化互信息(NMI, Normalized Mutual Information): 测量聚类结果与真值标签之间的信息共享,值越大表明聚类质量越高。

  3. 聚类准确率(CA, Clustering Accuracy): 简单地计算聚类结果与真值标签匹配的准确率。

  4. 福尔克斯–马洛斯指数(FMI, Fowlkes-Mallows Index): 衡量聚类中同类点和异类点的正确划分比例,尤其对簇大小不平衡问题敏感。


聚类评价中的注意事项

  1. 真值标签的质量: 如果“真值”标签本身不可靠(如细胞类型标签的分类标准主观性较强),则评价结果可能存在偏差。

  2. 不依赖标签的无监督评价: 除了上述有监督指标,还可以采用无监督指标,如轮廓系数(Silhouette Coefficient)或聚类内的平方误差(SSE),来评价聚类效果。

  3. 真实应用场景: 在实际无标注场景中,我们无法依赖有监督指标,这时需要结合领域知识或其他方式验证聚类的意义。


http://www.ppmy.cn/ops/149634.html

相关文章

winform第三方界面开源库AntdUI的使用教程保姆级环境设置篇

1. AntdUI 1.1. 导入项目 1.1.1. 首先新建一个空白的基于.net的Winfrom项目1.1.2. 复制AntdUI中src目录到我们的解决方案下面1.1.3. 解决方案下添加现有项目1.1.4. 添加项目引用 1.2. 编写代码 1.2.1. 改写Form1类,让其继承自public partial class Form1 : AntdUI.W…

25/1/11 算法笔记 Yolov8物体识别

这几天做了给Yolov8检测物体的小任务,今天来做下总结。 首先介绍下整个Yolov8检测的步骤吧,安装库那些就不讲了。 这是我的文件包的对象树。 有images包,里面装了训练和验证的图像。 labels包,装了标注好的labels的txt文件&…

MongoTemplate 性能优化指南

MongoTemplate 性能优化指南 1. 查询优化 1.1 合理使用索引 为经常查询的字段创建索引使用复合索引优化多字段查询避免使用无索引的排序操作 // 创建索引示例 mongoTemplate.indexOps(Collection.class).ensureIndex(new Index().on("field1", Sort.Direction.AS…

【redis】centos7下安装redis7

在CentOS 7下安装Redis7可以通过以下两种方法实现:手动编译安装和使用YUM进行安装。 CentOS 7系统的环境和版本: $ cat /etc/centos-release CentOS Linux release 7.9.2009 (Core)手动编译安装 参考官方文档:https://redis.io/docs/lates…

Jenkins持续集成与交付安装配置

Jenkins 是一款开源的持续集成(CI)和持续交付(CD)工具,它主要用于自动化软件的构建、测试和部署流程。为项目持续集成与交付功能强大的应用。下面我们来介绍下它的安装与配置。 环境准备 更新系统组件(这…

Docker 容器管理

容器是一个 image 的实例,它是我们用 image 文件生成出来的具体应用。 Nginx 服务器 我们在 pull 一个 Nginx image 到本地电脑,用它举例在介绍一些常用的容器管理命令。 // 获取 nginx 镜像 sudo docker pull nginx// 运行 nginx 镜像 sudo docker r…

在 Ubuntu 22.04 上从 Wayland 切换到 X11的详细步骤

在 Ubuntu 22.04 上从 Wayland 切换到 X11,步骤其实很简单,主要是在登录界面进行选择。以下是详细的步骤: 步骤 1:退出当前会话 首先,点击屏幕右上角的用户菜单,选择 注销 或 退出,以退出当前…

Flutter:吸顶效果

在分页中,实现tab吸顶。 TDNavBar的screenAdaptation: true, 开启屏幕适配。 该属性已自动对不同手机状态栏高度进行适配。我们只需关注如何实现吸顶。 view import package:ducafe_ui_core/ducafe_ui_core.dart; import package:flutter/material.dart; import p…