【评价指标】如何计算模型评估中的AUC和AUPR值
计算模型的auc、aupr值一般用sklearn的包进行计算,下面是计算auc的详细过程。y_true是数据的真实标签,y_score是模型的预测得分。
对于计算的auc值,这里详细解释一下什么是auc。AUC的英文是Area Under The Curve,意思就是曲线下的面积,所以这是个抽象的概念。需要指定计算什么曲线下的面积,这样计算出来的数值才有意义。下面的例子计算的是roc曲线的面积(如何理解ROC曲线):
import numpy as np
from sklearn.metrics import roc_auc_score
y_true = np.array([0, 0, 1, 1])
y_scores = np.array([0.1, 0.4, 0.35, 0.8])
roc_auc_score(y_true, y_scores)
输出:0.75
import numpy as np
from sklearn import metrics
y = np.array([0, 0, 1, 1])
pred = np.array([0.1, 0.4, 0.35, 0.8])
fpr, tpr, thresholds = metrics.roc_curve(y, pred)
metrics.auc(fpr, tpr)
输出:0.75
以上两种计算roc_auc的方式,得出的结果是一样的。第一种计算方法直接出结果,第二种方法可以得出fpr,tpr的值能够进行画图(详细的区别查看参考文献[4])
PR曲线概念:PR曲线中的P代表的是precision(精准率),R代表的是recall(召回率),其代表的是精准率与召回率的关系,一般情况下,将recall设置为横坐标,precision设置为纵坐标。
import numpy as np
from sklearn.metrics import average_precision_score, auc
y_true = np.array([0, 0, 1, 1,1,1])
y_scores = np.array([0, 0.5, 0.4, 1,1,1])
print (average_precision_score(y_true, y_scores) )# 严格定义计算方法
precision, recall, thresholds = precision_recall_curve(y_true, y_scores)
print(auc(recall, precision))
plt.xlabel('Recall')
plt.ylabel('Precision')
# plt.grid() # 生成网格plt.plot(recall,precision)
plt.figure("P-R Curve")
plt.show()
上面的两种计算方法都是计算曲线的AUPR值,然而程序算出的结果是0.95, 而严格按照定义算出来的结果是0.94375。我们需要注意这个区别,具体的原因参见参考文献[6]。
如何绘制AUROC和AUPR曲线(绘制AUC和AUPR曲线)
AUC与AUPR的区别是什么?
参考文献
[1]如何理解机器学习和统计中的AUC?
[2]机器学习中auc与aupr 指的是什么?
[3]详解scikit-learn计算ROC/AUC曲线
[4]sklearn:auc、roc_curve、roc_auc_score
[5]PR曲线详解
[6]为什么平均精准度(Average Precision,AP)就是PR曲线的线下面积?
[7]sklearn.metrics import average_precision_score研究
【评价指标】如何计算模型评估中的AUC和AUPR值相关推荐
- ML:模型训练/模型评估中常用的两种方法代码实现(留一法一次性切分训练和K折交叉验证训练)
ML:模型训练/模型评估中常用的两种方法代码实现(留一法一次性切分训练和K折交叉验证训练) 目录 模型训练评估中常用的两种方法代码实现 T1.留一法一次性切分训练 T2.K折交叉验证训 模型训练评估中 ...
- 决策树可视化及模型评估 SE SP AUC
目录 2.1 决策树 2.1.1 样本数据集 2.1.2 决策树可视化 2.2 模型分类性能预测 2.2.1 模型稳定性 2.2.2 SE.SP.ACC分类性能预测 # 代码实现 2.1 决策树 2. ...
- 模型评估中的查准率、查全率、ROC曲线
P-R曲线 对于二分类问题,可以将训练集的真实类别与机器学习预测的类别划分为真正例(true positive) .假正例(false positive) .真反倒(true negative) .假 ...
- 模型评估:K-S值和AUC的区别
进大厂,身价翻倍的法宝来了! 主讲内容:docker/kubernetes 云原生技术,大数据架构,分布式微服务,自动化测试.运维. 腾讯课堂:点击进入 网易课堂:点击进入 7月1号-7月29号 8折 ...
- python模型评估_模型评估知识点总结及Python实现
目录 1.概述 2.分类评估--混淆矩阵 3.分类评估--ROC.AUC.提升图与KS图 4.回归评估 5.非监督评估 正文 1.概述 数据集输入到一个模型中,然后再进行输出,我们可以得到模型的输出结 ...
- 分类模型评估之ROC-AUC
ROC曲线和AUC ROC(Receiver Operating Characteristic,接受者工作特征曲线)曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣. ...
- 西瓜书笔记之 模型评估与选择
讲真,这书是越看觉得自己不会的越多,感觉好多概念,完全不是理工男喜欢的样子.. 首先了解一下NP问题,机器学习面临的问题多是NP完全问题(NP-C问题),号称世界七大数学难题之一. NP的英文全称是N ...
- 机器学习模型 知乎_机器学习:模型评估之评估方法
机器学习已经成为了人工智能的核心研究领域之一,它的研究动机就是为了让计算机系统具有人的学习能力以便实现人工智能.目前,关于机器学习定义的说法比较多,而被广泛采用的定义是"利用经验来改善计算 ...
- arima模型python_Python中的Arima模型进行温度预测
arima模型python Time Series forecasting is one of the most in-demand techniques of data science, be it ...
最新文章
- 【Flask】Jinja2之模板继承
- 一些非常有用的备忘录文档
- aodv协议C语言代码,AODV协议的运行方式
- java 反射(Reflection) 详解
- mysql显示百分比例_显示值mysql的百分比
- 陆奇:疫情后将出现哪些创业新机会?
- SpringBoot集成Es使用ElasticSearchTemplate7.x版本自动注入失败解决
- windows下使用DOS命令删除大文件
- rose顺序图转换为协作图_如何用GX Developer编程软件编写SFC顺序功能图?
- oracle10g em 产生log,如何创建Oracle10G EM dbcontrol
- mysql必背_必背的mysql语句.doc
- 第15章-使用远程服务
- jmeter404_jmeter压力测试报告
- 使用NekoHtml处理网页(删除Style标签)
- 阿里出品的最新版 Java 开发手册,嵩山版,扫地僧
- 肝移植笔记1:论文阅读-对率回归预测移植物失功概率
- ultravnc download windows 7,ultravnc download windows 7软件的4大优势
- 区块链和博弈论(以下转载自网络)
- 日志分析---携来百侣曾游,忆往昔峥嵘岁月稠
- IntellJ IDEA 基础之 常用快捷键的简单整理