Мне нужна помощь, чтобы построить некоторые кривые 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