凯哥英语视频
labelme的json文件转YOLO的xml文件
前言
基础好的就别看了 , 我用的死方法 ,
数据转化都不会… 基础差的来看 .
数据文件下载
数据文件在百度网盘
数据文件下载
https://pan.baidu.com/s/1_wtmL8Ve1dCAg77TEumA4g
提取码:520y
效果图
代码解释
一共5个分类 , [0,1,2,3,4] , 对应的准确率为0 , 1 , 2, 3 , 4 的列
其实红色的real_label,转换数据之后就是右边蓝色的部分, 你是真的,就取1,其他类就取0.
代码部分
代码我自己跑过的, 绝对ok
import pandas as pd
from sklearn import metrics
from sklearn.metrics import auc
import matplotlib.pyplot as plt
CSV_file = 'F:\\rizhifuzhu\\2021\\202105\\roc0518\\f.csv'
p_csv = pd.read_csv(CSV_file,usecols=['r0','0','r1','1','r2','2','r3','3','r4','4'])
fpr = dict()
tpr = dict()
roc_auc = dict()
y_label0= p_csv['r0'].to_numpy()
y_pre0 = p_csv['0'].to_numpy()
fpr['0'], tpr['0'], thersholds = metrics.roc_curve(y_label0, y_pre0)
roc_auc['0'] = auc(fpr['0'], tpr['0'])
print(roc_auc['0'])
y_label1 = p_csv['r1'].to_numpy()
y_pre1 = p_csv['1'].to_numpy()
# print(y_label1)
# print(y_pre1)
fpr['1'], tpr['1'], thersholds = metrics.roc_curve(y_label1, y_pre1)
roc_auc['1'] = auc(fpr['1'], tpr['1'])
print(roc_auc['1'])
y_label2 = p_csv['r2'].to_numpy()
y_pre2 = p_csv['2'].to_numpy()
fpr['2'], tpr['2'], thersholds = metrics.roc_curve(y_label2, y_pre2)
roc_auc['2'] = auc(fpr['2'], tpr['2'])
print(roc_auc['2'])
y_label3 = p_csv['r3'].to_numpy()
y_pre3 = p_csv['3'].to_numpy()
fpr['3'], tpr['3'], thersholds = metrics.roc_curve(y_label3, y_pre3)
roc_auc['3'] = auc(fpr['3'], tpr['3'])
print(roc_auc['3'])
y_label4 = p_csv['r4'].to_numpy()
y_pre4 = p_csv['4'].to_numpy()
fpr['4'], tpr['4'], thersholds = metrics.roc_curve(y_label4, y_pre4)
roc_auc['4'] = auc(fpr['4'], tpr['4'])
print(roc_auc['4'])
colors = ['aqua', 'darkorange', 'deeppink', 'navy', 'cornflowerblue']
lw=2
plt.figure()
n_classes = ['0', '1', '2', '3', '4']
# plt.plot(fpr['1'], tpr['1'], color=colors[int('1')], lw=lw,
# label='ROC curve of class {0} (area = {1:0.2f})'
# ''.format('1', roc_auc['1']))
for i in n_classes:
roc_auc[i] = auc(fpr[i], tpr[i])
plt.plot(fpr[i], tpr[i], color=colors[int(i)], lw=lw,
label='ROC curve of class {0} (AUC = {1:0.2f})'
''.format(i, roc_auc[i]))
# plt.plot(fpr, tpr, 'k--', label='ROC (area = {0:.2f})'.format(roc_auc), lw=2)
plt.plot([0, 1], [0, 1], 'k--', lw=lw)
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Some extension of Receiver operating characteristic to multi-class')
plt.legend(loc="lower right")
plt.show()
别的也没啥说的, 如果觉得 ok 就给我一键三连吧!
欢迎各位大佬留言吐槽,也可以深入交流~