马修斯相关系数MCC简介

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: 在评估机器学习模型的性能时,F1score都被首选指标。在本文中,我们将介绍一个值得更多关注和认可的替代度量:马修斯相关系数(MCC)。

在评估机器学习模型的性能时,F1score都被首选指标。在本文中,我们将介绍一个值得更多关注和认可的替代度量:马修斯相关系数(MCC)。

F1score通过协调准确率和召回率来计算,旨在在两者之间取得平衡。但是假设我们有一个具有以下混淆矩阵的数据集:

在这种情况下,数据集代表了一种罕见疾病的医学测试,只有少量正例。混淆矩阵表明该模型具有高的真反例(TN)率,但具有低的真正例(TP)率。以下是精确度、召回率和F1分数的计算结果:

  • Precision = TP / (TP + FP) = 25 / (25 + 10) ≈ 0.714
  • Recall = TP / (TP + FN) = 25 / (25 + 5) = 0.833
  • F1 Score = 2 (Precision Recall) / (Precision + Recall) ≈ 0.769

F1的成绩在0.769左右,这似乎是一个合理的表现。但是少量遗漏的正例也可能对现实世界产生重大影响。

所以我们引入一个新的指标:马修斯相关系数(Matthews Correlation Coefficient,MCC)

马修斯相关系数MCC

马修斯相关系数 Matthews coefficient 是一种用于评估二元分类模型性能的指标,特别适用于处理不平衡数据集。它考虑了真正例(TP)、真反例(TN)、假正例(FP)和假反例(FN),提供一个能够总结分类质量的单一数值。

MCC的取值范围在-1到+1之间,其中:

  • +1 表示完美预测
  • 0 表示随机预测
  • -1 表示预测与实际观察完全不一致

MCC的计算公式为:

在这个公式中:

  • TP:真正例(正确预测的正例)
  • TN:真反例(正确预测的负例)
  • FP:假正例(错误预测的正例)
  • FN:假反例(错误预测的负例)
  • sqrt:平方根

MCC考虑了所有四个值(TP、TN、FP、FN),因此适用于存在类别不平衡的数据集,其中一个类别可能比另一个类别更常见。特别是希望评估模型性能而不受类别分布影响时,MCC非常有用。

根据上面的例子,我们的MCC计算结果为:

 MCC = (25 * 9000 - 10 * 5) / sqrt((25 + 10) * (25 + 5) * (9000 + 10) * (9000 + 5))
 MCC ≈ 0.517

MCC值约为0.517。

在实践中,较高的MCC值表示更好的性能,+1 是理想的得分。通常情况下,大于0.5的值被认为是良好的,约为0的值表示随机性能。负值则暗示性能较差或模型比随机猜测还要差。

与F1score的区别

  1. 定义和计算方式:- MCC 是一个综合性能指标,考虑了真正例、真反例、假正例和假反例,通过一个复杂的公式计算得出。- F1 分数是精确率(Precision)和召回率(Recall)的调和平均值,表示了模型在平衡了预测的精确性和覆盖率后的表现。
  2. 权衡不平衡数据集:- MCC 可以在不平衡的数据集中提供更准确的性能评估,因为它同时考虑了四个分类结果,包括真反例和真正例。- F1 分数也考虑了不平衡数据集,但主要关注了模型的精确率和召回率之间的权衡。
  3. 优点和适用场景:- MCC 对于类别不平衡的情况和样本量较小的情况下更有优势,因为它在评估性能时考虑了所有四个分类结果,减少了结果的随机性。- F1 分数在关注模型能够正确识别正例的情况下也保持较好的表现,适用于一些需要平衡精确率和召回率的场景。
  4. 解释性:- MCC 的取值范围在-1到+1之间,更容易解释。+1 表示完美预测,-1 表示完全不一致,0 表示随机。- F1 分数的取值范围在0到1之间,也很容易解释。1 表示完美的精确率和召回率平衡。

指标选取

马修斯相关系数(Matthews Correlation Coefficient,MCC)和 F1 分数(F1 Score)都是用于评估二元分类模型性能的指标,但它们从不同的角度考虑了模型的预测结果。

如果数据集存在严重的类别不平衡,并且想要一个更全面的性能评估指标,那么 MCC 可能更合适。如果只关心模型的精确率和召回率的平衡,而不太关心真反例和真正例的比例,那么 F1 分数可能更适合。

https://avoid.overfit.cn/post/935db4fa639d4fbfbfe9ef425ce73fbc

目录
相关文章
|
数据采集 消息中间件 监控
Flume数据采集系统设计与配置实战:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入探讨Apache Flume的数据采集系统设计,涵盖Flume Agent、Source、Channel、Sink的核心概念及其配置实战。通过实例展示了文件日志收集、网络数据接收、命令行实时数据捕获等场景。此外,还讨论了Flume与同类工具的对比、实际项目挑战及解决方案,以及未来发展趋势。提供配置示例帮助理解Flume在数据集成、日志收集中的应用,为面试准备提供扎实的理论与实践支持。
503 1
|
存储 C语言
C 语言文件读取全指南:打开、读取、逐行输出
要从文件读取,可以使用 r 模式: FILE *fptr; // 以读取模式打开文件 fptr = fopen("filename.txt", "r"); 这将使 filename.txt 打开以进行读取。 在 C 中读取文件需要一点工作。坚持住!我们将一步一步地指导您。 接下来,我们需要创建一个足够大的字符串来存储文件的内容。 例如,让我们创建一个可以存储多达 100 个字符的字符串:
1158 2
C 语言文件读取全指南:打开、读取、逐行输出
|
11月前
|
人工智能 JSON 自然语言处理
基于阿里云通义千问的AI模型应用开发指南
阿里云通义千问是阿里巴巴集团推出的多模态大语言模型平台,提供了丰富的API和接口,支持多种AI应用场景,如文本生成、图像生成和对话交互等。本文将详细介绍阿里云通义千问的产品功能,并展示如何使用其API来构建一个简单的AI应用,包括程序代码和具体操作流程,以帮助开发者快速上手。
2287 3
|
消息中间件 运维 监控
深度解析CommitFailedException的奥秘
深度解析CommitFailedException的奥秘
251 0
|
SQL 关系型数据库 MySQL
阿里云MySQL数据库价格、购买、创建账号密码和连接数据库教程
阿里云数据库使用指南:购买MySQL、SQL Server等RDS实例,选择配置和地区,完成支付。创建数据库和账号,设置权限。通过DMS登录数据库,使用账号密码访问。同地域VPC内的ECS需将IP加入白名单以实现内网连接。参考链接提供详细步骤。
1431 3
|
存储 JavaScript 网络安全
nodejs:本地安装nvm实现nodejs多版本管理及切换版本
nodejs:本地安装nvm实现nodejs多版本管理及切换版本
2786 0
|
3月前
|
人工智能 并行计算 数据可视化
ms-swift 微调 internlm3-8b-instruct(论文分类任务)
本文介绍了使用InternLM系列模型进行论文分类任务的微调全过程,包括环境配置、数据准备、预训练与SFT(监督微调)、权重合并、模型评测及上传至魔搭社区等步骤。使用ms-swift框架和Lora训练方法,在具备40GB显存的A100 GPU环境下完成训练,并通过Swift工具进行效果评估。
341 5
ms-swift 微调 internlm3-8b-instruct(论文分类任务)
|
机器学习/深度学习 数据采集 自然语言处理
注意力机制中三种掩码技术详解和Pytorch实现
**注意力机制中的掩码在深度学习中至关重要,如Transformer模型所用。掩码类型包括:填充掩码(忽略填充数据)、序列掩码(控制信息流)和前瞻掩码(自回归模型防止窥视未来信息)。通过创建不同掩码,如上三角矩阵,模型能正确处理变长序列并保持序列依赖性。在注意力计算中,掩码修改得分,确保模型学习的有效性。这些技术在现代NLP和序列任务中是核心组件。**
912 12
|
机器学习/深度学习 算法 数据可视化
探索Python中的聚类算法:K-means
探索Python中的聚类算法:K-means
383 4
|
11月前
|
机器学习/深度学习 算法 Python
深度解析机器学习中过拟合与欠拟合现象:理解模型偏差背后的原因及其解决方案,附带Python示例代码助你轻松掌握平衡技巧
【10月更文挑战第10天】机器学习模型旨在从数据中学习规律并预测新数据。训练过程中常遇过拟合和欠拟合问题。过拟合指模型在训练集上表现优异但泛化能力差,欠拟合则指模型未能充分学习数据规律,两者均影响模型效果。解决方法包括正则化、增加训练数据和特征选择等。示例代码展示了如何使用Python和Scikit-learn进行线性回归建模,并观察不同情况下的表现。
1479 3