二分类模型评估之 ROC曲线和PR曲线
1、二分模型
考虑一个二分问题,即将实例分成正类(Positive)或负类(Negative)。对一个二分问题来说,会出现四种情况:
TP: 如果一个实例是正类并且也被预测成正类,即为真正类(True Positive);
FP: 如果一个实例是负类而被预测成正类,即为假正类(False Positive);
TN: 如果一个实例是负类并且也被预测成负类,即为真负类(True Negative);
FN: 如果一个实例是正类而被预测成负类,即为假负类(False Negative)。
2、ROC曲线
ROC曲线:ROC曲线一系列根据不同的二分类方式(阈值或分界值),以真阳性率TPR(灵敏度)为纵坐标,假阳性率FPR(1-特异度)为横坐标绘制的曲线。
TPR: 在所有实际为阳性的样本中,被正确地判断为阳性的比率 TRP = TP / (TP + FN)。TPR也被称为正样本的召回率,或者覆盖率。
FPR: 在所有实际为阴性的样本中,被错误地判断为阳性的比率 FPR = FP / (FP + TN)。FPR也被称为负样本的召回率,或者取伪率。
举例:
给定一个二元分类模型和它的阈值,就能从所有样本的真实值和预测值计算出一个坐标点。
样本的真实类别y_true = [1, 1, 0, 0, 1]
y_score = [0.5, 0.6, 0.55, 0.4, 0.7 ]
现在分别选择阈值(0.4、0.5、0.55、0.6、0.7),如果大于等于选定阈值则归为类别1,如果小于选定则归为类别0.
Threhold | y_pred | TP | FP | TN | FN | TPR | FPR |
---|---|---|---|---|---|---|---|
0.4 | [1, 1, 1, 1,] | 3 | 2 | 0 | 0 | 1 | 1 |
0.5 | [0, 1, 1, 1,] | 3 | 1 | 1 | 0 | 1 | 0.5 |
0.55 | [0, 0, 1, 1,] | 2 | 1 | 1 | 1 | 0.67 | 0.5 |
0.6 | [0, 0, 0, 1,] | 2 | 0 | 2 | 1 | 0.67 | 0 |
0.7 | [0, 0, 0, 1,] | 1 | 0 | 2 | 2 | 0.33 | 0 |
以这FPR和TPR分别作为x值和y值,作散点图,得到ROC曲线如下:
顺便把Python代码附上:
import numpy as np
from sklearn.metrics import roc_curve
from sklearn.metrics import roc_auc_score
from matplotlib import pyplot as plty_true = np.array([1, 1, 0, 0, 1])
y_score = np.array([0.5, 0.6, 0.55, 0.4, 0.7 ])
fpr, tpr, thresholds = roc_curve(y_true, y_score, pos_label=1)
AUC_ROC = roc_auc_score(y_true, y_score)roc_curve =plt.figure()
plt.plot(fpr,tpr,'-',label='Area Under the Curve (AUC = %0.4f)' % AUC_ROC)
plt.title('ROC curve')
plt.xlabel("FPR (False Positive Rate)")
plt.ylabel("TPR (True Positive Rate)")
plt.legend(loc="lower right")
3、PR曲线
待续
二分类模型评估之 ROC曲线和PR曲线相关推荐
- [机器学习] 二分类模型评估指标---精确率Precision、召回率Recall、ROC|AUC
一 为什么要评估模型? 一句话,想找到最有效的模型.模型的应用是循环迭代的过程,只有通过持续调整和调优才能适应在线数据和业务目标. 选定模型时一开始都是假设数据的分布是一定的,然而数据的分布会随着时间 ...
- 分类模型-评估指标(2):ROC曲线、 AUC值(ROC曲线下的面积)【只能用于二分类模型的评价】【不受类别数量不平衡的影响;不受阈值取值的影响】【AUC的计算方式:统计所有正负样本对中的正序对】
评价二值分类器的指标很多,比如precision.recall.F1 score.P-R曲线等.但这些指标或多或少只能反映模型在某一方面的性能.相比而言,ROC曲线则有很多优点,经常作为评估二值分类器 ...
- 02_混淆矩阵、准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F值(F-Measure) +Roc曲线和PR曲线+sklearn中分类模型评估API+ 自己补充整理
此博文参考: 关于ROC绘制参考博文: https://blog.csdn.net/u011630575/article/details/80250177 Python+ROC相关的博文: https ...
- 视频|分类模型评估:精确率、召回率、ROC曲线、AUC与R语言生存分析时间依赖性ROC实现
最近我们被客户要求撰写关于分类模型的研究报告,包括一些图形和统计输出. 本文将帮助您回答以下问题: ROC曲线是什么? 曲线下的面积是多少? 二元分类的决策阈值是多少? 分类模型可接受的 AUC值是多 ...
- python 两点曲线_python机器学习分类模型评估
python机器学习分类模型评估 1.混淆矩阵 在分类任务下,预测结果(Predicted Condition)与正确标记(True Condition)之间存在四种不同的组合,构成混淆矩阵(适用于多 ...
- 机器学习分类模型评价指标之ROC 曲线、 ROC 的 AUC 、 ROI 和 KS
前文回顾: 机器学习模型评价指标之混淆矩阵 机器学习模型评价指标之Accuracy.Precision.Recall.F-Score.P-R Curve.AUC.AP 和 mAP 图裂的话请参考:ht ...
- 分类模型评估---从混淆矩阵到ROC,AUC,GINI,KS,Lift,Gain,MSE
4.4.2分类模型评判指标(一) - 混淆矩阵(Confusion Matrix) https://blog.csdn.net/Orange_Spotty_Cat/article/details/80 ...
- 衡量二分类模型的统计指标(TN,TP,FN,FP,F1,准确,精确,召回,ROC,AUC)
文章目录 - 衡量二分类问题的统计指标 分类结果 混淆矩阵 准确率 精确率 召回率 F1评分 推导过程 ROC曲线.AUC - 衡量二分类问题的统计指标 分类结果 二分类问题,分类结果有以下四种情 ...
- AI:神经网络IMDB电影评论二分类模型训练和评估
AI:Keras神经网络IMDB电影评论二分类模型训练和评估,python import keras from keras.layers import Dense from keras import ...
- 多分类f1分数_机器学习之分类模型评估总结
一.概述 在机器学习模型搭建好之后,需要对模型进行评估,针对不同的算法模型有不同的评估方法,比如:分类算法.回归算法.聚类算法等,本文主要是针对分类算法的模型评估方法进行总结整理,便于自己对评估方法的 ...
最新文章
- python运行excel高级筛选怎么用_懂点EXCEL就行!教你利用Python做数据筛选(上)...
- 教你如何定位及优化SQL语句的性能问题
- linux mysql 8安装教程,MySQL8系列安装与配置教程(Linux环境)
- s:property=a value=/取的s:debug/s:debug中的value stack中的属性值
- Map循环/迭代/遍历效率、性能问题。
- Mac下Android相关配置
- 成都信息工程大学上岸软件工程专硕经验分享
- PDF417数据容量
- 贝叶斯公式的理解【转】
- 编辑图片加文字的软件哪个好?这三个软件还不错
- excel入门,如何玩转excel,你早该这么玩Excel笔记9
- Nginx无证书反向代理
- saiku 升级备份恢复
- 2022年美赛D题思路分享+翻译
- Ubuntu更换登录界面壁纸
- 令人头大的慢查询分析
- 玩玩CUBLAS(1)——hello cublas
- java吐泡泡过关,java代码,鱼吐泡泡程序
- Android SDK Android NDK 官方下载地址(zt)
- SpringMVC下载上传Excel文件