gpt4 book ai didi

python - sklearn.metrics.precision_recall_curve : Why are the precision and recall returned arrays instead of single values

转载 作者:太空宇宙 更新时间:2023-11-03 11:23:35 25 4
gpt4 key购买 nike

我正在为我最近准备的数据集计算现成算法的精度和召回率。

这是一个二元分类问题,我希望计算我构建的每个分类器的精度、召回率和 f 分数。

test_x, test_y, predics, pred_prob,score = CH.buildBinClassifier(data,allAttribs,0.3,50,'logistic')

构建分类器方法基本上是构建一个分类器,拟合训练数据并返回 test_x(测试数据的特征)、test_y(真实标签)、predict(分类器做出的预测)、red_prob(预测概率LogisiticRegression.predict_proba 方法)。

下面是计算precision-recall的代码:

from sklearn.metrics import precision_recall_curve

pr, re, _ = precision_recall_curve(test_y,pred_prob,pos_label=1)
pr
(array([ 0.49852507, 0.49704142, 0.49554896, 0.49702381, 0.49850746,
0.5 , 0.5015015 , 0.50301205, 0.50453172, 0.50606061,
. . . . . . .
0.875 , 1. , 1. , 1. , 1. ,
1. , 1. , 1. , 1. ])
re
array([ 1. , 0.99408284, 0.98816568, 0.98816568, 0.98816568,
0.98816568, 0.98816568, 0.98816568, 0.98816568, 0.98816568,
. . . . . . .
0.04142012, 0.04142012, 0.03550296, 0.0295858 , 0.02366864,
0.01775148, 0.01183432, 0.00591716, 0. ]))

我不明白为什么是精度和召回数组?他们不应该只是单个数字吗?

既然精度计算为 tpf/(tpf+fpf) 并且类似地记忆为定义?

我知道通过以下代码计算平均精确召回率,但不知何故看到数组而不是 tpf、fpf、精确率和召回率让我想知道发生了什么。

from sklearn.metrics import precision_recall_fscore_support as prf

precision,recall,fscore,_ = prf(test_y,predics,pos_label=1,average='binary')

编辑:但是如果没有 averagepos_label 参数,它会报告每个类的精度。有人可以解释这两种方法的输出之间的区别吗?

最佳答案

来自 precision_recall_curve 的 sklearn 文档:

Compute precision-recall pairs for different probability thresholds.

逻辑回归等分类器模型实际上并不输出类标签(如“0”或“1”),它们输出概率(如 0.67)。这些概率告诉您输入样本属于特定类别的可能性,例如正(“1”)类别。但是您仍然需要选择一个概率阈值,以便算法可以将概率 (0.67) 转换为类别 ("1")。

如果您选择阈值 0.5,则所有计算概率大于 0.5 的输入样本都将被分配到正类。如果您选择不同的阈值,您会得到分配给正类和负类的不同数量的样本,因此会产生不同的准确率和召回率分数。

关于python - sklearn.metrics.precision_recall_curve : Why are the precision and recall returned arrays instead of single values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38165273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com