精确率与召回率,RoC曲线与PR曲线

简介:

 在机器学习的算法评估中,尤其是分类算法评估中,我们经常听到精确率(precision)与召回率(recall),RoC曲线与PR曲线这些概念,那这些概念到底有什么用处呢?

    首先,我们需要搞清楚几个拗口的概念:

1. TP, FP, TN, FN

    1.   True Positives,TP:预测为正样本,实际也为正样本的特征数
    2.   False Positives,FP:预测为正样本,实际为负样本的特征数
    3.   True Negatives,TN:预测为负样本,实际也为负样本的特征数
    4.   False Negatives,FN:预测为负样本,实际为正样本的特征数

    听起来还是很费劲,不过我们用一张图就很容易理解了。图如下所示,里面绿色的半圆就是TP(True Positives), 红色的半圆就是FP(False Positives), 左边的灰色长方形(不包括绿色半圆),就是FN(False Negatives)。右边的 浅灰色长方形(不包括红色半圆),就是TN(True Negatives)。这个绿色和红色组成的圆内代表我们分类得到模型结果认为是正值的样本。

 

2. 精确率(precision),召回率(Recall)与特异性(specificity)

    精确率(Precision)的定义在上图可以看出,是绿色半圆除以红色绿色组成的圆。严格的数学定义如下:

    P=TPTP+FPP=TPTP+FP 

    召回率(Recall)的定义也在图上能看出,是绿色半圆除以左边的长方形。严格的数学定义如下:
R=TPTP+FNR=TPTP+FN 

    特异性(specificity)的定义图上没有直接写明,这里给出,是红色半圆除以右边的长方形。严格的数学定义如下:

    S=FPFP+TNS=FPFP+TN 

    有时也用一个F1值来综合评估精确率和召回率,它是精确率和召回率的调和均值。当精确率和召回率都高时,F1值也会高。严格的数学定义如下:

    2F1=1P+1R2F1=1P+1R 

    有时候我们对精确率和召回率并不是一视同仁,比如有时候我们更加重视精确率。我们用一个参数ββ来度量两者之间的关系。如果β>1β>1, 召回率有更大影响,如果β<1β<1,精确率有更大影响。自然,当β=1β=1的时候,精确率和召回率影响力相同,和F1形式一样。含有度量参数ββ的F1我们记为Fβ, 严格的数学定义如下:

    Fβ=(1+β2)PRβ2P+RFβ=(1+β2)∗P∗Rβ2∗P+R 

    我们熟悉了精确率, 召回率和特异性,后面的RoC曲线和PR曲线就好了解了。

3. RoC曲线和PR曲线

    有了上面精确率, 召回率和特异性的基础,理解RoC曲线和PR曲线就小菜一碟了。

    以召回率为y轴,以特异性为x轴,我们就直接得到了RoC曲线。从召回率和特异性的定义可以理解,召回率越高,特异性越小,我们的模型和算法就越高效。也就是画出来的RoC曲线越靠近左上越好。如下图左图所示。从几何的角度讲,RoC曲线下方的面积越大越大,则模型越优。所以有时候我们用RoC曲线下的面积,即AUC(Area Under Curve)值来作为算法和模型好坏的标准。

    以精确率为y轴,以召回率为x轴,我们就得到了PR曲线。仍然从精确率和召回率的定义可以理解,精确率越高,召回率越高,我们的模型和算法就越高效。也就是画出来的PR曲线越靠近右上越好。如上图右图所示。

    使用RoC曲线和PR曲线,我们就能很方便的评估我们的模型的分类能力的优劣了。


本文转自刘建平Pinard博客园博客,原文链接:http://www.cnblogs.com/pinard/p/5993450.html,如需转载请自行联系原作者


相关文章
|
2月前
|
机器学习/深度学习 计算机视觉
秒懂Precision精确率、Recall召回率-附代码和案例
秒懂Precision精确率、Recall召回率-附代码和案例
52 1
|
8月前
|
机器学习/深度学习 算法 搜索推荐
精确率(Precision)和召回率(Recall)
精确率(Precision)和召回率(Recall)是用于评估分类模型性能的指标。它们通常用于二分类问题,例如判断一个样本是正例(Positive)还是负例(Negative)。
1670 0
|
3天前
|
数据可视化
R语言中绘制ROC曲线和PR曲线
R语言中绘制ROC曲线和PR曲线
23 4
|
24天前
|
机器学习/深度学习 算法 计算机视觉
详解机器视觉性能指标相关概念——混淆矩阵、IoU、ROC曲线、mAP等
详解机器视觉性能指标相关概念——混淆矩阵、IoU、ROC曲线、mAP等
45 0
|
5月前
|
C++
深度解析roc曲线、AUC与排序损失
深度解析roc曲线、AUC与排序损失
69 0
|
1月前
|
机器学习/深度学习 数据采集 数据可视化
mlr3verse vs KM曲线:谁能更精准地预测生存率?
mlr3verse vs KM曲线:谁能更精准地预测生存率?
26 0
|
5月前
|
数据挖掘
19 误差分布曲线的建立 - 高斯导出误差正态分布
19 误差分布曲线的建立 - 高斯导出误差正态分布
20 0
|
8月前
|
大数据
二分类及多分类ROC和PR曲线绘制
二分类及多分类ROC和PR曲线绘制
232 0
|
分布式计算 搜索推荐 数据库
准确率(Accuracy) 精确率(Precision) 召回率(Recall)和F1-Measure(精确率和召回率的调和平均值)
准确率(Accuracy) 精确率(Precision) 召回率(Recall)和F1-Measure(精确率和召回率的调和平均值) Spark 构建分类模型
1341 0
准确率(Accuracy) 精确率(Precision) 召回率(Recall)和F1-Measure(精确率和召回率的调和平均值)
|
10月前
|
机器学习/深度学习 数据可视化 Serverless
RNAseq|Lasso构建预后模型,绘制风险评分的KM 和 ROC曲线
RNAseq|Lasso构建预后模型,绘制风险评分的KM 和 ROC曲线
527 0