【发布时间】:2020-03-05 17:03:25
【问题描述】:
我有一个由 matplotlib 生成的直方图,我一直在使用 sklearn 指标来计算精确召回曲线。这是显示依赖于召回的直方图的阳性预测值 (PPV) 的图。这是直方图:
生成的曲线采用以下形式:
我认为负预测值 (NPV) 是 PPV 的倒数,所以我的猜测是简单地做 NPV = 1 - PPV 但这并没有奏效。到目前为止,我一直在使用 sklearn 模块的度量库中的函数来生成 ROC 曲线和精确召回曲线。但到目前为止,我还没有发现任何特定的指标曲线可以做像负预测值这样的事情。这是我一直用来从直方图生成曲线的源代码:
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
import pylab
from sklearn import metrics
data1 = np.loadtxt('1.txt')
data2 = np.loadtxt('2.txt')
x = np.transpose(data1)[1]
y = np.transpose(data2)[1]
background = (1 + y)/2
signal = (1 + x)/2
classifier_output = np.concatenate([background,signal])
true_value = np.concatenate([np.zeros_like(background, dtype=int), np.ones_like(signal, dtype=int)])
precision, recall, threshold = metrics.precision_recall_curve(true_value, classifier_output)
plt.plot(recall, precision)
plt.show()
在度量标准或一般情况下,有没有其他方法可以计算像这样的直方图的 NPV?
【问题讨论】:
标签: python scikit-learn metrics roc