Python 更改roc曲线图度量图表中的图例项

Python 更改roc曲线图度量图表中的图例项,python,machine-learning,legend,roc,auc,Python,Machine Learning,Legend,Roc,Auc,我正在使用plot metrics库创建ROC图表 我正在尝试为我创建的三个不同模型创建图表,以便在它们之间进行比较,并显示哪个模型是最好的。 问题是,我无法编辑图例,并且随机猜测出现3次+无法编辑图例中的项目名称(例如模型1、模型2和模型3) 这是我如何生成此图表的: from plot_metric.functions import BinaryClassification # Visualisation with plot_metric bcl = BinaryClassification

我正在使用plot metrics库创建ROC图表

我正在尝试为我创建的三个不同模型创建图表,以便在它们之间进行比较,并显示哪个模型是最好的。 问题是,我无法编辑图例,并且随机猜测出现3次+无法编辑图例中的项目名称(例如模型1、模型2和模型3)

这是我如何生成此图表的:

from plot_metric.functions import BinaryClassification
# Visualisation with plot_metric
bcl = BinaryClassification(y_test, predictions1, labels=["TREAT1", "TREAT2"])
bcrf = BinaryClassification(y_test, predictions2, labels=["TREAT1", "TREAT2"])
bcxgb = BinaryClassification(y_test, predictions3, labels=["TREAT1", "TREAT2"])

# Figures
plt.figure(figsize=(5,5))
bcl.plot_roc_curve(plot_threshold=False,c_roc_curve='b', title='Receiver Operating Characteristic')
bcrf.plot_roc_curve(plot_threshold=False,c_roc_curve='green')
bcxgb.plot_roc_curve(plot_threshold=False,c_roc_curve='purple')

plt.show()

我认为这有一个参数(对于随机猜测为True或false),但只有阈值和其他参数,也找不到图例的任何参数:


我的最终目标是:更改图例项的名称,而不是进行3次随机猜测。

以下是我的解决方案,其中有一个简单的绘图解决方案(我尝试将变量/颜色放置在正确的位置):

将numpy导入为np
#获取数据和标签(通过隐藏图形)
plt.图(figsize=(1,1))
ax=plt.gca()
ax.set_可见(错误)
fpr1,tpr1,auc1=bcl.plot\u-roc\u曲线(plot\u阈值=False,c\u-roc\u曲线=r')
fpr2,tpr2,auc2=bcrf。绘制roc曲线(绘制阈值=False,绘制roc曲线=g',ls\U随机猜测=“”)
fpr3,tpr3,auc3=bbcxgb.plot\u-roc\u曲线(plot\u阈值=False,c\u-roc\u曲线=m',ls\u-random\u-guess=“”)
#将系列标签获取为numpy列表
_,labels=ax.get\u legend\u handles\u labels()
labels=np.array(标签)
#自己创作情节
图=plt.图(figsize=(15,10))#初始图
plt.绘图(fpr1,tpr1,'b',线宽=3)#绘制第一ROC曲线
plt.绘图(fpr2,tpr2,'g',线宽=3)#绘制第一ROC曲线
plt.绘图(fpr3,tpr3,'紫色',线宽=3)#绘制第一ROC曲线
plt.绘图(np.arange(0,1.01,0.01),np.arange(0,1.01,0.01),线宽=3)#绘制虚线猜测线
plt.legend([labels[0],labels[2],labels[4],labels[1]])#修复图例条目
plt.xlabel(“假阳性率[FPR]”)
plt.ylabel(“真阳性率[TPR]”)
plt.标题(“接收器工作特性”)#添加适当的标题
我的代码如下所示:

  • 创建用于打印的1x1(或微小)隐藏图形
  • 运行plot_-roc_曲线,获得3个模型的FPR、TPR和AUC值
  • 使用
    plt.gca()
    ax.get_legend_handles_labels()
    获取隐藏绘图的图例条目
  • 创建一个新的(非隐藏)绘图,并将#2中的数据绘制为多个系列
  • 修改从#3获取的图例条目,使其仅具有1个“随机猜测”标签,并将其设置为新创建地物的图例
  • 这是一个使用plot metric示例代码/数据的示例图: