解决ROC曲线画出来只有一个点的问题


Posted in Python onFebruary 28, 2020

之前在做kaggle比赛时,有个比赛使用AUC来评比的,当时试着画了ROC曲线,结果出来的下图这样的图形。跟平时的ROC曲线差好远,就只有一个点。而别人家的都是很多转折的,为啥我的不一样。

我的图如下:

解决ROC曲线画出来只有一个点的问题

正常的图(sklearn上面截取的):

解决ROC曲线画出来只有一个点的问题

思考过后,发现原来:

ROC曲线,一般适用于你的分类器输出一个“概率值”,即这个样本属于某个类的概率是多少。 如此的话,你就需要设定一个阈值, 大于这个阈值属于正类,小于这个阈值属于负类。

从而,对于这个阈值P0, 就会得到对应的TPR, FPR, 也就是ROC曲线上的一个点,你设置不同的阈值,就会得到不同的TPR, FPR, 从而构成ROC曲线。

通常来说 阈值降低,即进入正类的门槛变低, TPR会变大,但是FPR也会变大, 看他们谁变的快。

之前画线的时候直接用了分类的预测值,而没有用上概率这玩意,被划分为正类的概率。。修改下程序,求多一个概率就能画出正确的图形啦。

如果你用GDBT算法的时候:

gbc = GradientBoostingClassifier()
gbc.fit(x_train, y_train)
resu = gbc.predict(x_test) #进行预测
y_pred_gbc = gbc.predict_proba(x_test)[:,1] ###这玩意就是预测概率的
fpr, tpr, threshold = roc_curve(y_test, y_pred_gbc) ###画图的时候要用预测的概率,而不是你的预测的值
plt.plot(fpr, tpr, 'b', label='AUC = %0.2f' % rocauc)#生成ROC曲线
plt.legend(loc='lower right')
plt.plot([0, 1], [0, 1], 'r--')
plt.xlim([0, 1])
plt.ylim([0, 1])
plt.ylabel('真正率')
plt.xlabel('假正率')
plt.show()

解决ROC曲线画出来只有一个点的问题

以上这篇解决ROC曲线画出来只有一个点的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python基础教程之自定义函数介绍
Aug 29 Python
python字符串对其居中显示的方法
Jul 11 Python
Python模拟登录验证码(代码简单)
Feb 06 Python
python中学习K-Means和图片压缩
Nov 20 Python
使用Django2快速开发Web项目的详细步骤
Jan 06 Python
在Python中利用pickle保存变量的实例
Dec 30 Python
django3.02模板中的超链接配置实例代码
Feb 04 Python
Python环境下安装PyGame和PyOpenGL的方法
Mar 25 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
May 27 Python
django rest framework使用django-filter用法
Jul 15 Python
如何利用pycharm进行代码更新比较
Nov 04 Python
Python爬虫破解登陆哔哩哔哩的方法
Nov 17 Python
Python编程快速上手——正则表达式查找功能案例分析
Feb 28 #Python
利用python画出AUC曲线的实例
Feb 28 #Python
Python编程快速上手——选择性拷贝操作案例分析
Feb 28 #Python
AUC计算方法与Python实现代码
Feb 28 #Python
Python编程快速上手——Excel表格创建乘法表案例分析
Feb 28 #Python
Python计算IV值的示例讲解
Feb 28 #Python
Python编程快速上手——PDF文件操作案例分析
Feb 28 #Python
You might like
Flash空降上海 化身大魔王接受挑战
2020/03/02 星际争霸
一段php加密解密的代码
2007/07/16 PHP
PHP 导出数据到淘宝助手CSV的方法分享
2010/02/27 PHP
PHP @ at 记号的作用示例介绍
2014/10/10 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
浅谈Javascript数组索引
2015/07/29 Javascript
jquery实现表格隔行换色效果
2015/11/19 Javascript
JavaScript为事件句柄绑定监听函数实例详解
2015/12/15 Javascript
利用jquery制作滚动到指定位置触发动画
2016/03/26 Javascript
jQuery1.9+中删除了live以后的替代方法
2016/06/17 Javascript
AngularJS过滤器filter用法分析
2016/12/11 Javascript
微信小程序 PHP生成带参数二维码
2017/02/21 Javascript
ES6模块化的import和export用法方法总结
2017/08/08 Javascript
利用express启动一个server服务的方法
2017/09/17 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
2017/09/19 Javascript
写给小白看的JavaScript异步
2017/11/29 Javascript
javascript中函数的写法实例代码详解
2018/10/28 Javascript
Koa日志中间件封装开发详解
2019/03/09 Javascript
浅析vue插槽和作用域插槽的理解
2019/04/22 Javascript
JavaScript实现打砖块游戏
2020/02/25 Javascript
[48:38]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs Secret
2018/03/31 DOTA
python算法学习之计数排序实例
2013/12/18 Python
深度定制Python的Flask框架开发环境的一些技巧总结
2016/07/12 Python
Python完全识别验证码自动登录实例详解
2019/11/24 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
2020/04/03 Python
django正续或者倒序查库实例
2020/05/19 Python
为什么相对PHP黑python的更少
2020/06/21 Python
详解Flask前后端分离项目案例
2020/07/24 Python
idealfit英国:世界领先的女性健身用品和运动衣物品牌
2017/11/25 全球购物
德国运动营养和健身网上商店:Myprotein.de
2018/07/18 全球购物
顶岗实习接收函
2014/01/09 职场文书
课外活动总结
2015/02/04 职场文书
感恩教育观后感
2015/06/17 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书
浅谈:电影《孔子》观后感(范文)
2019/10/14 职场文书
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技