Python中ROC曲线绘制

作者:KING 时间:2023-05-28 16:38:15 

Python中ROC曲线绘制

首先以支持向量机模型为例

先导入需要使用的包,我们将使用roc_curve这个函数绘制ROC曲线!


from sklearn.svm import SVC
from sklearn.metrics import roc_curve
from sklearn.datasets import make_blobs
from sklearn. model_selection import train_test_split
import matplotlib.pyplot as plt
%matplotlib inline

然后使用下面make_blobs函数,生成一个二分类的数据不平衡数据集;

使用train_test_split函数划分训练集和测试集数据;

训练SVC模型。


X,y = make_blobs(n_samples=(4000,500), cluster_std=[7,2], random_state=0)

X_train,X_test,y_train, y_test = train_test_split(X,y,random_state=0)

clf = SVC(gamma=0.05).fit(X_train, y_train)

Python中ROC曲线绘制


fpr,tpr, thresholds = roc_curve(y_test,clf.decision_function(X_test))

plt.plot(fpr,tpr,label='ROC')

plt.xlabel('FPR')
plt.ylabel('TPR')

从上面的代码可以看到,我们使用roc_curve函数生成三个变量,分别是fpr,tpr, thresholds,也就是假正例率(FPR)、真正例率(TPR)和阈值。

而其中的fpr,tpr正是我们绘制ROC曲线的横纵坐标,于是我们以变量fpr为横坐标,tpr为纵坐标,绘制相应的ROC图像如下:

Python中ROC曲线绘制

Python中ROC曲线绘制

值得注意的是上面的支持向量机模型使用的decision_function函数,是自己所特有的,而其他模型不能直接使用。

Python中ROC曲线绘制

比如说我们想要使用其他模型(例如决策树模型)的结果绘制ROC,直接套用上面的代码,会报错,会显示没有这个函数。

Python中ROC曲线绘制

以决策树模型为例,解决上述问题(适用于除向量机外的模型)

导入决策树模型包以及训练模型的代码省略了,只需要手动改一改就行了,我们直接看绘图的代码!


fpr,tpr, thresholds = roc_curve(y_test,clf.predict_proba(X_test)[:,1])

plt.plot(fpr,tpr,label='ROC')

plt.xlabel('FPR')
plt.ylabel('TPR')

可以看到我们直接把只适用于支持向量机模型的函数decision_function更改成predict_proba(X_test)[:,1]就行了,让我们看看结果:

Python中ROC曲线绘制

可以看到哈,决策树模型在这个数据集上的泛化能力不如支持向量机哈!!!学废了吗。

我可以失败,但绝不会认输!

来源:https://blog.csdn.net/weixin_46803857/article/details/121793432

标签:Python,曲线,ROC
0
投稿

猜你喜欢

  • python互斥锁、加锁、同步机制、异步通信知识总结

    2023-10-08 21:17:16
  • 基于Bootstrap使用jQuery实现简单可编辑表格

    2023-08-22 20:15:07
  • ASPJPEG组件使用详解(缩略图+水印)

    2007-09-19 17:31:00
  • Python json转字典字符方法实例解析

    2021-06-07 11:21:40
  • 百分百弹窗

    2013-08-07 07:41:06
  • 详解Python NumPy中矩阵和通用函数的使用

    2023-05-29 15:57:18
  • Python机器学习之基础概述

    2021-07-18 19:07:59
  • ASP 多关键词查询实例代码

    2011-04-11 11:14:00
  • Python装饰器详细介绍

    2022-09-28 17:52:16
  • MySQL实现配置主从复制项目实践

    2024-01-15 16:54:20
  • Python-基础-入门 简介

    2023-03-28 19:08:07
  • Python unittest装饰器实现原理及代码

    2022-05-06 22:33:49
  • Python多进程的使用详情

    2022-09-21 23:55:58
  • Python OpenCV图像指定区域裁剪的实现

    2021-12-30 01:41:35
  • 详解python中asyncio模块

    2022-06-14 05:25:13
  • 对YOLOv3模型调用时候的python接口详解

    2023-05-31 00:58:57
  • Python 2种方法求某个范围内的所有素数(质数)

    2022-09-07 08:43:40
  • Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解

    2021-10-15 16:14:07
  • python绘图模块之利用turtle画图

    2022-08-13 01:17:19
  • Vue使用Echarts画柱状图详解

    2024-05-29 22:22:29
  • asp之家 网络编程 m.aspxhome.com