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

1 三个评价指标的意义

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

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

  • 若一个实例为正类,实际预测为正类,即为真正类(True Positv TP)
  • 若一个实例为负类,实际预测为负类,即为真负类(True Negative TN)
  • 若一个实例为负类,实际预测为正类,即为假正类(False Positv FP)
  • 若一个实例为正类,实际预测为负类,即为假负类(True Negative, TN)多分类任务中精确率(Precision)、召回率(Recall)以及准确率(Accuracy)评估指标的计算_第1张图片
    准确率(正确率)=所有预测正确的样本/总的样本 (TP+TN)/总
    精确率=将正类预测为正类/所有预测为正类 TP/(TP+FP)
    召回率=将正类预测为正类/所有真正的正类 TP/(TP+FN)
    F值=精确率召回率2/(精确率+召回率) (F值为精确率和召回率的调和平均值)

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

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

4 多分类的例子

混淆矩阵

每个类别十个样本
多分类任务中精确率(Precision)、召回率(Recall)以及准确率(Accuracy)评估指标的计算_第2张图片

通过sklearn调用metrics.classification_report得到的结果是:
多分类任务中精确率(Precision)、召回率(Recall)以及准确率(Accuracy)评估指标的计算_第3张图片
计算比较简单,可以手算一下。

5 待解决问题

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

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

你可能感兴趣的:(Python琐碎知识点,分类,机器学习,python)