PR曲线与ROC曲线绘制
0 用到的知识
介绍ROC和PR前先介绍混淆矩阵便于理解。
- | 预测值 正 | 预测值 负 |
---|---|---|
真实值 正 | TP | FN |
真实值 负 | FP | TN |
TP(True Positive): 被判定为正样本,实际也为正样本
FN(False Negative):伪阴性 ,被判定为负样本,实际为正样本
FP(False Positive):伪阳性,被判断为正样本,实际为负样本
TN(True Negative):被判断为负样本,实际为负样本
假阳率:在所有的负样本中,分类器预测错误的比例
FPR=FPFP+TNFPR = \frac{FP}{FP+TN}FPR=FP+TNFP
真阳率:在所有的正样本中,分类器预测正确的比例
TPR=TPTP+FNTPR = \frac{TP}{TP + FN}TPR=TP+FNTP
recall 分类器所预测正确的正样本占所有正样本的比例,和FPR相同
r=TPTP+FNr = \frac{TP}{TP + FN}r=TP+FNTP
precision 分类器预测的正样本中预测正确的比例。
p=TPTP+FPp = \frac{TP}{TP + FP}p=TP+FPTP
1 绘制 ROC
1.1 排序
按照属于‘正样本’的概率将所有样本排序
1.2 描点
(1)从得分最高的第一个样本开始,如果将他的score作为阈值,也就是说,当score大于等于0.9时,才把样本归类到真阳性(true positive),这么一来, 在ROC曲线图中,样本1对应的混淆矩阵(confusion matrix)为
- | 预测值 正 | 预测值 负 |
---|---|---|
真实值 正 | 1 | 9 |
真实值 负 | 0 | 10 |
其中,正样本只有样本1分类正确,此时TPR = 1 / (1 + 9) = 0.1,FPR = 0 / (0 + 10) = 0.0,此时可以在(0, 0.1)处标记一个点。
(2)看第2个样本。此时与之设为0.8,样本2对应的混淆矩阵(confusion matrix)为
- | 预测值 正 | 预测值 负 |
---|---|---|
真实值 正 | 2 | 8 |
真实值 负 | 0 | 10 |
其中,正样本只有样本1,2分类正确,此时TPR = 2 / (2 + 8) = 0.2,FPR = 0 / (0 + 10) = 0.0,此时可以在(0, 0.2)处标记一个点。
(3)看第3个样本。此时与之设为0.7,样本3实际为负样本,被错误的预测为了正样本,对应的混淆矩阵(confusion matrix)为
- | 预测值 正 | 预测值 负 |
---|---|---|
真实值 正 | 2 | 8 |
真实值 负 | 1 | 9 |
其中,正样本只有样本1,2分类正确,此时TPR = 2 / (2 + 8) = 0.2,FPR = 1 / (1 + 9) = 0.1,此时可以在(0.1, 0.2)处标记一个点。
重复上述步骤直至所有样本遍历完成,然后将所有的点连接起来,可以得到下图:
(0,1)点:代表FPR=0,TPR=1; 最好的情况,所有正样本都被正确的预测了,并且没有负样本被人为是正样本。
(1,0)点:代表FPR=1,TPR=0;最坏的情况,表明所有的正样本都被错误的认为是负样本
(0,0)点:代表FPR=0,TPR=0;分类器将所有的样本都判定为负样本
(1,1)点:代表FPR=1,TPR=1;分类器将所有的样本都判定为正样本
2 绘制 PR
PR曲线是由精确率和召回率的点连成的线,横轴为Recall,纵轴为Precision,
在PR曲线中越右上凸越好,PR想要Precision 和Recall同时高
2.1 排序
按照属于‘正样本’的概率将所有样本排序
1.2 描点
(1)从得分最高的第一个样本开始,如果将他的score作为阈值,也就是说,当score大于等于0.9时,才把样本归类到真阳性(true positive),这么一来, 在ROC曲线图中,样本1对应的混淆矩阵(confusion matrix)为
- | 预测值 正 | 预测值 负 |
---|---|---|
真实值 正 | 1 | 9 |
真实值 负 | 0 | 10 |
其中,正样本只有样本1分类正确,此时Recall = 1 / (1 + 9) = 0.1,2,Precision = 1 / (1 + 0) = 1.0,此时可以在(0.1, 1)处标记一个点。
(2)看第2个样本。此时与之设为0.8,样本2对应的混淆矩阵(confusion matrix)为
- | 预测值 正 | 预测值 负 |
---|---|---|
真实值 正 | 2 | 8 |
真实值 负 | 0 | 10 |
其中,正样本只有样本1,2分类正确,此时Recall = 2 / (2 + 8) = 0.2,Precision = 2 / (2 + 0) = 1.0,此时可以在(0.2, 1)处标记一个点。
(3)看第3个样本。此时与之设为0.7,样本3实际为负样本,被错误的预测为了正样本,对应的混淆矩阵(confusion matrix)为
- | 预测值 正 | 预测值 负 |
---|---|---|
真实值 正 | 2 | 8 |
真实值 负 | 1 | 9 |
其中,正样本只有样本1,2分类正确,此时Recall = 2 / (2 + 8) = 0.2,Precision = 2 / (2 + 1) = 0.67,此时可以在(0.67, 0.2)处标记一个点。
重复上述步骤直至所有样本遍历完成,然后将所有的点连接起来,可以得到下图:
欢迎关注微信公众号(算法工程师面试那些事儿),本公众号聚焦于算法工程师面试,期待和大家一起刷leecode,刷机器学习、深度学习面试题等,共勉~
PR曲线与ROC曲线绘制相关推荐
- 机器学习:python绘制P-R曲线与ROC曲线
Python绘制P-R曲线与ROC曲线 查准率与查全率 P-R曲线的绘制 ROC曲线的绘制 查准率与查全率 P-R曲线,就是查准率(precision)与查全率(recall)的曲线,以查准率作为 ...
- python绘制pr曲线图_利用Python中的numpy包实现PR曲线和ROC曲线的计算!
闲来无事,边理解PR曲线和ROC曲线,边写了一下计算两个指标的代码.在python环境下,sklearn里有现成的函数计算ROC曲线坐标点,这里为了深入理解这两个指标,写代码的时候只用到numpy包. ...
- 机器学习性能度量(1):P-R曲线与ROC曲线,python sklearn实现
最近做实验要用到性能度量的东西,之前学习过现在重新学习并且实现一下. 衡量模型泛化能力的评价标准,这就是性能度量.性能度量反应了任务需求,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判 ...
- 百面机器学习 #2 模型评估:0102 精确率与召回率,假阳性与真阳性率,PR曲线和ROC曲线
文章目录 1. P-R(Precision-Recall)曲线 F1 score 2. 平方根误差的局限性 3. ROC曲线 ROC曲线绘制 4. AUC predict Positive predi ...
- P-R曲线与ROC曲线使用总结
P-R曲线与ROC曲线总结 作者:jliang https://blog.csdn.net/jliang3 1.P-R曲线 1)实际预测时二分类的四种情况 真阳性/真正类(True Positive, ...
- 机器学习笔记(一)P-R曲线与ROC曲线
P-R曲线与ROC曲线 一.什么是P-R曲线? 二.什么是ROC曲线? 三.P-R曲线与ROC曲线有什么用? 三.绘制P-R曲线代码 一.什么是P-R曲线? 要知道什么是P-R曲线,首先,我们要先了解 ...
- 模型评估指标:P-R曲线和ROC曲线
在机器学习建模中,模型评估指标用于评估不同模型的优劣. 在分类任务中,最简单的评估指标莫过于错误率和精度了,错误率表示的是错误分类的样本个数占总样本个数的比例,精度则是1减去错误率. 错误率和精度的优 ...
- 机器学习中的性能指标:精度、召回率,PR曲线,ROC曲线和AUC,及示例代码
机器学习中的性能指标:精度.召回率.PR曲线,ROC曲线和AUC 精度.召回率 基本概念 F-Score 度量曲线 PR曲线 ROC曲线 PR曲线和ROC曲线的比较 AUC 精度.召回率 基本概念 可 ...
- 机器学习模型性能评估(二):P-R曲线和ROC曲线
上文简要介绍了机器学习模型性能评估的四种方法以及应用场景,并详细介绍了错误率与精度的性能评估方法.本文承接上文,继续介绍模型性能评估方法:P-R曲线和ROC曲线. ...
- 一文详尽混淆矩阵、准确率、精确率、召回率、F1值、P-R 曲线、ROC 曲线、AUC 值、Micro-F1 和 Macro-F1
文章目录 二分类的评价指标 一.混淆矩阵与 TP.TN.FP.FN 二.准确率.精确率.召回率.F1值 三.P-R 曲线 四.ROC 曲线.AUC 值 五.P-R曲线和ROC曲线有什么区别,如何选择? ...
最新文章
- RocketMQ 实战 消息发送样例
- faster rcnn第二阶段loss出现nan_利用Faster_Rcnn训练模型时出现的问题
- Java8 Lambda不仅仅只是语法糖
- 有效括号 python_python 有效的括号的实现代码示例
- 利用WinRAR命令行压缩文件或文件夹
- 三维重建面试0:*SLAM滤波方法的串联综述
- vue3+typescript引入外部文件
- etcd官方推荐的硬件配置
- 微信公众号开发系列教程一(调试环境部署)
- mysql将字符串转成数字
- QNAP 修复 NAS 备份应用中的严重漏洞
- 实验报告二:例2-19 一位全加器
- 全国计算机等级二级ACCESS数据库程序设计(更新完毕)
- U盘拷贝大文件提示文件过大无法拷贝怎么解决
- Asp.net 简单的站内搜索引擎
- 分数混合运算简便方法_分数混合运算和简便算法
- 生成国庆头像网站的源码及搭建教程
- 读书笔记:少有人走的路
- 服务器怎么解绑网站域名,宝塔面板如何解绑域名
- springCloud——ribbon和zuul