当前位置: 首页 > 知识库问答 >
问题:

用python计算roc曲线二元分类器的TPR和FPR

毕瀚
2023-03-14

我试图计算真阳性率和假阳性率,然后手工绘制roc曲线,因为我想检查我从sklearn获得的roc曲线。度量roc_曲线函数。但是我得到的fpr(在x轴上)和tpr(在y轴上)的roc曲线似乎是互换的。我正在做一个梯度下降的二元分类器,有两个标签正负。用于tpr、fpr计算的tensorflow代码的相关部分如下所示:

prediction=tf.nn.softmax(tf.matmul(X,w)+b)
pred_pos= prediction.eval(feed_dict={X: x_pos})
pred_neg= prediction.eval(feed_dict={X: x_neg})
tpr=[]
fpr=[]
for j in range(100):
    pos=0
    neg=0
    n=j/100.
    for i in range(0,len(pred_pos)):
            if(pred_pos[i,1]>=n):
                pos+=1
            if(pred_neg[i,1]>=n):
                neg+=1
    tpr.append(pos/len(x_pos))
    fpr.append(neg/len(x_neg))

f= open('output.txt','wb')
arr=np.array([fpr,tpr])
arr=arr.T          
np.savetxt(f,arr,fmt=['%e','%e'])    
f.close()

共有1个答案

袁建木
2023-03-14

我发现了代码的问题。而不是if(pred_pos[i,1]

 类似资料:
  • 我训练了一名CNN,将图像分为5类。但是,当我试图绘制每个类别相对于其他类别的曲线时,所有5个类别几乎都有一条对角线曲线,其约为0.5。我不知道出了什么问题。 该模型的准确率应该在86%左右。 代码如下: "prediction_prob"变量包含: 而“正确”变量包含每个测试图像的正确标签: 我想我遵循了网站上提到的内容。 生成的tpr[i]和fpr[i]变量变为线性相关,因此AUC变为0.5

  • 这个问题真的很奇怪。 我正在将一个例程转换为SIMD指令(我对SIMD编程非常陌生),但遇到以下代码位的问题: 问题:假设有一个SIMD实现,我只是试图计算一个正确的向量进行处理,那么处理依赖于它以前的值的正确方法是什么? 反过来,类似于函数编程的折叠实现也同样有用,因为我试图理解如何更好地提升数据依赖性,而不是为了优化而进行优化。 最后,如果你能推荐一些文献,请做。不知道如何谷歌这个话题。

  • 问题内容: 我有一个描述为(startX,startY)到(anchorX,anchorY)的二次贝塞尔曲线,并使用一个控制点(controlX,controlY)。 我有两个问题: (1)我想基于x点确定该曲线上的y点。 (2)然后,给定贝塞尔曲线上的线段(由贝塞尔曲线上的两个中间点定义(startX’,startY’,anchorX’,anchorY’)),我想知道该线段的控制点使其与原始贝塞

  • 在scikit learn中,您可以使用 我只对曲线中假阳性率小于0.1的部分感兴趣。 给定这样一个阈值假阳性率,如何仅计算阈值以上曲线部分的AUC? 以下是一个具有多条ROC曲线的示例,用于说明: scikit学习文档展示了如何使用roc_曲线 有没有一种简单的方法可以从这个到部分AUC? 似乎唯一的问题是如何计算fpr=0.1时的tpr值,因为roc_曲线不一定给出该值。

  • 本文向大家介绍浅谈ROC曲线的最佳阈值如何选取,包括了浅谈ROC曲线的最佳阈值如何选取的使用技巧和注意事项,需要的朋友参考一下 为了获取ROC曲线的最佳阈值,需要使用一个指标--约登指数,也称正确指数。 借助于matlab的roc函数可以得出计算。 至此计算结束了。 补充拓展:利用阈值分割目标图像 一.全局阈值 方法一:OTSU方法 otsu法(最大类间方差法,有时也称之为大津算法)使用的是聚类的

  • 实际的y值是y=[0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 1. 0. 1. 0. 1. 0. 0. 1. 1. 0. 0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.