对caffe跑前向后生成的预测文件画ROC曲线

在前面一篇python版的caffe前向中,生成了一个用于画ROC曲线的txt文件,作为本代码的输入:

bash 复制代码
# -*- coding:utf-8
import matplotlib.pyplot as plt
from sklearn.metrics import roc_curve,auc
import numpy as np

colors = ['r', 'g', 'b', 'yellow', 'pink', 'black', 'purple', 'lime']

def get_output_file1(output_file, classNumber):
    prod_all=[]
    label_all=[]
    for line in open(output_file):
        x = line.split()
        prod=[]
        label=[]
        for i in range(int(classNumber)):
            prod.append(float(x[i]))
        tag = int(x[classNumber])#int(x[classNumber])
        for j in range(classNumber):
            if (j == tag):
                label.append(1)
            else:
                label.append(0)
        prod_all.append(prod)
        label_all.append(label)
    return  prod_all,label_all

def ROC(prod_all, label_all, classLabel, output_txtname, rgb="r", leged="line"):
    y_true = np.array(label_all)
    y_predict = np.array(prod_all)
    fpr, tpr, thr = roc_curve(y_true[:, classLabel], y_predict[:, classLabel])
    fid = open(output_txtname, 'a+')
    fid.writelines(str(classLabel)+"\n"+" fpr  tpr   thr"+"\n")
    for i in range(len(fpr)):
        fid.writelines( str(fpr[i])+" "+str(tpr[i])+" "+str(thr[i])+"\n")
    AUC=auc(fpr, tpr)
    plt.plot(fpr, tpr,  clip_on=False,color=rgb,label=leged+'-'+str(AUC)[0:6])
    plt.xlim([0.0, 1.0])
    plt.ylim([0.0, 1.0])
    plt.legend(loc='best')
    return AUC

if __name__ == '__main__':

    classNumber = 3
    classes = ['eye','nose', 'ear']

    input_txtname = '/.../roc.txt'

    output_txtname = './roc1_th.txt'
    output_imgname = './roc8.jpg'

    prod_all, label_all = get_output_file1(input_txtname, classNumber)
    AUC = []
    for i in range(classNumber):
        AUC.append(ROC(prod_all, label_all, i, output_txtname, rgb=colors[i], leged=classes[i]))
    #plt.title("AUC")
    #plt.show()
    plt.savefig(output_imgname)

这里的colors为每个类的曲线的颜色,颜色的数量要多于类别个数否则不够用。

相关推荐
康康的AI博客5 小时前
腾讯王炸:CodeMoment - 全球首个产设研一体 AI IDE
ide·人工智能
中达瑞和-高光谱·多光谱5 小时前
中达瑞和LCTF:精准调控光谱,赋能显微成像新突破
人工智能
mahtengdbb15 小时前
【目标检测实战】基于YOLOv8-DynamicHGNetV2的猪面部检测系统搭建与优化
人工智能·yolo·目标检测
Pyeako5 小时前
深度学习--BP神经网络&梯度下降&损失函数
人工智能·python·深度学习·bp神经网络·损失函数·梯度下降·正则化惩罚
清 澜6 小时前
大模型面试400问第一部分第一章
人工智能·大模型·大模型面试
哥布林学者6 小时前
吴恩达深度学习课程五:自然语言处理 第二周:词嵌入(四)分层 softmax 和负采样
深度学习·ai
不大姐姐AI智能体6 小时前
搭了个小红书笔记自动生产线,一句话生成图文,一键发布,支持手机端、电脑端发布
人工智能·经验分享·笔记·矩阵·aigc
虹科网络安全7 小时前
艾体宝方案 | 释放数据潜能 · 构建 AI 驱动的自动驾驶实时数据处理与智能筛选平台
人工智能·机器学习·自动驾驶
Deepoch7 小时前
Deepoc数学大模型:发动机行业的算法引擎
人工智能·算法·机器人·发动机·deepoc·发动机行业