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

我的图如下:

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

思考过后,发现原来:

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曲线画出来只有一个点的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

python调用库roc_curve()_解决ROC曲线画出来只有一个点的问题相关推荐

  1. 关于ROC曲线画出来只有一个点

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

  2. 把多个ROC曲线画在一张图上

    为了展示实验效果,ROC曲线也能更直观的展示而且美观.所以我想画出ROC曲线.下面是两个方法:1)只画一个ROC曲线,2)多个ROC曲线展示在一张图上. 注:我是已经有y-pred,所以直接用即可,不 ...

  3. python调用库有哪些_十大Python机器学习常用库 python开发,你用过几个?

    1.Pipenv Pipenv 是 Kenneth Reitz 的业余项目,旨在将其他软件包(例如 npm 和 yarn)整合到 Python 里.它不需要安装 virtualenv, virtual ...

  4. python 不执行函数_解决python调用自己文件函数/执行函数找不到包问题

    写python程序的时候很多人习惯创建一个utils.py文件,存放一些经常使用的函数,方便其他文件调用,同时也更好的管理一些通用函数,方便今后使用.或是两个文件之间的class或是函数调用情况. 就 ...

  5. python调用matlab函数_从 Python 调用 MATLAB 函数的三种方法

    0. 实验环境Ubuntu 16.04 Matlab R2015b 1. 借助于 mlab 库 安装方法非常简单,只需一行命令 sudo pip install mlab 即可. import num ...

  6. numpy是python标准库吗_吐血 整理!140种Python标准库、第三方库和外部工具都有了...

    Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连接.数 ...

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

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

  8. 【机器学习系列】如何将多条ROC曲线画在一张图里,并解决文本遮挡问题

    有的时候我们需要将ROC曲线输出在同一张图中,这样可以更加直观地对比模型:并且我们常常会遇到在图形中有文字相互遮挡的问题,我们可以用adjustText中的adjust_text来实现文本不相互遮挡并 ...

  9. python turtle库画图_《体验Python中turtle库画图》教学设计

    <体验Python中turtle库画图>教学设计 射阳县高级中学 张珊珊 学情分析: 学生从未接触过编程,因此通过画图来提高学生的学习积极性,而Python语言相较其他语言简单易学,程序里 ...

  10. python调用谷歌地图_使用Python调用谷歌地图并记录运动轨迹进行可视化

    本篇博文主要介绍了如何使用python来调用谷歌地图,并对北京的一个轨迹数据集进行可视化展示.该数据集包含在3年内收集的182个用户的GPS轨迹.我在这个演示中使用了用户001的数据. 博文会给出具体 ...

最新文章

  1. [GO] go使用etcd和watch方法进行实时的配置变更
  2. linux 控制台输入命令无效_在控制台输入什么命令都提示commandnotfound原因是什么?suselinux...
  3. SqlServer 2014 还原数据库时提示:操作系统返回了错误5,,拒绝访问
  4. Java实现Huffman哈夫曼树
  5. 华为的冬天(来自网路)---任正非
  6. Java类类getComponentType()方法与示例
  7. 在linux里如何建立一个快捷方式,连接到另一个目录
  8. 高校后勤管理系统Java项目-基于SSM
  9. python写梦幻西游脚本精灵_奔三新人学习按键精灵脚本做冷门项目
  10. 在线键盘按键检测工具
  11. 技术人,一定要保持一颗有空就学习的心。
  12. Android彩信发送
  13. Linux中最危险的是个命令(很有趣呦~)(链接:http://os.51cto.com/art/201408/448756.htm)
  14. 计算机及统计学,统计学中及计算机视觉中的各种 距离 汇总。。。
  15. Python和R交互使用
  16. 怀旧服服务器荣誉系统是啥,快人一步 争做大元帅 《魔兽世界》怀旧服荣誉系统浅析...
  17. 谷歌浏览器翻译英文网页功能消失解决方案
  18. 父亲母亲-儿时的快乐
  19. linux 下网络编程 聊天室项目
  20. 安卓应用开发Socket通信 客户端+服务器端

热门文章

  1. http://www.guokr.com/blog/475765/
  2. Mac OS X 通过命令行修改ip地址
  3. javascript自动填写表单小技巧
  4. KendoUI和wijmoUI 它们的Grid比较 20120423
  5. 医学遗传学词汇英语术语英文(Glossary) 5
  6. Qt warning : 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
  7. vue-cli 打包出来的文件缺少_Vue cli构建 及 项目打包以及出现的问题 (update 2020-05)...
  8. apache poi使用例_Apache POI使用详解
  9. pythonjam怎么使用_jam怎么用啊多多举例子啊各种词意的用法
  10. 如何用python创建文件_终于明了python如何创建文件