PR曲线 ROC曲线的 计算及绘制
在linear model中,我们对各个特征线性组合,得到linear score,然后确定一个threshold,linear score < threshold 判为负类,linear score > threshold 判为正类。画PR曲线时, 我们可以想象threshold 是不断变化的。首先,threshold 特别大,这样木有一个是正类,我们计算出查全率与查准率; 然后 threshold 减小, 只有一个正类,我们计算出查全率与查准率;然后 threshold再减小,有2个正类,我们计算出查全率与查准率;threshold减小一次,多出一个正类,直到所有的类别都被判为正类。 然后以查全率为横坐标,差准率为纵坐标,画出图形即可。
例如,有
实际类别 | linear score | threshold 为6 | threshold 为5 | threshold 为4 | threshold 为3 | threshold 为2 | threshold 为1 | |
+ | 5.2 | - | + | + | + | + | + | |
+ | 4.45 | - | - | + | + | + | + | |
- | 3.5 | - | - | - | + | + | + | |
- | 2.45 | - | - | - | - | + | + | |
- | 1.65 | - | - | - | - | - | + | |
0/0 | 1 / 1 | 2 / 2 | 2 / 3 | 2 / 4 | 2 / 5 | 查准率 | ||
0/2 | 1 / 2 | 2 / 2 | 2/ 2 | 2 / 2 | 2/ 2 | 差全率 | ||
0/2 | 1/2 | 2/2 | 2/2 | 2/2 | 2/2 | TPR | ||
0/3 | 0/3 | 1/3 | 2/3 | 3/3 | FPR |
行是实际的类,列是分类器得到的类别。常用的术语如下:
真阳性(TP)——正确的肯定
真阴性(TN)——正确的否定
假阳性(FP)——错误的肯定,假报警,第一类错误
假阴性(FN)——错误的否定,未命中,第二类错误
查全率: 预测为正的里面,实际为正的比例。
查准率:预测为正,实际为正 占的比例。
真正例率(TPR) = 查全率
TPR = TP / P = TP / (TP+FN)
假正例率(FPR)
FPR = FP / N = FP / (FP + TN)
PR
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
Recall = np.array([0,1/2,2/2,2/2,2/2,2/2])
Precison = np.array([1/1,2/2,2/3,2/4,2/5,0])
Precison = np.array([0,1/1,2/2,2/3,2/4,2/5])
plt.figure()
plt.ylim(0,1.1)
plt.xlabel("Recall")
plt.xlim(0,1.1)
plt.ylabel("Precison")
plt.plot(Recall,Precison)
plt.show()
ROC与PR类似,只是横坐标与纵坐标换成成了FPR与TPR,这样FPR与TPR计算时,分母不变,画图更加方便。
绘图过程:给定m1 个正例,m2 个负例. linear score 排序。
在坐标(0,0)标一个点,然后改变阈值,多出一个预测正例,
设当前的坐标为(x,y),当前若为真正例,则对应坐标点的坐标为(x,y+1/m1),当前若为假正例,则对应坐标点的坐标为(x+1/m2,y)
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
FPR = np.array([0/3,0/3,0/3,1/3,2/3,3/3])
TPR = np.array([0/2,1/2,2/2,2/2,2/2,2/2]) plt.figure()
plt.ylim(-0.1,1.5)
plt.xlabel("FPR")
plt.xlim(-0.1,1.5)
plt.ylabel("TPR")
plt.plot(FPR,TPR)
plt.show()
PR曲线 ROC曲线的 计算及绘制的更多相关文章
- 绘制ROC曲线
什么是ROC曲线 ROC曲线是什么意思,书面表述为: "ROC 曲线(接收者操作特征曲线)是一种显示分类模型在所有分类阈值下的效果的图表." 好吧,这很不直观.其实就是一个二维曲线 ...
- ROC曲线 VS PR曲线
python机器学习-乳腺癌细胞挖掘(博主亲自录制视频)https://study.163.com/course/introduction.htm?courseId=1005269003&ut ...
- [机器学习]-分类问题常用评价指标、混淆矩阵及ROC曲线绘制方法
分类问题 分类问题是人工智能领域中最常见的一类问题之一,掌握合适的评价指标,对模型进行恰当的评价,是至关重要的. 同样地,分割问题是像素级别的分类,除了mAcc.mIoU之外,也可以采用分类问题的一些 ...
- ROC曲线、PR曲线
在论文的结果分析中,ROC和PR曲线是经常用到的两个有力的展示图. 1.ROC曲线 ROC曲线(receiver operating characteristic)是一种对于灵敏度进行描述的功能图像. ...
- 分类问题(四)ROC曲线
ROC曲线 ROC曲线是二元分类器中常用的工具,它的全称是 Receiver Operating Characteristic,接收者操作特征曲线.它与precision/recall 曲线特别相似, ...
- ROC曲线、KS曲线
一.ROC曲线 ROC曲线由混淆矩阵为基础数据生成. 纵坐标:真阳性比率TPR,预测为正占真正为正的比例. 横坐标:假阳性比率FPR,预测为正占真正为负的比例. 除了roc曲线的纵横坐标外,还有一个准 ...
- ROC曲线和PR曲线绘制【转】
TPR=TP/P :真正率:判断对的正样本占所有正样本的比例. Precision=TP/(TP+FP) :判断对的正样本占判断出来的所有正样本的比例 FPR=FP/N :负正率:判断错的负样本占所 ...
- Mean Average Precision(mAP),Precision,Recall,Accuracy,F1_score,PR曲线、ROC曲线,AUC值,决定系数R^2 的含义与计算
背景 之前在研究Object Detection的时候,只是知道Precision这个指标,但是mAP(mean Average Precision)具体是如何计算的,暂时还不知道.最近做OD的任 ...
- ROC曲线和PR曲线
转自:http://www.zhizhihu.com/html/y2012/4076.html分类.检索中的评价指标很多,Precision.Recall.Accuracy.F1.ROC.PR Cur ...
随机推荐
- 处理URL为模块/控制器/方法的格式
一个路由在不确定长度的情况下,控制器和方法不一定传参进来,可能只有模块,甚至模块都没有,这个时候需要特殊处理一下,默认模块用 index,默认控制器用index,默认方法用 index来处理URL. ...
- shell基础篇(九)函数
函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高.像其他编程语言一样,Shell 也支持函数.Shell 函数必须先定义后使用1. Shell 函数的定义格式如下: ...
- docker学习-docker核心技术
镜像:集装箱 ---build 仓库:超级码头 ----ship 容器:运行程序的地方 ----run docker运行一个程序的过程:去仓库把镜像拉到本地,然后用一条命令把镜像运行起 ...
- 对double数据类型的数据保留两位小数,并且进行四舍五入
1.代码如下: /** * 对double数据类型的数据 保留两位小数,并且进行四舍五入 * @author Administrator */ public class Main { // 工具类 p ...
- MQTT--单片机实现即时通信
链接--->http://blog.csdn.net/zhou6343178/article/details/51182623 1.准备条件: a)硬件:ATMEGA644PA 8位单片机 EN ...
- 《C++ Primer Plus》15.5 类型转换运算符 学习笔记
C++相对C更严格地限制允许的类型转换,并添加4个类型转换运算符,是转换过程更规范:* dynamic_cast:* const_cast:* static_cast:* reinterpret_ca ...
- 【PHP】 解决报错:Error: php71w-common conflicts with php-common-5.4.16-43.el7_4.x86_64
背景: 手动安装的PHP7 环境 问题:在安装扩展的时候.无论输入 php-* 来安装任何扩展.都会报错 Error: php71w-common conflicts with php-common ...
- struts2基础---->第一个Struts2程序
学习struts2的第一个程序,这里只会涉及到简单的代码编写.有一个夜晚我烧毁了所有的记忆,从此我的梦就透明了:有一个早晨我扔掉了所有的昨天,从此我的脚步就轻盈了. Struts的项目
- 日请求亿级的QQ会员AMS平台PHP7升级实践
版权声明:本文由PHP7升级项目组原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/74 来源:腾云阁 https://www ...
- 暴力破解工具hydra
Hydra是一个并行登录的裂解装置,它支持众多的协议来攻击.新的模块很容易的添加,旁边,它是灵活的,而且速度非常快. 首先安装的是hydra的支持库包软件. yum -y install openss ...