马修斯相关系数MCC简介

简介: 在评估机器学习模型的性能时,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

目录
相关文章
|
12月前
|
存储 API 开发工具
DeepSeek 3FS解读与源码分析(5):客户端解读
本文深入解析了3FS的客户端模式,包括FUSE Client和Native Client(USRBIO)。
DeepSeek 3FS解读与源码分析(5):客户端解读
|
7月前
|
机器学习/深度学习 存储 算法
【水下机器人建模】基于QLearning自适应强化学习PID控制器在AUV中的应用研究(Matlab代码实现)
【水下机器人建模】基于QLearning自适应强化学习PID控制器在AUV中的应用研究(Matlab代码实现)
450 0
|
10月前
|
人工智能 并行计算 数据可视化
ms-swift 微调 internlm3-8b-instruct(论文分类任务)
本文介绍了使用InternLM系列模型进行论文分类任务的微调全过程,包括环境配置、数据准备、预训练与SFT(监督微调)、权重合并、模型评测及上传至魔搭社区等步骤。使用ms-swift框架和Lora训练方法,在具备40GB显存的A100 GPU环境下完成训练,并通过Swift工具进行效果评估。
1050 5
ms-swift 微调 internlm3-8b-instruct(论文分类任务)
|
机器学习/深度学习 人工智能 数据可视化
【网安AIGC专题10.19】论文4:大模型(CODEX 、CodeGen 、INCODER )+自动生成代码评估:改进自动化测试方法、创建测试输入生成器、探索新的评估数据集扩充方法
【网安AIGC专题10.19】论文4:大模型(CODEX 、CodeGen 、INCODER )+自动生成代码评估:改进自动化测试方法、创建测试输入生成器、探索新的评估数据集扩充方法
963 1
|
缓存 监控 前端开发
在 Go 语言中实现 WebSocket 实时通信的应用,包括 WebSocket 的简介、Go 语言的优势、基本实现步骤、应用案例、注意事项及性能优化策略,旨在帮助开发者构建高效稳定的实时通信系统
本文深入探讨了在 Go 语言中实现 WebSocket 实时通信的应用,包括 WebSocket 的简介、Go 语言的优势、基本实现步骤、应用案例、注意事项及性能优化策略,旨在帮助开发者构建高效稳定的实时通信系统。
883 1
|
机器学习/深度学习
机器学习模型评估指标详解
【7月更文挑战第14天】选择合适的评估指标对于准确评估机器学习模型的性能至关重要。在实际应用中,需要根据具体任务场景和数据特点,综合考虑多种评估指标,以全面评估模型的性能。同时,还需要注意评估指标的局限性,避免单一指标带来的误导。
1487 2
|
安全 物联网 物联网安全
物联网设备的安全性评估与测试:技术深度解析
【7月更文挑战第7天】物联网设备的安全性评估与测试是保障物联网系统安全运行的重要环节。通过实施全面的安全性评估与测试,可以发现并修复设备中存在的安全漏洞和风险,提高整体安全防护能力。然而,由于物联网设备的多样性和复杂性以及安全标准与监管的缺失等挑战,测试工作需要不断创新和优化。未来,随着技术的不断进步和实践的深入,物联网设备的安全性评估与测试将更加完善和高效。
|
人工智能 PyTorch 算法框架/工具
【AI系统】昇腾推理引擎 MindIE
本文详细介绍华为昇腾推理引擎 MindIE,涵盖其基本介绍、关键功能特性及三大组件:MindIE-Service、MindIE-Torch 和 MindIE-RT。文章深入探讨了各组件在服务化部署、大模型推理和推理运行时方面的功能和应用场景,旨在帮助读者全面了解 MindIE 如何支持 AI 业务的高效运行和模型的快速部署。
1474 0
|
数据采集 机器学习/深度学习 数据可视化
Jupyter Notebooks和IPython是交互式数据分析利器,提升效率。Jupyter是开源Web应用
【7月更文挑战第5天】Jupyter Notebooks和IPython是交互式数据分析利器,提升效率。Jupyter是开源Web应用,支持多语言,结合IPython的交互式解释器,便于编程和科学计算。两者提供即时反馈、丰富库支持、跨语言功能及协作共享。基本流程包括:数据导入(使用Pandas)、预处理、分析(借助Pandas、NumPy、Matplotlib)、模型训练(如随机森林)和评估。
320 0
|
机器学习/深度学习 自然语言处理 算法
Adam优化算法和应用场景
Adam(Adaptive Moment Estimation)是一种用于训练深度学习模型的优化算法
1321 2