Python sklearn ROC-AUC曲线只有一个特征和各种阈值

Python sklearn ROC-AUC曲线只有一个特征和各种阈值,python,scikit-learn,threshold,roc,Python,Scikit Learn,Threshold,Roc,我在这个领域比较新,现在有点困惑。。。我将解释:我的数据中有一些元素,每个元素的值介于0和1之间,并且有一个关联的标签(1,0)。我需要测试一些阈值,例如,当阈值=0.4时,所有>0.4的值将被预测为真(1),所有

我在这个领域比较新,现在有点困惑。。。我将解释:我的数据中有一些元素,每个元素的值介于0和1之间,并且有一个关联的标签(1,0)。我需要测试一些阈值,例如,当阈值=0.4时,所有>0.4的值将被预测为真(1),所有<0.4的值将被预测为假(0)。我认为我不需要机器学习分类器,因为根据我选择的阈值,我已经知道为每个元素分配哪个标签

这就是我到目前为止所做的:

prediction = []
for row in range(dfAggr.shape[0]):
    if dfAggr['value'].values[row] >= threshold:
        prediction.append(1)
    else
        prediction.append(0)

label = dfAggr['truth'].values.astype(int)

#ROC CURVE
fpr, tpr, thresholds = roc_curve(label, prediction)
roc_auc = auc(fpr, tpr)
plt.plot(fpr, tpr, lw=1, label='ROC (area = %0.2f)' % (roc_auc))
plt.plot([0, 1], [0, 1], '--', color=(0.6, 0.6, 0.6), label='Luck')
plt.xlim([-0.05, 1.05])
plt.ylim([-0.05, 1.05])
plt.grid()
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver Operating Characteristic')
plt.legend(loc="lower right")
plt.savefig("rocauc.pdf", format="pdf")
plt.show()
我得到这个图:

我认为这个图是非常错误的,因为我希望通过测试0到1之间的每个可能阈值来建立ROC曲线,以获得最佳的截止值


我所做的在概念上是错误的吗?

我假设您使用的是sklearn.metrics import roc\u curve中的
roc_曲线
功能将为您通过所有阈值,无需您自己预先选择一个阈值

你应该这样做:

predictions =  dfAggr['value'].values
label = dfAggr['truth'].values.astype(int)
fpr, tpr, thresholds = roc_curve(label, predictions)
[...]

你能告诉我们到目前为止你做了什么吗?