python正确的的画出ROC曲线 |
您所在的位置:网站首页 › spss显著性为只有一个点出来 › python正确的的画出ROC曲线 |
ROC曲线简介
受试者工作特征曲线 (receiver operating characteristic curve,简称ROC曲线),又称为感受性曲线(sensitivity curve)。得此名的原因在于曲线上各点反映着相同的感受性,它们都是对同一信号刺激的反应,只不过是在几种不同的判定标准下所得的结果而已。为了了解ROC曲线的意义,我们首先得了解一些变量。以下定义引自维基百科 最近在做一些分类的任务,评价中的ROC曲线在很多地方都会用得到,特别在论文中。在此记录一下在做ROC曲线的过程中遇到的一些坑。 1.画出来的ROC曲线是只有一个拐点的曲线
就像上图一样,输出的图像看起来不经过远点,将坐标轴的刻度设置的大一些,为[-0.05,1.05]即可。 分类器如何输出概率SVM分类器中,将参数probability=True设置即可,神经网络中,在最后的全连接层输出结果上加上Softmax操作即可输出概率。 代码 ''' Author: weifeng liu Date: 2022-02-12 20:53:17 LastEditTime: 2022-02-12 21:07:02 LastEditors: Please set LastEditors Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE FilePath: \lirui\new_Data\roc.py ''' import pandas as pd import numpy as np import matplotlib.pyplot as plt import sklearn.metrics as metrics def plot_ROC(labels,preds,savepath): """ Args: labels : ground truth preds : model prediction savepath : save path """ fpr1, tpr1, threshold1 = metrics.roc_curve(labels, preds) ###计算真正率和假正率 roc_auc1 = metrics.auc(fpr1, tpr1) ###计算auc的值,auc就是曲线包围的面积,越大越好 plt.figure() lw = 2 plt.figure(figsize=(10, 10)) plt.plot(fpr1, tpr1, color='darkorange', lw=lw, label='AUC = %0.2f' % roc_auc1) ###假正率为横坐标,真正率为纵坐标做曲线 plt.plot([0, 1], [0, 1], color='navy', lw=lw, linestyle='--') plt.xlim([-0.05, 1.05]) plt.ylim([-0.05, 1.05]) plt.xlabel('1 - Specificity') plt.ylabel('Sensitivity') # plt.title('ROCs for Densenet') plt.legend(loc="lower right") # plt.show() plt.savefig(savepath) #保存文件 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |