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

模型评估是深度学习和机器学习中非常重要的一部分,用于衡量模型的性能和效果。本文将逐步分解混淆矩阵,准确性,精度,召回率和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

相关推荐
元岳数字人小元6 分钟前
AI 数字人开发公司浅谈 虚拟数字人打造景区新服务
人工智能·人机交互·交互
哦哦~92110 分钟前
AI赋能生物医学:从临床数据到药物分子性质预测实战培
人工智能·生物医学·药物分子
GIS数据转换器12 分钟前
城市排水生命线安全运行监测平台深度解析
java·运维·人工智能·python·安全·数据挖掘·无人机
虫无涯15 分钟前
本地离线大模型实战:Ollama + Llama 3.1 8B 全流程部署(适配VSCode Continue代码助手)
人工智能
Rocky Ding*30 分钟前
Latent Consistency Models:一篇读懂扩散模型的少步生成核心基础知识
人工智能·深度学习·机器学习·ai作画·stable diffusion·aigc·ai-native
大山佬32 分钟前
AI 边缘部署:MCU 上的轻量级目标检测,从 YOLO 到 TFLite Micro 的全链路优化
人工智能
数睿数据无代码开发33 分钟前
深度解析smardaten数据大屏:六大核心功能重塑可视化开发
人工智能·信息可视化
陈猪的杰咪34 分钟前
GitHub Copilot 2026计费新规:AI Credits消耗解析与节省策略
人工智能·ai·架构·github·copilot
贤哥哥yyds35 分钟前
GBK转UTF\-8编码自动转换工具 使用文档
python
学术头条42 分钟前
清华团队开源SCAIL-2:角色动画告别骨骼依赖,端到端还原视频中动作细节
人工智能·科技·机器学习·ai·开源·音视频·agi