绘制ROC曲线

绘制ROC曲线

在这里插入图片描述

# -*- coding:utf-8 -*-
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')


# Compute ROC curve and ROC area for each class
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))#,roc_auc["average"]
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(fpr["average"],tpr["average"],color='navy',linestyle='--',label="Average (AUC = %0.3f)"%(roc_auc["average"]))
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()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值