【问题标题】:Accuracy and Recall values are sameAccuracy 和 Recall 值相同
【发布时间】:2021-04-03 00:40:07
【问题描述】:

我已经使用 Python 编程语言使用 Pytorch 训练了 CNN 模型,我尝试使用 sklearn.metrics 从测试数据集中获取指标,如下所示。但我在准确性和召回率方面得到了相同的结果。是否有任何显示指标的最佳实践?这个结果是真的吗?

test_accuracy_score = accuracy_score(output_list, prediction_list)
test_precision_score = precision_score(output_list, prediction_list, average=‘weighted’)
test_f1_score = f1_score(output_list, prediction_list, average=‘weighted’)
test_recall_score = recall_score(output_list, prediction_list, average=‘weighted’)

【问题讨论】:

    标签: python python-3.x machine-learning deep-learning conv-neural-network


    【解决方案1】:

    如果您想要详细的结果,只需导入 classification report and print:

    print(classification_report(output_list, prediction_list)) 还显示了对每个类的支持(实例数)。

    您的加权召回返回根据每个类的元素数量调整的每个类的召回率。所以我们有accuracy,它被定义为:

    acc = (TP + TN) / (TP + TN + FP + FN) -- T 表示真 P 表示正等...

    为 classA 和 classB 定义召回(假设二元分类)

    recall1 = TP / (TP + FN) 用于第 1 类

    recall2 = TP / (TP + FN) for class2 转换为 TN / (TN + FP)(如果您认为 class1 是正面的,而 class2 是负面的)

    加权召回返回数字

    w_recall = ElementsOfClass1overAll *recall1 + ElementsOfClass2overAll *recall2 = ElementsOfClass1overAll * (TP / (TP + FN)) + ElementsOfClass2overAll * (TN / (TN + FP))

    所以,我们可以说,如果 ElementsOfClass1overAll 和 ElementsOfClass2overAll 相等,那么 w_recall 正好等于您的准确度(意味着如果一半的元素属于 A 类,一半属于 B 类)。

    【讨论】:

      猜你喜欢
      • 2013-07-09
      • 2019-06-01
      • 1970-01-01
      • 2021-05-19
      • 1970-01-01
      • 2019-06-25
      • 1970-01-01
      • 2015-07-19
      • 2016-09-18
      相关资源
      最近更新 更多