绘制ROC曲线
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import roc_curve, auc,roc_auc_score
y_one_hot=[[1,0,0],[0,1,0],[1,0,0],[1,0,0],[0,1,0]]
y_score = [[0.23,0.61,0.16],[0.23,0.61,0.16],[0.23,0.61,0.16],[0.23,0.61,0.16],[0.23,0.61,0.16]]
y_score1 = [[0.5,0.1,0.4],[0.6,0.2,0.2],[0.2,0.6,0.2],[0.23,0.61,0.16],[0.23,0.61,0.16]]
y_score2 = [[0.3,0.3,0.4],[0.4,0.3,0.3],[0.1,0.9,0.0],[1,0,0],[0.23,0.61,0.16]]
y_one_hot=np.asarray(y_one_hot)
y_score = np.asarray(y_score,np.float)
y_score1 = np.asarray(y_score1,np.float)
y_score2 = np.asarray(y_score2,np.float)
softmax_dl = y_score
softmax_svm = y_score1
softmax_rf = y_score2
y_label_dl = y_one_hot
y_label_svm = y_one_hot
y_label_rf = y_one_hot
'''
softmax_dl = np.load("softmax_deeplearning.npy")
softmax_svm = np.load("softmax_svm.npy")
softmax_rf = np.load("softmax_rf.npy")
y_label_dl = np.load("y_test_deeplearning.npy")
y_label_svm = np.load("y_test_svm.npy")
y_label_rf = np.load("y_test_rf.npy")
'''
aucAdl = roc_auc_score(y_label_dl,softmax_dl,average='micro')
aucAsvm = roc_auc_score(y_label_svm,softmax_svm,average='micro')
aucArf = roc_auc_score(y_label_rf,softmax_rf,average='micro')
n_classes =3
fpr = dict()
tpr = dict()
roc_auc = dict()
fpr[0], tpr[0], _ = roc_curve(y_label_dl.ravel(),softmax_dl.ravel())
roc_auc[0] = auc(fpr[0], tpr[0])
fpr[1], tpr[1], _ = roc_curve(y_label_svm.ravel(),softmax_svm.ravel())
roc_auc[1] = auc(fpr[1], tpr[1])
fpr[2], tpr[2], _ = roc_curve(y_label_rf.ravel(),softmax_rf.ravel())
roc_auc[2] = auc(fpr[2], tpr[2])
print("DL AUC:%f SVM AUC:%f RF AUC:%f "%(aucAdl,aucAsvm,aucArf))
plt.figure()
lw = 1
plt.plot(fpr[0], tpr[0], color='darkorange', lw=lw, label=u'DL (AUC = %0.3f)' % roc_auc[0])
plt.plot(fpr[1], tpr[1], color='r',lw=lw, label=u"SVM"+' (AUC = %0.3f)' % roc_auc[1])
plt.plot(fpr[2], tpr[2], color='g',lw=lw, label=u'RF'+' (AUC = %0.3f)' % roc_auc[2])
plt.plot([0, 1], [0, 1], color='gray', lw=lw, linestyle='--')
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.009])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver operating characteristic')
plt.legend(loc="lower right")
plt.show()