从多个列值绘制多个 ROC

Plot multiple ROC from multiple column values

假设我从 csv 文件的 3 列中检索了 3 个数组,它们是:

y1=['1', '0', '0', '0', '1'];
y2=['1', '1', '1', '0', '0'];
y3=['0', '1', '1', '0', '1'];

如何绘制 2 个 ROC,使得 y1 vs y2y1 vs y3(在 sklearn 中)?

假设 y1 是您的标签,y2 和 y3 是您的分数,下面的代码应该这样做:

y1=[1, 0, 0, 0, 1];
y2=[1, 1, 0, 0, 1];
y3=[0, 0, 1, 0, 1];
from sklearn.metrics import *
import pandas as pd
import matplotlib.pyplot as plt

plt.figure(figsize=(14,10),dpi=640)
fpr, tpr, thresholds = roc_curve(y1, y2)
auc1 = auc(fpr,tpr)

plt.plot(fpr, tpr,label="AUC Y2:{0}".format(auc1),color='red', linewidth=2)

fpr, tpr, thresholds = roc_curve(y1, y3)
auc1 = auc(fpr,tpr)

plt.plot(fpr, tpr,label="AUC Y3:{0}".format(auc1),color='blue', linewidth=2)

plt.plot([0, 1], [0, 1], 'k--', lw=1) 
plt.xlim([0.0, 1.0]) 
plt.ylim([0.0, 1.05])

plt.xlabel('False Positive Rate')  
plt.ylabel('True Positive Rate') 
plt.title('ROC') 
plt.grid(True)
plt.legend(loc="lower right")
plt.show()