模型评估:精确率召回率准确率

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模型评估:精确率召回率准确率相关的知识,希望对你有一定的参考价值。

参考技术A

假设样本实际标签分为 相关 和 不相关
对样本进行预测,预测为相关的样本 召回 ,其余的 不召回

精准率和召回率的分子是相同,但分母不同
两者的关系可以用一个 P-R 图来展示:

ROC曲线:其中横坐标为假正率(FPR),纵坐标为真正率(TPR)。TPR越高,同时FPR越低(即 ROC曲线越陡 ),那么 模型的性能就越好 。ROC曲线 无视样本不平衡 。

AUC曲线:等于ROC曲线下面积,可看做 某个随机正类别样本排列在某个随机负类别样本之上的概率 。

多分类问题可以将正样本为1,负样本为0
如 类A、B、C 正样本为A,负样本为B、C,则

参考文章:

多分类任务中精确率(Precision)召回率(Recall)以及准确率(Accuracy)评估指标的计算

1 三个评价指标的意义

精确率:在**被识别为正类别的样本(预测分类结果)中,确实为正类别的比例是多少
召回率:在
所有正类别样本(真实分类结果)**中,被正确识别为正类别的比例是多少?
准确率:在所有样本中,被正确识别的样本的比例是多少?

2 二分类中三个评价指标的计算公式

  • 若一个实例为正类,实际预测为正类,即为真正类(True Positv TP)
  • 若一个实例为负类,实际预测为负类,即为真负类(True Negative TN)
  • 若一个实例为负类,实际预测为正类,即为假正类(False Positv FP)
  • 若一个实例为正类,实际预测为负类,即为假负类(True Negative, TN)
    准确率(正确率)=所有预测正确的样本/总的样本 (TP+TN)/总
    精确率=将正类预测为正类/所有预测为正类 TP/(TP+FP)
    召回率=将正类预测为正类/所有真正的正类 TP/(TP+FN)
    F值=精确率召回率2/(精确率+召回率) (F值为精确率和召回率的调和平均值)

3 多分类中三个指标的计算方式

one vs rest 的方式
具体来说,就是考虑某个类别的时候,其余的类别均被视为负类。如此,在多分类场景中,可以得到每个类别的精确率和召回率的值。
而如果要计算整个混淆矩阵的精确率和召回率,就涉及到计算策略。两种:根据每个类别的样例数目加权计算,或者是简单干脆,将每个类别的指标值取平均值

4 多分类的例子

混淆矩阵

每个类别十个样本

通过sklearn调用metrics.classification_report得到的结果是:

计算比较简单,可以手算一下。

5 待解决问题

  • 为什么召回率和准确率的值会相同呢?
    这不是一个偶然的现象,很多都是如此,大神请不吝赐教!

参考文章:
1 多分类里准确率和召回率等评估指标应如何计算?
2 分类–精确率和召回率
3 基于混淆矩阵计算多分类的准确率和召回率
4 准确率、精确率、召回率、F1

以上是关于模型评估:精确率召回率准确率的主要内容,如果未能解决你的问题,请参考以下文章

[机器学习与scikit-learn-51]:模型评估-图解分类模型的评估指标(准确率精确率召回率)与代码示例

R语言glm拟合logistic回归模型:模型评估(模型预测概率的分组密度图混淆矩阵准确率精确度召回率ROCAUC)PRTPlot函数获取logistic模型最优阈值(改变阈值以优化)

机器学习之分类模型评估指标及sklearn代码实现

分类指标

牢记分类指标:准确率、精确率、召回率、F1 score以及ROC

【基础概念】准确率和召回率