一文读懂分类模型评估指标

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 模型评估是深度学习和机器学习中非常重要的一部分,用于衡量模型的性能和效果。本文将逐步分解混淆矩阵,准确性,精度,召回率和F1分数。

混淆矩阵

混淆矩阵是在分类问题中用于评估模型性能的表格,它展示了模型对样本的分类情况。混淆矩阵的行表示实际类别,列表示预测类别。对于二分类问题,混淆矩阵的结构如下:

  • True Positive (TP): 实际为正例,模型预测为正例的样本数,模型正确识别正面实例的能力。更高的TP通常是可取的
  • False Negative (FN): 实际为正例,模型预测为负例的样本数,根据应用程序的不同,这可能是关键的(例如,未能检测到安全威胁)。
  • False Positive (FP): 实际为负例,模型预测为正例的样本数,强调模型在不应该预测为正的情况下预测为正的情况,这可能会产生取决于应用的后果(例如,医疗诊断中不必要的治疗)
  • True Negative (TN): 实际为负例,模型预测为负例的样本数,反映模型正确识别否定实例的能力。通常需要更高的TN

初学者看起来很乱,其实这样理解就非常简单了,后面的Negative/Positive 为模型预测值,前面的True/False 为模型预测是否正确,比如True Negative,代表,模型预测是Negative并且与实际的值对比是True 也就是预测正确的,这样就好理解了。以下是一个简单的混淆矩阵:

 from sklearn.metrics import confusion_matrix
 import seaborn as sns
 import matplotlib.pyplot as plt
 # Example predictions and true labels
 y_true = [1, 0, 1, 1, 0, 1, 0, 0, 1, 0]
 y_pred = [1, 0, 1, 0, 0, 1, 0, 1, 1, 1]
 # Create a confusion matrix
 cm = confusion_matrix(y_true, y_pred)
 # Visualize the blueprint
 sns.heatmap(cm, annot=True, fmt="d", cmap="Blues", xticklabels=["Predicted 0", "Predicted 1"], yticklabels=["Actual 0", "Actual 1"])
 plt.xlabel("Predicted")
 plt.ylabel("Actual")
 plt.show()

当你想强调正确的预测和整体准确性时,使用TP和TN。当你想了解你的模型所犯的错误类型时,使用FP和FN。例如,在误报成本很高的应用程序中,最小化误报可能是至关重要的。

比如一个垃圾邮件分类器。混淆矩阵可以理解正确识别了多少垃圾邮件,错误标记了多少非垃圾邮件。

基于混淆矩阵,可以计算许多其他评估指标,例如准确度、精确度、召回率和F1分数。

Accuracy

根据我们上面的总结,计算的是能够正确预测的的比例,分子是TP和TN都是True,也就是模型预测对了的总数

Precision

可以看到公式,他计算的是Positive 的占比,也就是说数据中所有Positive的,正确预测对了有多少,所以精确度Precision又被称作查准率

在误报有重大后果或成本的情况下,这是至关重要的。例如在医学诊断模型中,精确度确保只对真正需要治疗的人进行治疗。

Recall

召回率,也称为灵敏度或真阳性率,关注模型捕获所有正类实例的能力。

从公式中可以看到,它主要是计算模型捕获了多少实际的Positive,也就是Positive的占比,所以Recall又被称作查全率

F1 Score

F1分数是一个在精确度和召回率之间取得平衡的指标,为模型的性能提供了一个全面的衡量标准。它是查准率和查全率的调和平均值,计算公式为:

F1分数很重要,因为它提供了精确率和召回率之间的折衷。当你想在准确率和召回率之间找到平衡时,或者说针对一般的应用可以使用F1 Score

总结

本文对混淆矩阵、准度、精度、召回率和F1分数进行了详细的介绍,使用这些指标可以很好地评估和增强模型的性能。

https://avoid.overfit.cn/post/90571a2233f64dbc80c6732f3e817d6c

作者:Rohit Saroj

目录
相关文章
|
人工智能 搜索推荐 算法
豆包角色制作指南
这篇文章是一份豆包角色制作指南,介绍了如何使用虚拟角色生成器创建IP或非IP角色,以及创作对话人物sp的技巧和Bot主动发消息的技巧。
|
数据采集 数据可视化 算法
【优秀python案例】基于Python的豆瓣电影TOP250爬虫与可视化设计与实现
本文设计并实现了一个基于Python的豆瓣电影TOP250爬虫与可视化系统,通过获取电影评分、评论并应用词云和饼图等可视化技术,为用户提供了电影评价的直观展示和深入分析。
3200 3
【优秀python案例】基于Python的豆瓣电影TOP250爬虫与可视化设计与实现
|
Kubernetes API 调度
Kubernetes 架构解析:理解其核心组件
【8月更文第29天】Kubernetes(简称 K8s)是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用。它提供了一个可移植、可扩展的环境来运行分布式系统。本文将深入探讨 Kubernetes 的架构设计,包括其核心组件如何协同工作以实现这些功能。
1219 3
|
机器学习/深度学习 数据采集 数据可视化
基于YOLOv8的PCB缺陷检测识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
本项目基于YOLOv8实现PCB缺陷检测,提供一站式解决方案。包含完整训练代码、标注数据集、预训练权重及PyQt5图形界面,支持图片、文件夹、视频和摄像头四种检测模式。项目开箱即用,适合科研、工业与毕业设计。核心功能涵盖模型训练、推理部署、结果保存等,检测类型包括缺孔、鼠咬缺口、开路、短路、飞线和杂铜。项目具备高性能检测、友好界面、灵活扩展及多输入源支持等优势,未来可优化模型轻量化、多尺度检测及报告生成等功能。
基于YOLOv8的PCB缺陷检测识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
|
机器学习/深度学习 人工智能 自然语言处理
混淆矩阵(Confusion Matrix)
随着机器学习和人工智能的迅速发展,分类模型成为了解决各种问题的重要工具。然而,仅仅知道模型预测对了多少样本是不够的。我们需要一种更详细、更系统的方法来理解模型的分类能力,以及它在不同类别上的表现。 混淆矩阵是在机器学习和统计学中用于评估分类模型性能的一种表格。它对模型的分类结果进行了详细的总结,特别是针对二元分类问题,另外混淆矩阵是用于评估分类模型性能的一种表格,特别适用于监督学习中的分类问题。它以矩阵形式展示了模型对样本进行分类的情况,将模型的预测结果与实际标签进行对比。
1775 1
|
计算机视觉
YOLOv11改进策略【损失函数篇】| 利用MPDIoU,加强边界框回归的准确性
YOLOv11改进策略【损失函数篇】| 利用MPDIoU,加强边界框回归的准确性
963 0
YOLOv11改进策略【损失函数篇】| 利用MPDIoU,加强边界框回归的准确性
|
机器学习/深度学习 自然语言处理 并行计算
element plus表格的表头和内容居中
element plus表格的表头和内容居中
1257 0
|
传感器 监控 数据可视化
智能化工厂大屏监控
智能化工厂大屏监控
390 0
|
C++ iOS开发 MacOS
常用的 VSCode 快捷键【大全】,提升你的编码速度
常用的 VSCode 快捷键【大全】,提升你的编码速度
常用的 VSCode 快捷键【大全】,提升你的编码速度