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

先导入需要使用的包,我们将使用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)

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图像如下:

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

比如说我们想要使用其他模型(例如决策树模型)的结果绘制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]就行了,让我们看看结果:

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

更好看的画法

auc = roc_auc_score(y_test,clf.predict_proba(X_test)[:,1])
# auc = roc_auc_score(y_test,clf.decision_function(X_test))
fpr,tpr, thresholds = roc_curve(y_test,clf.decision_function(X_test))
plt.plot(fpr,tpr,color='darkorange',label='ROC curve (area = %0.2f)' % auc)
plt.plot([0, 1], [0, 1], color='navy', lw=2, 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 example')
plt.legend(loc="lower right")
plt.savefig('suhan.jpg',dpi=800)
plt.show()

ROC曲线绘制(Python)相关推荐

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

    一. 多条ROC曲线绘制函数 def multi_models_roc(names, sampling_methods, colors, X_test, y_test, save=True, dpin ...

  2. 多分类问题的ROC曲线绘制

    多分类问题的ROC曲线绘制 目录 多分类问题的ROC曲线绘制 #roc曲线 (1)ROC曲线图中的四个点

  3. r roc曲线 语言_R语言系列6:生存分析中多重时间依赖性ROC曲线绘制 timeROC

    上一篇文章,我们讲到R语言实现Cox回归生存预测模型构建,以及如何将Logistic回归中,多条ROC曲线绘制在一个图里 今天主要围绕生存分析中,预测模型验证部分,如何将多条time-depend e ...

  4. roc曲线spss怎么做_SPSS单因素ROC曲线及多因素联合诊断ROC曲线绘制(原创手把手) - 医学统计和生物统计讨论版 -丁香园论坛...

    最近被好几个师弟师妹问到ROC曲线的绘制,尤其是多因素联合诊断ROC曲线的绘制(如下图这样的怎么做),所以干脆好好总结一下: 一.单因素ROC曲线 其实这个最简单,估计很多人也会,我知道的有两种办法, ...

  5. ROC曲线绘制原理即AUC的意义详解

    云走雾走走行程,救苦救难救灾星 有求必应,出古洞四海扬名,在深山修真养性 ROC曲线绘制原理即AUC意义详解 ROC曲线绘制原理 ROC曲线常常用来判定一个分类器的分类效果,想要探究ROC曲线的绘制原 ...

  6. 机器学习之支持向量机SVM之python实现ROC曲线绘制(二分类和多分类)

    目录 一.ROC曲线 二.TP.FP.TN.FN 三. python绘制ROC曲线(二分类) 1.思路 2.关键代码 3.完整代码 四. python绘制ROC曲线(多分类) 五.参考文献 一.ROC ...

  7. python画roc曲线需要什么数据,Python ROC曲线绘制

    一.混淆矩阵 分类问题中,不管建模人员使用什么模型都难以到达100%的预测准确率,所以人们普遍使用分类错误率来衡量一个模型的优劣.但是在实际生产过程中分类问题经常存在样本不均衡问题,所以仅仅使用错误率 ...

  8. 机器学习性能度量(1):P-R曲线与ROC曲线,python sklearn实现

    最近做实验要用到性能度量的东西,之前学习过现在重新学习并且实现一下. 衡量模型泛化能力的评价标准,这就是性能度量.性能度量反应了任务需求,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判 ...

  9. ROC曲线绘制(详细)以及模型选择

    在我们在讲解ROC曲线之前 首先要明确混淆矩阵的概念 如下图: 真正率 TPR:预测为正例且实际为正例的样本占所有正例样本(真实结果为正样本)的比例. 假正率 FPR:预测为正例但实际为负例的样本占所 ...

最新文章

  1. python项目开发案例集锦 豆瓣-Python第三个项目:爬取豆瓣《哪吒之魔童降世》 短评...
  2. W - Pasha and Phone CodeForces - 595B (收益颇丰的数学题
  3. [转载] 深入剖析 redis 主从复制
  4. 助力深度学习!阿里开源可插拔 GPU 共享调度工具
  5. 转载:【opencv入门教程之三】:组件结构
  6. Codeforces Round #528 (Div. 2) - D. Minimum Diameter Tree
  7. AOP日志-前置通知操作
  8. 动态表单实现客户端二次过滤及字段汇总统计
  9. spring 异步返回结果_使用Spring Integration聚合异步结果
  10. java memorystream 包_存储在MemoryStream中的裁剪图像中心
  11. axis1 c# 接口 调用_java axis 调用C# webService的例子
  12. iOS searchbar拼音和汉字搜索全国城市
  13. 深入理解Nginx及使用Nginx实现负载均衡
  14. linux把mac格式化了,Mac上将树莓派已经写了系统的SD卡(磁盘)抹除、格式化
  15. Android获取系统字体的大小,修改android系统字体大小
  16. 对华为路由器配置DHCP实现IP地址的自动分配
  17. Redis恢复被删掉了的key值
  18. 为抖音而生的多闪,如何获取抖音的用户数据?
  19. 网站怎么做SEO优化操作?
  20. win7与xp 字体命名问题影响打印

热门文章

  1. Cadence Allegro 生成网表提示Check the symbol for consistency of pin definition 错误的解决办法
  2. 神经网络、机器学习和大数据速查图
  3. 嫖娼是犯罪吗?嫖娼被抓怎么处罚
  4. 87-Python_某电商平台上销售不同规格包装、不同价格的水笔。编写程序,在不考虑运费的情况下,从键盘分别输人两种水笔的包装和价格,分别计算单根水笔的价格,根据价格就低原则打印输出选择购买哪种产品
  5. 2021-2027全球与中国金属烤瓷牙冠市场现状及未来发展趋势
  6. Android7工程模式,安卓手机怎么进工程模式 安卓手机进工程模式教程【详解】
  7. Oracle 的汉译名 甲骨文 由来
  8. pyhton写一个抓狐狸游戏
  9. 全自动英文SEO站群系统 V5.0 发布
  10. java rollback_Spring中的@Transactional(rollbackFor = Exception.class)属性详解