python如何将多个模型的ROC曲线绘制在一张图(含图例)

针对这个问题,可以按照以下步骤绘制多个模型的ROC曲线并显示图例:

1. 准备数据

首先需要准备多个模型预测结果的真实标签和预测概率值,可以使用sklearn中自带的datasets中的样例数据或者自己准备数据。这里以手写数字识别数据集为例子。

from sklearn import datasets
from sklearn.model_selection import train_test_split

digits = datasets.load_digits()
X = digits.data
y = digits.target

#划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

2. 训练模型

使用Logistic Regression和SVM两种不同的模型对手写数字数据进行训练,并预测测试集。

from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC

#Logistic Regression模型
clf1 = LogisticRegression(random_state=42)
clf1.fit(X_train, y_train)
y_prob1 = clf1.predict_proba(X_test)[:, 1]

#SVM模型
clf2 = SVC(random_state=42, probability=True)
clf2.fit(X_train, y_train)
y_prob2 = clf2.predict_proba(X_test)[:, 1]

3. 绘制ROC曲线

通过使用ROC曲线(y_true, y_score, ...)可以绘制ROC曲线,其中y_true为真实标签,y_score为预测概率值。我们可以重复调用roc_curve()函数,绘制多个模型的ROC曲线。最后将多个ROC曲线绘制在同一张图上,方便进行比较。

from sklearn.metrics import roc_curve, roc_auc_score
import matplotlib.pyplot as plt

#计算ROC值
fpr1, tpr1, thresholds1 = roc_curve(y_test, y_prob1)
roc_auc1 = roc_auc_score(y_test, y_prob1)

fpr2, tpr2, thresholds2 = roc_curve(y_test, y_prob2)
roc_auc2 = roc_auc_score(y_test, y_prob2)

# 绘制ROC曲线
plt.plot(fpr1, tpr1, color='darkorange', label='LR ROC curve (area = %0.2f)' % roc_auc1)
plt.plot(fpr2, tpr2, color='blue', label='SVM ROC curve (area = %0.2f)' % roc_auc2)

plt.plot([0, 1], [0, 1], color='navy', linestyle='--')
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver operating characteristic (ROC) curve')
plt.legend(loc="lower right")
plt.show()

4. 结果说明

这样我们就得到了两个模型的ROC曲线,并将它们一起绘制在同一张图上。图中的橙色线代表Logistic Regression模型的ROC曲线,蓝色线代表SVM模型的ROC曲线,图例中也有对应标记。

5. 示例

另外,这里提供一个更加详细和完整的关于如何绘制多个模型ROC曲线的示例链接,可以参考学习:Python如何绘制多个ROC curve曲线

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python如何将多个模型的ROC曲线绘制在一张图(含图例) - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • python使用ctypes模块调用windowsapi获取系统版本示例

    完整攻略: 1. 什么是ctypes模块 ctypes是Python的一个外部函数库,它提供了一种应对C语言程序的有效方法。它可以让我们在Python中调用DLL或共享库中的函数。 2. ctypes模块的基本用法 在使用ctypes之前,需要引入该模块。引入后再调用ctypes库中的函数即可。有三个重要的类需要记住: CDLL: 用于加载动态链接库(Win…

    python 2023年5月30日
    00
  • 在Python中利用pickle保存变量的实例

    保存变量在Python中非常简单,可以使用Pickle模块,它可以将任何Python对象序列化为字符串(字节流),也可以将其反序列化回原始对象。在这里,我们将讨论如何使用Pickle保存变量的实例。 要使用Pickle,您需要首先导入它。示例如下: import pickle 保存变量的实例 我们可以使用Pickle保存Python对象。通过使用Pickle…

    python 2023年6月2日
    00
  • Python datetime和unix时间戳之间相互转换的讲解

    关于Python datetime和unix时间戳之间相互转换的方法,我们可以通过以下步骤实现: 1. Python datetime对象转unix时间戳 在Python中,我们可以使用timestamp()方法来将datetime对象转换为表示Unix时间戳的浮点数。例如,将2022年1月1日的datetime对象转换为Unix时间戳的示例代码如下: im…

    python 2023年6月2日
    00
  • 如何使用python爬虫爬取要登陆的网站

    使用Python爬虫爬取需要登陆的网站,一般需要以下几个步骤: 对目标网站进行分析,找到登录页面的url、用户名输入框、密码输入框、提交按钮等。 使用Python的requests库发起登录请求。代码示例如下: import requests # 填写登录信息 username = ‘your_username’ password = ‘your_passw…

    python 2023年5月14日
    00
  • python实现人机对战的五子棋游戏

    安装必要的库 为了实现这个五子棋游戏,我们需要用到一些Python库,如numpy、Tkinter。因此,需要确保这些库已经安装好了。可以通过以下命令在命令行中安装: pip install numpy python -m tkinter 创建游戏界面 我们使用Tkinter库来实现游戏的GUI界面。在前面的代码中,我们首先导入了Tkinter库,然后创建了…

    python 2023年5月23日
    00
  • 利用Python进行数据清洗的操作指南

    利用Python进行数据清洗的操作指南 数据清洗是数据分析的重要步骤之一,它可以帮助我们去除数据中的噪声、缺失值、等,从而提高数据的质量和可靠性。本文将为您详细讲解利用Python进行数据清洗的操作指南,包括数据清洗的基本步骤、常用的数据清洗方法、以及两个示例说明。 数据清洗的基本步骤 数据清洗的基本步骤包括以下几个方面: 数据预处理:包括数据采集、数据整合…

    python 2023年5月14日
    00
  • 浅谈用VSCode写python的正确姿势

    下面是关于“浅谈用VSCode写Python的正确姿势”的完整攻略。 1. 安装 VSCode 首先,需要下载并安装 Visual Studio Code。可以从官方网站下载 https://code.visualstudio.com/。 2. 安装 Python 扩展 在安装完 VSCode 后,需要在扩展中心中搜索并安装 Python 扩展。可以通过在 …

    python 2023年5月18日
    00
  • python 捕获shell脚本的输出结果实例

    让我们来讲解一下“python 捕获shell脚本的输出结果实例”的完整攻略。 1.背景 在程序开发中,有时候需要通过运行shell脚本来完成一些任务,比如文件备份、数据导出等。在实际操作中,我们可能需要捕获shell脚本的输出结果,并对其进行处理或分析。Python提供了多种方式来实现这个功能,下面我将介绍其中两种常用方法。 2.方法一:使用subproc…

    python 2023年6月5日
    00
合作推广
合作推广
分享本页
返回顶部