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

Posted MarToony|名角

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多分类任务中精确率(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

以上是关于多分类任务中精确率(Precision)召回率(Recall)以及准确率(Accuracy)评估指标的计算的主要内容,如果未能解决你的问题,请参考以下文章

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

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

机器学习算法:分类评估方法

R语言使用yardstick包的pr_curve函数评估多分类(Multiclass)模型的性能查看模型在多分类每个分类上的ROC曲线(precision(精准率),R代表的是recall(召回率)

R语言使用yardstick包的pr_curve函数评估多分类(Multiclass)模型的性能查看模型在多分类每个分类上的ROC曲线(precision(精准率),R代表的是recall(召回率)

准确率accuracy精确率precision和召回率recall