python画roc曲线需要什么数据,Python ROC曲线绘制
一、混淆矩阵
分类问题中,不管建模人员使用什么模型都难以到达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曲线绘制相关推荐
- python 画蝴蝶_ProE常用曲线方程:Python Matplotlib 版本代码(蝴蝶曲线)
花纹的生成可以使用贴图的方式,同样也可以使用方程,本文列出了几种常用曲线的方程式,以取代贴图方式完成特定花纹的生成. 注意极坐标的使用................. 顾名思义,蝴蝶曲线(Butte ...
- python 画三维函数图-Python画三维图-----插值平滑数据
一.二维的插值方法: 原始数据(x,y) 先对横坐标x进行扩充数据量,采用linspace.[如下面例子,由7个值扩充到300个] 采用scipy.interpolate中的spline来对纵坐标数据 ...
- 用python画皮卡丘-教你用Python画一只属于自己的皮卡丘
还记得小时候疯狂收集和交换神奇宝贝卡片的经历吗?还记得和小伙伴拿着精灵球,一起召唤小精灵的中二模样吗? 最近上映的<大侦探皮卡丘>,是否会让你秒回童年,进入那个充满神奇宝贝的世界,和小智一 ...
- 用python画星空的代码简单-【Python】手把手教你绘制星空旅游线路图
0 前言 5月是美国的毕业季,我家领导也即将毕业了,我们将在美国进行为期两周的毕业旅行.其实类似这样的航线图我以前也用PPT绘制过,给领导用于发朋友圈,虽然总体能表达出意思,但是效果不能让自己满意,见 ...
- python 画股票走势图_使用Python matplotlib绘制股票走势图
一.前言 matplotlib[1]是著名的python绘图库,它提供了一整套绘图API,十分适合交互式绘图.本人在工作过程中涉及到股票数据的处理如绘制K线等,因此将matplotlib的使用心得进行 ...
- 用python画时序图源代码_使用python实现画AR模型时序图
背景: 用python画AR模型的时序图. 结果: 代码: import numpy as np import matplotlib.pyplot as plt """ ...
- 用python画微信捂脸_用 Python 画一个捂脸表情
微信中的捂脸表情相信大家都不陌生,我见过以及自己使用这个表情的频率都是比较高的,可以说这个表情算是大部分人的主打表情之一了,本文我使用 Python 来画一下这个表情,我们使用到的库还是 turtle ...
- python excel增加一列_(用Python修改excel中一列数据)python新增一列
python怎么从excel中读取数据? ⒈ #import παέτο import xlrd #Ρύθμι διαδρής path='C:\\Users\\jyjh\\Desktop\\data ...
- 用python画爱心的代码-怎么用python实现画爱心
Python中可以使用turtle库来画图,通过控制画笔运动来实现在画布上画图案. 使用Python画爱心代码如下:#!/usr/bin/env python # -*- coding:utf-8 - ...
- 用python画简单的动物-如何用python画简单的动物
首先来看一下实现效果,如下图: 具体实现代码请看: (推荐学习:python视频教程)# -*- coding:utf-8 -*-# __author__ :kusy# __content__:文件说 ...
最新文章
- python控制电机_利用树莓派控制步进电机——Python语言
- Verilog初级教程(1)认识 Verilog HDL
- Acwing第 14 场周赛【完结】
- php 安装redis数据库,Linux下安装Redis以及phpredis模块
- 使用C语言写一个扫雷小游戏
- odoo10学习笔记十四:mixin其他功能模块
- 有了JSON.stringify(),处理json将变得更简单!!
- jquery.imageScroller实现图片滚动
- 实训41 2018.6.2
- Freemarker判断对象是否为空的用法
- 1024程序员节 | 近300本python电子书推荐
- gpgga格式读取MATLAB,gpgga数据格式
- ltib常用命令详解
- 【日本語勉強】「モデレート」とはどういう意味になるのでしょうか
- 解决win10下localhost打不开的问题
- OpenCv初学者学习笔记(一):图像视频的加载与显示
- 奋斗吧,程序员——第四十二章 会挽雕弓如满月,西北望,射天狼
- 3月第1周业务风控关注 工信部曝光695款违规App近九成涉捆绑推广
- 腾讯蔡晨:十年沉淀,腾讯iOA为企业安全保驾护航 1
- ios手写_如何在iOS 10中发送手写和数字触摸消息