在这里我试图通过使用Keras查找FAR和FRR来获得ERR,但是我无法计算FAR和ERR 如何计算FAR和FRR
将y_test中的每一行的EER计算为笔画
pred=model.predict(X_test)
y_true=[]
y_pred=[]
index=0
EER=[]
thresh=[]
for n in range(test_stock_index.size-2):
for z in range(test_stock_index[n+1]-test_stock_index[n]):
y_true.extend(y_test[index])
y_pred.extend(pred[index])
index+=1
#calculate the EER
fpr, tpr, threshold = metrics.roc_curve(y_true, y_pred)
fnr = 1 - tpr
EER.append(brentq(lambda x : 1. - x - interp1d(fpr, tpr)(x), 0., 1.))
根据输入的接受率,将y_test中每行的EER计算为笔划
pred=model.predict(X_test)
y_true=[]
y_pred=[]
AR=0.90 #Acceptance rate
index=0
EER=[]
thresh=[]
for n in range(test_stock_index.size-2):
for z in range(test_stock_index[n+1]-test_stock_index[n]):
if pred[index,np.where(y_test[index] == 1)[0][0]] >=AR:
y_true.append(1)
else:
y_true.append(0)
y_pred.append(pred[index,np.where(y_test[index] == 1)[0][0]])
index+=1
#cal the EER
fpr, tpr, threshold = metrics.roc_curve(y_true, y_pred)
fnr = 1 - tpr
EER.append(brentq(lambda x : 1. - x - interp1d(fpr, tpr)(x), 0., 1.))
#thresh.append(interp1d(fpr, threshold)(EER[n]))
y_true=[]
y_pred=[]
print(ERR)
我尝试了其他操作,但返回
分类指标不能同时处理二进制和连续 目标
EER=[]
thresh=[]
for n in range(test_stock_index.size-2):
for z in range(test_stock_index[n+1]-test_stock_index[n]):
y_true.extend(y_test[index])
y_pred.extend(pred[index])
index+=1
#calculate the EER
tn, fp, fn, tp = confusion_matrix(y_true, y_pred)
FAR = FPR = fp/(fp + tn)
FRR = FNR = fn/(fn + tp)
EER.append(brentq(lambda x : 1. - x - interp1d(FAR, FRR)(x), 0., 1.))