解决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类继承与子类实例初始化用法分析
Apr 17 Python
利用Python进行异常值分析实例代码
Dec 07 Python
详解Python中如何写控制台进度条的整理
Mar 07 Python
Python3.6实现连接mysql或mariadb的方法分析
May 18 Python
django将图片上传数据库后在前端显式的方法
May 25 Python
Django+Xadmin构建项目的方法步骤
Mar 06 Python
python多进程下实现日志记录按时间分割
Jul 22 Python
使用Python将字符串转换为格式化的日期时间字符串
Sep 01 Python
python如何从文件读取数据及解析
Sep 19 Python
TensorFlow自定义损失函数来预测商品销售量
Feb 05 Python
利用Python的folium包绘制城市道路图的实现示例
Aug 24 Python
教你怎么用Python selenium操作浏览器对象的基础API
Jun 23 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
我的论坛源代码(五)
2006/10/09 PHP
个人站长制做网页常用的php代码
2007/03/03 PHP
php中的curl使用入门教程和常见用法实例
2014/04/10 PHP
ThinkPHP让分页保持搜索状态的方法
2014/07/02 PHP
了解PHP的返回引用和局部静态变量
2015/06/04 PHP
php去除二维数组的重复项方法
2015/11/03 PHP
微信公众平台开发教程①获取用户Openid及个人信息图文详解
2019/04/10 PHP
firefox 和 ie 事件处理的细节,研究,再研究 书写同时兼容ie和ff的事件处理代码
2007/04/12 Javascript
javascript 常用方法总结
2009/06/03 Javascript
event.currentTarget与event.target的区别介绍
2012/12/31 Javascript
javascript贪吃蛇完整版(源码)
2013/12/09 Javascript
js中继承的几种用法总结(apply,call,prototype)
2013/12/26 Javascript
js命名空间写法示例
2015/12/18 Javascript
JavaScript生成二维码图片小结
2015/12/27 Javascript
使用JavaScript实现ajax的实例代码
2016/05/11 Javascript
AngularJS HTML DOM详解及示例代码
2016/08/17 Javascript
教你如何在Node.js中使用jQuery
2016/08/28 Javascript
webix+springmvc session超时跳转登录页面
2016/10/30 Javascript
JavaScript实现滑动导航栏效果
2017/08/30 Javascript
webpack 打包压缩js和css的方法示例
2018/03/20 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
vant时间控件使用方法详解
2020/12/24 Javascript
基于python中pygame模块的Linux下安装过程(详解)
2017/11/09 Python
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
关于Python正则表达式 findall函数问题详解
2018/03/22 Python
浅谈Series和DataFrame中的sort_index方法
2018/06/07 Python
Tensorflow使用tfrecord输入数据格式
2018/06/19 Python
Pycharm新建模板默认添加个人信息的实例
2019/07/15 Python
详解Django定时任务模块设计与实践
2019/07/24 Python
自我鉴定写作要点
2014/01/17 职场文书
革命先烈的英雄事迹材料
2014/02/15 职场文书
泰山导游词
2015/02/02 职场文书
酒店工程部主管岗位职责
2015/04/16 职场文书
力克胡哲观后感
2015/06/10 职场文书
企业年会祝酒词
2015/08/11 职场文书
2019财务转正述职报告
2019/06/27 职场文书