python实现绘制多个模型的ROC曲线

实现功能:

python实现绘制多个模型的ROC曲线

输入模型的预测概率值以及测试样本的真实标签,绘制出模型的ROC曲线并计算出AUC值,同时实现将多个模型的ROC曲线绘制在一张图中进行比较。

实现代码:

import pandas as pd

import seaborn as sns

import matplotlib.pyplot as plt

from sklearn.metrics import roc_curve, auc

def Draw_ROC(file1,file2):

    data1=pd.read_excel(file1)

    data1=pd.DataFrame(data1)

    data2=pd.read_excel(file2)

    data2=pd.DataFrame(data2)

    fpr_CSNN,tpr_CSNN,thresholds=roc_curve(list(data1['真实标签']),

                                          list(data1['positive概率']))

    roc_auc_CSSSNN=auc(fpr_CSNN,tpr_CSNN)

    fpr_NN,tpr_NN,thresholds=roc_curve(list(data2['真实标签']),

                                      list(data2['positive概率']))

    roc_auc_DL=auc(fpr_NN,tpr_NN)

    font = {'family': 'Times New Roman',

            'size': 12,

            }

    sns.set(font_scale=1.2)

    plt.rc('font',family='Times New Roman')

    plt.plot(fpr_NN,tpr_NN,'purple',label='NN_AUC = %0.2f'% roc_auc_DL)

    plt.plot(fpr_CSNN,tpr_CSNN,'blue',label='CSNN_AUC = %0.2f'% roc_auc_CSSSNN)

    plt.legend(loc='lower right',fontsize = 12)

    plt.plot([0,1],[0,1],'r--')

    plt.ylabel('True Positive Rate',fontsize = 14)

    plt.xlabel('Flase Positive Rate',fontsize = 14)

    plt.show()

if __name__=="__main__":

    Draw_ROC('F:\医学大数据课题\RA预测\RA预测\CSSSDL_0.92-0.86-0.90.xlsx',

            'F:\医学大数据课题\RA预测\RA预测\DL_0.83-0.83-0.83.xlsx')

实现效果:

输入两个模型的预测概率值(阳性概率)以及测试样本的真实标签,绘制出如下ROC曲线并计算出曲线的AUC


喜欢记得点赞,在看,收藏,加关注(V订阅号:数据杂坛),将持续更新!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容