一、混淆矩阵

分类问题中,不管建模人员使用什么模型都难以到达100%的预测准确率,所以人们普遍使用分类错误率来衡量一个模型的优劣。但是在实际生产过程中分类问题经常存在样本不均衡问题,所以仅仅使用错误率是不能很好的表现模型的好坏,也不能直观的体现每一类数据的分类准确性。例如:一个二分类样本中0:1占比为9:1,当一个分类器将所有的样本都识别为0,此时模型的错误率为10%,准确率为90%,如果仅仅看错误率是比较低的,但是根本没有起到数据分类的效果。因此在机器学习中,有一个普遍适用的称为混淆矩阵(confusion matrix)的工具,它可以帮助人们更好地了解分类中的错误。

一个二分类问题的混淆矩阵如下图:

1表示真类,0表示负类

若一个实例是正类并且被预测为正类,即为真正类(True Postive TP)

若一个实例是正类,但是被预测成为负类,即为假负类(False Negative FN)

若一个实例是负类,但是被预测成为正类,即为假正类(False Postive FP)

若一个实例是负类,但是被预测成为负类,即为真负类(True Negative TN)

二、ROC曲线

横轴:负正类率(false postive rate FPR)特异度,划分实例中所有负例占所有负例的比例;(1-Specificity)

纵轴:真正类率(true postive rate TPR)灵敏度,Sensitivity(正类覆盖率)

由混淆矩阵可得出横,纵轴的计算公式:

(1)真正类率(True Postive Rate)TPR:TP/(TP+FN),代表分类器预测的正类中实际正实例占所有正实例的比例。Sensitivity

(2)负正类率(False Postive Rate)FPR:FP/(FP+TN),代表分类器预测的正类中实际负实例占所有负实例的比例。1-Specificity

python实现:

#===================ROC曲线函数===================#

def PlotROC(preds, labels, plot_chart=True):

fpr, tpr, threshold = roc_curve(labels, preds) ### 计算真正率和假正率

roc_auc = auc(fpr, tpr) ### 计算auc值

print('auc_value is' + str(np.round(roc_auc,4)))

if plot_chart==True:

lw = 2

plt.gca().set(title='model_ROC'

,xlabel='FPR'

,ylabel='TPR'

,xlim=[0,1]

,ylim=[0,1]

,aspect='equal')

# test

# plt.text(0.5,0.95,'ROC',fontsize=15,horizontatalignment='certer')

plt.text(0.5,0.45,'AUC:'+str(round(roc_auc,4)),horizontatalignment='center',color='b')

plt.plot(fpr, tpr, color='blue'

,lw=lw,label='ROC curve (area = %0.2f)' % roc_auc) ###假正率为横坐标,真正率为纵坐标做曲线

plt.plot([0,1],[0,1],color='red',lw=lw,linestyle='--')

plt.fill_between(fpr, 0, tpr, color='blue', alpha=0.1)

plt.xlim([0.0,1.0])

plt.ylim([0.0,1.0])

plt.xlabel('Flase Positive Rate')

plt.ylabel('True Positive Rate')

plt.title('model-ROC')

plt.legend(loc='lower right')

plt.show()

python画roc曲线需要什么数据,Python ROC曲线绘制相关推荐

  1. python 画蝴蝶_ProE常用曲线方程:Python Matplotlib 版本代码(蝴蝶曲线)

    花纹的生成可以使用贴图的方式,同样也可以使用方程,本文列出了几种常用曲线的方程式,以取代贴图方式完成特定花纹的生成. 注意极坐标的使用................. 顾名思义,蝴蝶曲线(Butte ...

  2. python 画三维函数图-Python画三维图-----插值平滑数据

    一.二维的插值方法: 原始数据(x,y) 先对横坐标x进行扩充数据量,采用linspace.[如下面例子,由7个值扩充到300个] 采用scipy.interpolate中的spline来对纵坐标数据 ...

  3. 用python画皮卡丘-教你用Python画一只属于自己的皮卡丘

    还记得小时候疯狂收集和交换神奇宝贝卡片的经历吗?还记得和小伙伴拿着精灵球,一起召唤小精灵的中二模样吗? 最近上映的<大侦探皮卡丘>,是否会让你秒回童年,进入那个充满神奇宝贝的世界,和小智一 ...

  4. 用python画星空的代码简单-【Python】手把手教你绘制星空旅游线路图

    0 前言 5月是美国的毕业季,我家领导也即将毕业了,我们将在美国进行为期两周的毕业旅行.其实类似这样的航线图我以前也用PPT绘制过,给领导用于发朋友圈,虽然总体能表达出意思,但是效果不能让自己满意,见 ...

  5. python 画股票走势图_使用Python matplotlib绘制股票走势图

    一.前言 matplotlib[1]是著名的python绘图库,它提供了一整套绘图API,十分适合交互式绘图.本人在工作过程中涉及到股票数据的处理如绘制K线等,因此将matplotlib的使用心得进行 ...

  6. 用python画时序图源代码_使用python实现画AR模型时序图

    背景: 用python画AR模型的时序图. 结果: 代码: import numpy as np import matplotlib.pyplot as plt """ ...

  7. 用python画微信捂脸_用 Python 画一个捂脸表情

    微信中的捂脸表情相信大家都不陌生,我见过以及自己使用这个表情的频率都是比较高的,可以说这个表情算是大部分人的主打表情之一了,本文我使用 Python 来画一下这个表情,我们使用到的库还是 turtle ...

  8. python excel增加一列_(用Python修改excel中一列数据)python新增一列

    python怎么从excel中读取数据? ⒈ #import παέτο import xlrd #Ρύθμι διαδρής path='C:\\Users\\jyjh\\Desktop\\data ...

  9. 用python画爱心的代码-怎么用python实现画爱心

    Python中可以使用turtle库来画图,通过控制画笔运动来实现在画布上画图案. 使用Python画爱心代码如下:#!/usr/bin/env python # -*- coding:utf-8 - ...

  10. 用python画简单的动物-如何用python画简单的动物

    首先来看一下实现效果,如下图: 具体实现代码请看: (推荐学习:python视频教程)# -*- coding:utf-8 -*-# __author__ :kusy# __content__:文件说 ...

最新文章

  1. python控制电机_利用树莓派控制步进电机——Python语言
  2. Verilog初级教程(1)认识 Verilog HDL
  3. Acwing第 14 场周赛【完结】
  4. php 安装redis数据库,Linux下安装Redis以及phpredis模块
  5. 使用C语言写一个扫雷小游戏
  6. odoo10学习笔记十四:mixin其他功能模块
  7. 有了JSON.stringify(),处理json将变得更简单!!
  8. jquery.imageScroller实现图片滚动
  9. 实训41 2018.6.2
  10. Freemarker判断对象是否为空的用法
  11. 1024程序员节 | 近300本python电子书推荐
  12. gpgga格式读取MATLAB,gpgga数据格式
  13. ltib常用命令详解
  14. 【日本語勉強】「モデレート」とはどういう意味になるのでしょうか
  15. 解决win10下localhost打不开的问题
  16. OpenCv初学者学习笔记(一):图像视频的加载与显示
  17. 奋斗吧,程序员——第四十二章 会挽雕弓如满月,西北望,射天狼
  18. 3月第1周业务风控关注 工信部曝光695款违规App近九成涉捆绑推广
  19. 腾讯蔡晨:十年沉淀,腾讯iOA为企业安全保驾护航 1
  20. ios手写_如何在iOS 10中发送手写和数字触摸消息

热门文章

  1. 如何在Android Studio中删除模块
  2. 找出本地分支正在跟踪哪个远程分支
  3. PowerShell说“此系统上的脚本执行被禁用。”
  4. Linux内创建新用户,linux下手工创建新用户
  5. 电脑打开任务管理器的方法有哪几种
  6. 查看被Linux干掉的进程,Linux 查看进程被杀死的详情
  7. 移动机器人构型对比分析
  8. 麦克纳姆轮全向移动机器人自旋转运动分析
  9. arcgis engine设置数据源路径_不用ArcGIS做前期分析,你是不是想被辞!
  10. 剑指 Offer II 042. 最近请求次数【队列方法】