【问题标题】:Calculating Precision and Recall by Class按类别计算精度和召回率
【发布时间】:2020-02-23 20:56:36
【问题描述】:

我正在使用两个类别的数据集,24,其中 2 是正面类别,4 是负面类别(关于情绪分析)。

我有一组来自我的模型的预测和一组实际值。我需要确定每个类的 Precision 和 Recall(正负类的 P 和 R 分数)。

代码如下:

preds = [4, 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  2,  4,  4,  4,  4,  4,  2,  2,  4,  4,  4,  4,  2]
actuals = [2,   4,  2,  4,  2,  4,  2,  4,  4,  4,  2,  4,  4,  4,  2,  2,  4,  4,  2,  4,  4,  4,  4,  4,  4,  2]

true_pos = 0
true_neg = 0
false_pos = 0
false_neg = 0
for pred, act in zip(preds, actuals):
    # 2 is positive, 4 is negative

    if(pred == 2 & act == 2):
        true_pos += 1

    elif(pred == 4 & act == 4):
        true_neg += 1

    elif(pred == 2 & act == 4):
        false_pos += 1

    elif(pred == 4 & act == 2):
        false_neg += 1

print("True Positive: ", true_pos)
print("True Negative: ", true_neg)
print("False Positive: ", false_neg)
print("False Negative: ", false_neg)

产量:

True Positive:  1
True Negative:  14
False Positive:  0
False Negative:  0

但是,我真的很纠结应该如何按班级计算这些指标。 This SO post 表示如何对整体执行此操作,但不是按类别。

理想情况下,我最终会得到如下输出:

Class 2 P Score: x
Class 2 R Score: x
Class 4 P Score: x 
Class 4 R Score: x

但我不确定如何计算。

如何调整我当前的逻辑以使用上述数据检查每个班级的 Precision 和 Recall 分数?

【问题讨论】:

  • 您能否显示您的确切样本输入和您想要的输出?
  • 我对您所说的 样本输入 的含义感到困惑。我认为,这些将是实际标签和预测标签,它们由程序开始时的两个列表组成。期望的输出是每个类的 Precision 和 Recall 分数,但问题是不知道如何构建函数或逻辑来计算它。
  • 我对你所说的“每个班级”的意思感到困惑。 “每个班级”到底是什么?你能显示“每个类”的示例输入吗?
  • 一个类是一个标签...predspredicted class 列表中的每个值都是一个类的预测。 actuals 是数据集的 ACTUAL 类的列表。这两个列表的存在是为了简化程序并提供最小的、完整的、可重复的样本。这相当于在输入数据集上运行 sklearn 的 train_test_split...
  • 是的,confusion_matrix(preds, actuals).ravel()sklearn 链接是我真正需要的。从那里我可以很容易地计算公式。这就是我遇到的麻烦。谢谢! @ycx

标签: python python-3.x precision-recall


【解决方案1】:

我想我知道该指向哪个方向:
https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html
这应该是您正在寻找的。

参考维基百科链接:https://en.wikipedia.org/wiki/Confusion_matrix
并阅读如何使用它。

【讨论】:

    猜你喜欢
    • 2012-11-26
    • 2013-07-02
    • 2014-11-20
    • 1970-01-01
    • 2016-07-26
    • 2017-11-13
    • 2010-10-14
    • 2019-12-14
    • 2015-12-05
    相关资源
    最近更新 更多