分类变量的roc曲线,Python roc曲线

  分类变量的roc曲线,Python roc曲线

  最近帮一个人做了一个多分类画皇家对空观察队曲线下的面积曲线的东西,不过最后那个人不要了,还被说了一顿,心里很是不爽,反正,我写代码的还是要继续写代码的,所以我准备把我修改的代码分享开来,供大家研究学习。处理的数据大改是这种文件格式文件:

  图像y_real y_predict 0其他一豹纹2弥漫3斑片四黄斑/mnt/AI/HM/izy 2020 05 31 C5/299/train/0其他/im 005111(复制)。jpg 0018.31 e-197.59 e-134.47 e-152.46 e-14/mnt/AI/HM/izy 2020 05 31 C5/299/train/0其他/IM005201(副本).jpg 0015.35 e-174.38 e-118.80 e-133.85 e-11/mnt/AI/HM/izy 2020 05 31 C5/299/train/0其他/IM004938 (4)(副本).e-116.26 e-121.02 e-11/mnt/AI/HM/izy 2020 05 31 c 5/299/train/0其他/IM004349 (3)(副本).jpg 0015.66 e-141.87 e-096.50 e-093.29 e-09/mnt/AI/HM/izy 2020 05 31 C5/299/train/0其他/IM004673 (5)(副本).jpg 0015.51 e-179.30 e-121.33 e-132.54 e-12/mnt/AI/HM/izy 2020 05 31 C5/299/train/0其他/IM004450 (5)(副本).jpg 0014.81 e-173.75 e-123.96 e-136.17 e-13

  导入基础的熊猫和深度学习处理函数将熊猫作为警察局从keras.utils导入到_分类导入数据data=pd.read_excel(5分类新. xlsx)data.head()导入机器学习库从sklearn.metrics导入precision _ recall _ curve将numpy导入为NP从绘制精美的图表导入pyplotfrom sklearn.metrics导入f1_scorefrom sklearn.metrics导入roc曲线,auc把地面实况;真值(机器学习)提取出来true_y=data[ y_real].to _ numpy()true _ y=to _ categorial(true _ y)把每个类别的数据提取出来PM_y=data[[ 0其他, 1豹纹, 2弥漫, 3斑片, 4黄斑]].to_numpy()PM_y.shape计算每个类别的定期用量法(固定期限要求)和tprn _ classes=PM _ y . shape[1]FPR=dict()TPR=dict()roc _ AUC=dict()for I in range(n _ classes):FPR[i],tpr[i],_=roc_curve(true_y[:I],PM_y[:i]) roc_auc[i]=auc(fpr[i],tpr[i])计算宏aucfrom scipy导入解释#首先聚合所有假阳性率全FPR=NP。唯一(NP。concatenate([FPR[I]for I in range(n _ classes)])#然后在该点对所有皇家对空观察队曲线进行插值mean _ TPR=NP。范围内I的zeros _ like(all _ FPR)(n _ classes):mean _ TPR=interp(all _ FPR,FPR[I],tpr[i])#最后对其进行平均并计算AUC mean _ TPR/=n _ classes sfpr[。tpr[宏])画图将matplotlib.pyplot作为血小板计数从循环器导入循环从matplotlib.ticker导入FuncFormatterlw=2#地块所有皇家对空观察队曲线plt.figure()标签=[类别0 ,类别1 ,类别2 ,类别3 ,类别4 ]PLTPlot(FPR[宏观],tpr[宏观],label=宏观平均ROC曲线(面积={ 0:0.4f }) .format(roc_auc[macro],color=navy ,linestyle=:,line width=4)colors=cycle([ aqua , darkorange , cornflowerblue , blue , yellow])for i,color in zip(range(n_classes),colors): plt.plot(fpr[i],tpr[i],color=color,lw=lw,label=labels[i] (area={0:0.4f}) .format(roc_auc[i]))plt.plot([0,1],[0,1], k -,lw=lw)plt.xlim([0.0,1.0])plt.ylim([0.0,1.05])。xlabel( 1-特异性(%))plt.ylabel(灵敏度(%))plt.title(接收方操作特征对多类的某种扩展)def to_percent(temp,position):返回“%1展示

  上述的代码是在朱皮特中运行的,所以是分开的

  参考文献[1].皇家对空观察队原理介绍及利用大蟒实现二分类和多分类的皇家对空观察队曲线。https://博客。csdn。网/XYZ 1584172808/文章/详情/81839230

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: