Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用numpy计算精度和准确度_Python_Numpy - Fatal编程技术网

Python 使用numpy计算精度和准确度

Python 使用numpy计算精度和准确度,python,numpy,Python,Numpy,假设两个列表true\u值=[1,0,1,0,0,1,1,0,0,1,1,0]和预测=[1,1,0,1,0,1,1,1,1,0]。如何使用numpy计算精度和精度 如果您真的想自己计算,而不是使用中的库,只需计算(真|假)(正|负)的数量,并将这些值插入公式: tp = 0 tn = 0 fp = 0 fn = 0 for t,p in zip(true_values, predictions): if t == p: if p == 1: tp +=

假设两个列表
true\u值=[1,0,1,0,0,1,1,0,0,1,1,0]
预测=[1,1,0,1,0,1,1,1,1,0]
。如何使用numpy计算精度和精度


如果您真的想自己计算,而不是使用中的库,只需计算(真|假)(正|负)的数量,并将这些值插入公式:

tp = 0
tn = 0
fp = 0
fn = 0

for t,p in zip(true_values, predictions):
   if t == p:
       if p == 1:
           tp += 1
       else:
           tn += 1
   else:
       if p == 1:
           fn += 1
       else:
           fp += 1

accuracy = (tp + tn) / (tp + tn + fp + fn)
precision = tp / (tp + fp)

这有一个很好的信息框,其中包含的公式正好使用了这些值。

这就是
sklearn
,它在窗帘后面使用
numpy
,用于:

from sklearn.metrics import precision_score, accuracy_score

accuracy_score(true_values, predictions), precision_score(true_values, predictions)
输出:

(0.3333333333333333, 0.375)

这是我想出的最简洁的方法(假设没有sklearn),但可能会更短

我只想回答精确性问题,因为我发布了一份精确性问题的副本,每个线程应该有一个问题:

sum(map(lambda x, y: x == y == 1, true_values, predictions))/sum(true_values)
如果您绝对想使用Numpy,请使用
np.sum

以下是平均值:

np.equal(true_values, predictions).mean()

@托马斯:不,我在金融领域。事实上,我工作需要它。这能回答你的问题吗@Nicolas Gervais不,我不是在家工作我不能用sklearn。你想让我以更简洁的方式使用numpy吗?虽然这是正确的,但几乎没有人用这种方式计算这些值:)@Quang Hoang:同意:)我发布它主要是为了教育目的。来吧,为了完整起见,也发布准确代码。仅供参考,在这个网站上结束问题的原因是“帖子里有不止一个问题”,我想看看你的答案是否准确。Please@David为确保准确性,请删除分子中的
==1
部分,并用分母中的
len
替换
sum
精度=(预测值*真值)。sum()/predictions.sum()
0.5
np.equal(true_values, predictions).mean()