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

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
大数据开发治理平台 DataWorks,不限时长
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 模型评估是深度学习和机器学习中非常重要的一部分,用于衡量模型的性能和效果。本文将逐步分解混淆矩阵,准确性,精度,召回率和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

目录
相关文章
|
9月前
|
机器学习/深度学习
评分是机器学习领域中的一种评估模型性能的指标
评分是机器学习领域中的一种评估模型性能的指标
59 1
|
2月前
|
编解码 算法 数据挖掘
【数据挖掘】聚类趋势估计、簇数确定、质量测定等评估方法详解(图文解释 超详细)
【数据挖掘】聚类趋势估计、簇数确定、质量测定等评估方法详解(图文解释 超详细)
73 0
构建一个分类模型,如何选择合适的损失函数和评估指标
构建一个分类模型,如何选择合适的损失函数和评估指标
|
12天前
|
机器学习/深度学习 算法 数据可视化
【机器学习】分类与预测算法的评价与优化
【机器学习】分类与预测算法的评价与优化
26 0
|
8月前
|
机器学习/深度学习 算法 前端开发
【机器学习基础】机器学习的模型评估(评估方法及性能度量原理及主要公式)
【机器学习基础】机器学习的模型评估(评估方法及性能度量原理及主要公式)
517 0
|
机器学习/深度学习 Python
在机器学习回归问题中,你应该使用哪种评估指标?
在机器学习回归问题中,你应该使用哪种评估指标?
229 0
在机器学习回归问题中,你应该使用哪种评估指标?
|
机器学习/深度学习 算法 测试技术
机器学习中评估分类模型性能的10个重要指标(二)
机器学习中评估分类模型性能的10个重要指标(二)
265 0
机器学习中评估分类模型性能的10个重要指标(二)
|
机器学习/深度学习 测试技术
机器学习中评估分类模型性能的10个重要指标(一)
机器学习中评估分类模型性能的10个重要指标(一)
228 0
机器学习中评估分类模型性能的10个重要指标(一)
|
机器学习/深度学习 数据挖掘 PyTorch
多标签分类场景下的模型评估指标
指标在机器学习或深度学习领域扮演着相当重要的角色。我们从根据问题选择指标开始,以了解特定模型的基线分数。 在本博客中,我们研究了多标签分类的最佳和最常用的指标,以及它们的不同之处。 接下来,让我们深入了解什么是多标签分类,以防万一您需要它。 如果我们有关于狗的特征的数据,我们可以预测它属于哪个品种和宠物类别。 在物体检测的情况下,多标签分类为我们提供了图像中所有对象的列表,如下图所示。我们可以看到,分类器检测到图像中的 3 个对象。 如果训练对象的总数为 4 个,则可以将其表示成如下列表[1 0 1 1](对应的对象为[狗、人、自行车、卡车])。这种分类被称为多标签分类。
|
机器学习/深度学习
sklearn中针对不同分类场景模型评估指标函数概述
在sklearn中,sklearn.metrics 模块下实现了一些损失、评分和实用函数来衡量分类性能。某些指标可能需要正类(positive class)、置信度值(confidence values)或二元决策值(binary decisions values)的概率估计。并且大多数函数都实现了允许每个样本通过 sample_weight 参数提供对总分的加权贡献。 下面我们就来简单介绍下sklearn针对不同分类场景实现的模型评估指标函数。