我需要帮助为我的问题绘制一些ROC曲线。这是我的问题:从模拟中我有两个结果(基本上是考虑到两个假设的检测器的性能),并且我有一个平均值和一个标准偏差。总共我有4个数字。我知道我的结果呈正态分布。我想以简单的方式绘制ROC曲线,但在网上我发现只有使用sklearn的教程,对我来说似乎有点太多了!有什么简单的方法吗?
这是我编写的代码,但似乎无法正常工作!
def Normal_Distribution(Samples,mean,std):
x = np.linspace(1/Samples,2.0,Samples) + mean
Norm = 1.0 / np.sqrt(2*np.pi*(std**2))
pdf_normal_dist = Norm*np.exp(-((x-mean)**2)/(2.0*(std**2)))/len(x)
pdf_normal_dist = pdf_normal_dist/np.sum(pdf_normal_dist)
return pdf_normal_dist
def ROC(Number_Samples,bad_pdf, good_pdf):
x = np.arange(Number_Samples)
#Total
total_bad = np.sum(bad_pdf)
total_good = np.sum(good_pdf)
#Cumulative sum
cum_TP = 0
cum_FP = 0
#TPR and FPR list initialization
TPR_list=[]
FPR_list=[]
#Iteratre through all values of x
for i in range(len(x)):
cum_TP+=good_pdf[len(x)-1-i]
cum_FP+=bad_pdf[len(x)-1-i]
FPR=cum_FP/total_bad
TPR=cum_TP/total_good
TPR_list.append(TPR)
FPR_list.append(FPR)
return FPR_list,TPR_list