ROC曲线绘制(Python)
首先以支持向量机模型为例
先导入需要使用的包,我们将使用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)相关推荐
- python 将多个模型的ROC曲线绘制在一张图里(含图例)
一. 多条ROC曲线绘制函数 def multi_models_roc(names, sampling_methods, colors, X_test, y_test, save=True, dpin ...
- 多分类问题的ROC曲线绘制
多分类问题的ROC曲线绘制 目录 多分类问题的ROC曲线绘制 #roc曲线 (1)ROC曲线图中的四个点
- r roc曲线 语言_R语言系列6:生存分析中多重时间依赖性ROC曲线绘制 timeROC
上一篇文章,我们讲到R语言实现Cox回归生存预测模型构建,以及如何将Logistic回归中,多条ROC曲线绘制在一个图里 今天主要围绕生存分析中,预测模型验证部分,如何将多条time-depend e ...
- roc曲线spss怎么做_SPSS单因素ROC曲线及多因素联合诊断ROC曲线绘制(原创手把手) - 医学统计和生物统计讨论版 -丁香园论坛...
最近被好几个师弟师妹问到ROC曲线的绘制,尤其是多因素联合诊断ROC曲线的绘制(如下图这样的怎么做),所以干脆好好总结一下: 一.单因素ROC曲线 其实这个最简单,估计很多人也会,我知道的有两种办法, ...
- ROC曲线绘制原理即AUC的意义详解
云走雾走走行程,救苦救难救灾星 有求必应,出古洞四海扬名,在深山修真养性 ROC曲线绘制原理即AUC意义详解 ROC曲线绘制原理 ROC曲线常常用来判定一个分类器的分类效果,想要探究ROC曲线的绘制原 ...
- 机器学习之支持向量机SVM之python实现ROC曲线绘制(二分类和多分类)
目录 一.ROC曲线 二.TP.FP.TN.FN 三. python绘制ROC曲线(二分类) 1.思路 2.关键代码 3.完整代码 四. python绘制ROC曲线(多分类) 五.参考文献 一.ROC ...
- python画roc曲线需要什么数据,Python ROC曲线绘制
一.混淆矩阵 分类问题中,不管建模人员使用什么模型都难以到达100%的预测准确率,所以人们普遍使用分类错误率来衡量一个模型的优劣.但是在实际生产过程中分类问题经常存在样本不均衡问题,所以仅仅使用错误率 ...
- 机器学习性能度量(1):P-R曲线与ROC曲线,python sklearn实现
最近做实验要用到性能度量的东西,之前学习过现在重新学习并且实现一下. 衡量模型泛化能力的评价标准,这就是性能度量.性能度量反应了任务需求,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判 ...
- ROC曲线绘制(详细)以及模型选择
在我们在讲解ROC曲线之前 首先要明确混淆矩阵的概念 如下图: 真正率 TPR:预测为正例且实际为正例的样本占所有正例样本(真实结果为正样本)的比例. 假正率 FPR:预测为正例但实际为负例的样本占所 ...
最新文章
- python项目开发案例集锦 豆瓣-Python第三个项目:爬取豆瓣《哪吒之魔童降世》 短评...
- W - Pasha and Phone CodeForces - 595B (收益颇丰的数学题
- [转载] 深入剖析 redis 主从复制
- 助力深度学习!阿里开源可插拔 GPU 共享调度工具
- 转载:【opencv入门教程之三】:组件结构
- Codeforces Round #528 (Div. 2) - D. Minimum Diameter Tree
- AOP日志-前置通知操作
- 动态表单实现客户端二次过滤及字段汇总统计
- spring 异步返回结果_使用Spring Integration聚合异步结果
- java memorystream 包_存储在MemoryStream中的裁剪图像中心
- axis1 c# 接口 调用_java axis 调用C# webService的例子
- iOS searchbar拼音和汉字搜索全国城市
- 深入理解Nginx及使用Nginx实现负载均衡
- linux把mac格式化了,Mac上将树莓派已经写了系统的SD卡(磁盘)抹除、格式化
- Android获取系统字体的大小,修改android系统字体大小
- 对华为路由器配置DHCP实现IP地址的自动分配
- Redis恢复被删掉了的key值
- 为抖音而生的多闪,如何获取抖音的用户数据?
- 网站怎么做SEO优化操作?
- win7与xp 字体命名问题影响打印
热门文章
- Cadence Allegro 生成网表提示Check the symbol for consistency of pin definition 错误的解决办法
- 神经网络、机器学习和大数据速查图
- 嫖娼是犯罪吗?嫖娼被抓怎么处罚
- 87-Python_某电商平台上销售不同规格包装、不同价格的水笔。编写程序,在不考虑运费的情况下,从键盘分别输人两种水笔的包装和价格,分别计算单根水笔的价格,根据价格就低原则打印输出选择购买哪种产品
- 2021-2027全球与中国金属烤瓷牙冠市场现状及未来发展趋势
- Android7工程模式,安卓手机怎么进工程模式 安卓手机进工程模式教程【详解】
- Oracle 的汉译名 甲骨文 由来
- pyhton写一个抓狐狸游戏
- 全自动英文SEO站群系统 V5.0 发布
- java rollback_Spring中的@Transactional(rollbackFor = Exception.class)属性详解