当前位置:   article > 正文

深入理解Precision(查准率)、Recall(查全率/召回率)、F1-Score、P-R曲线和micro和macro方法,以及多分类问题P-R曲线_precision p

precision p

深入理解Precision(查准率)、Recall(查全率/召回率)、F1-Score、P-R曲线和micro和macro方法,以及多分类问题P-R曲线

1.回归问题
  • 回归问题最常用的性能度量是“均方误差”(mean squared error)
  • 给定D = {(x1, y1), (x2, y2),……,(xm, ym)},其中yi是示例xi的真实标记;要评估学习器f的性能,要把学习器预测结果和f(x)与真实标记y比较:

E ( f ; D ) = 1 m ∑ n = 1 m ( f ( x i ) − y i ) 2 E(f;D) = \frac{1}{m}\sum_{n=1}^{m}{(f(x_i) - y_i)^2} E(f;D)=m1n=1m(f(xi)yi)2

  • 更一般的,对于数据分布D概率密度函数P(·),均方误差可描述为:

E ( f ; D ) = ∫ x − D ( f ( x ) − y ) 2 p ( x ) d x E(f;D) = \int_{x-D}^{}{(f(x) - y)^2p(x)}dx E(f;D)=xD(f(x)y)2p(x)dx

2.分类问题
  • 错误率: 分类错误的样本数占样本总数的比例。对于样例集D,错误率定义为:

在这里插入图片描述

在这里插入图片描述

  • 精度: 分类正确的样本数占样本总数的比例。
3.true positive(真正例)& false positive(假正例)& true negative (真反例)& false negative(假反例)
  • True Positive (TP): True positive represents the value of correct predictions of positives out of actual positive cases.
  • False Positive (FP): False positive represents the value of incorrect positive predictions.
  • True Negative (TN): True negative represents the value of correct predictions of negatives out of actual negative cases.
  • False Negative (FN): False negative represents the value of incorrect negative predictions.
  • confusion matrix(混淆举证)分类结果的混淆举证如下图:

在这里插入图片描述

在这里插入图片描述

4.Precision Score(查准率/准确率)& Recall Score(查全率/召回率)& F1-score
  • Precision(P): Model precision score represents the model’s ability to correctly predict the positives out of all the positive prediction it made. Precision score is a useful measure of success of prediction when the classes are very imbalanced. Mathematically, it represents the ratio of true positive to the sum of true positive and false positive.
  • 查准率:在模型预测为positive(正)的样本中其中的正样本(真实的正样本)所占的比例。用书上的例子更容易理解:挑出来的瓜中好瓜所占的比例。
  • 在类别的数量不均衡的情况下,查准率是评估模型性能的一个很有用的标准。

P = T P ( T P + F P ) P = \frac{TP}{(TP + FP)} P=(TP+FP)TP

  • Recall: Model recall score represents the model’s ability to correctly predict the positives out of actual positives. This is unlike precision which measures as to how many predictions made by models are actually positive out of all positive predictions made. Recall score is a useful measure of success of prediction when the classes are very imbalanced.
  • 查全率: 在所有正样本中被模型预测为正的样本数所占的比例。用书上的例子即:所有好瓜中被挑出来的瓜所占的比例。
  • 同查准率一样,查全率在类别的数量不均衡的情况下,也是评估模型性能的一个很有用的标准。

P = T P ( T P + F N ) P = \frac{TP}{(TP + FN)} P=(TP+FN)TP

注:上述的例子都是二分类问题,所以只有正例和反例之分,理所当然的就只有唯一的P和R。而在多分类问题中,并没有所谓的正例和反例,precision和recall也不是只有一个,而是每一个类别都对应这一个precision(P)和recall(R)。而至于要得到多分类问题的整体的P和R,可以用后面所讲的macro和micro方法。

  • P-R曲线:在很多情况下,我们可以根据学习器预测的结果对样例进行排序,排在前面的是学习器认为“最可能”是正例的样本,排在最后面的则是学习器认为“最不可能”的样本。按此顺序逐个把样本作为正例进行预测,则每次可以计算出当前的precision(P)和recall(R),并以precision(P)作为纵轴,recall(R)作为横轴作图,就得到P—R曲线。
结合下面得动图更容易理解上面这段话:

图片来自网络中的一篇文章,查看原文更容易理解:

在这里插入图片描述

下图为logistics模型在不同阈值上得P(precision)和R(recall)得计算:

图片来源于网络,可点击链接查看原文:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 如何根据P-R曲线评估模型的性能:
  • 很显然如果在P-R曲线图中,一个曲线完全“包住”另一个曲线,则可以断言前者的性能优于后者。如上图,很容易判断A > C, B > C.但是对于A和B而言我们并不好做出这样的断言。
  • 如果在P-R曲线中,两个曲线出现了交叉,如A曲线和B曲线,我们要衡量出A和B的性能,有一种办法就是用Break-Even Point(BEP)来衡量,它考察的是Precision和Recall相等时的值,基于这一点可以看出A > B。
  • F1-score:上述的BEP过于简化,更常用的是F1-score
  • 如何根据P-R曲线评估模型的性能:
  • 很显然如果在P-R曲线图中,一个曲线完全“包住”另一个曲线,则可以断言前者的性能优于后者。如上图,很容易判断A > C, B > C.但是对于A和B而言我们并不好做出这样的断言。
  • 如果在P-R曲线中,两个曲线出现了交叉,如A曲线和B曲线,我们要衡量出A和B的性能,有一种办法就是用Break-Even Point(BEP)来衡量,它考察的是Precision和Recall相等时的值,基于这一点可以看出A > B。
  • F1-score:上述的BEP过于简化,更常用的是F1-score

F 1 = 2 × P × R P + R = 2 × T P 样 例 总 数 + T P − T N = 2 × T P 2 × T P + F P + F N F1 = \frac{2\times P \times R}{P + R} = \frac{2 \times TP}{样例总数 + TP - TN} = \frac{2 \times TP}{2 \times TP + FP + FN} F1=P+R2×P×R=+TPTN2×TP=2×TP+FP+FN2×TP

F1-score是precision(P)和recall(R)的二数调和平均数:
F 1 = 2 1 P + 1 R F1 = \frac{2}{\frac{1}{P} + \frac{1}{R}} F1=P1+R12

  • Fβ-score: 在一些应用中,对precision-score和recall-score的重视程度有所不同,这时F1-score的一般形式——Fβ能表达出对precision-Score/recall-score的不同偏好,Fβ定义为:

F β = ( 1 + β 2 ) × P × R ( β 2 × P ) + R ( β > 0 ) Fβ = \frac{(1 + β^2)\times P \times R}{(β^2 \times P) + R} (β > 0) Fβ=(β2×P)+R(1+β2)×P×R(β>0)

β > 1时recall(R)有更大影响。

β < 1时precision(P)有大影响。

  • macro- 和 micro- 上述提到的precision和recall和F1等有关的例子都是单个二分类问题,但是很多时候我们hi多次训练/测试,或者是在多个数据集上训练/测试,这时候,我们会得到多个混淆矩阵,多个P和R和F1。我们这里开始考虑多分类问题,多分类问题的precision和recall和F1该如何计算。如下图的例子为多分类问题的(confusion martix)混淆矩阵:

在这里插入图片描述

  • 多分类问题的TP,TN,FP,FN,precision,recall,F1-score
  • 如上图的例子,为三分类问题,有Apple、Orange、Mango这三种,此时二分类中的正例和反例,但是,我们可以针对每一类分出“正例”和“反例”,针对Apple,Apple为正例,而Orange和Mango为反例,然后分别计算每一类的数据。
  • 对于Apple的TP、TN、FP、FN:
    • TP = 7
    • TN = (2+3+2+1) = 8
    • FP = (8+9) = 17
    • FN = (1+3) = 4
  • 对于Applede的Precision、Recall、F1-score
    • Precision = 7/(7+17) = 0.29
    • Recall = 7/(7+4) = 0.64
    • F1-score = 0.40
  • 多分类问题可以按照上面同样的方法计算每一类的相应数据,可以得到下图所示的表格

在这里插入图片描述

按照上面所说,多个confusion matrix(混淆矩阵)和多分类问题的confusion matrix会得出多个precision、recall、F1,那我们如何综合考察precision和recall呢?

  • macro:一种直接的办法是在个confusion matrix上分别计算出precision和recall,记为(P1, R1),(P2, R2)……(Pn, Rn),然后再计算平均值,这样得到“macro-P(宏查准率)、macro-R(宏查全率)、macro-F1(宏F1)。

m a c r o − p = 1 n ∑ i = 1 n P i macro-p = \frac{1}{n}\sum_{i=1}^{n}{P_i} macrop=n1i=1nPi

m a c r o − R = 1 n ∑ i = 1 n R i macro-R = \frac{1}{n}\sum_{i=1}^{n}{R_i} macroR=n1i=1nRi

m a c r o − F 1 = 1 n ∑ i = 1 n F 1 i = 2 × m a c r o − P × m a c r o − R m a c r o − P + m a c r o − R macro-F1 = \frac{1}{n}\sum_{i=1}^{n}{F1_i} = \frac{2 \times macro-P \times macro-R}{macro-P + macro-R} macroF1=n1i=1nF1i=macroP+macroR2×macroP×macroR

  • micro: 还可以将各confusion martix的对应元素进行平均,得到TP、FP、TN、FN的平均值,再基于这些平均值计算出micro-P(微查准率)、micro-R(微查全率)、micro-F1(微F)。

m i c r o − P = T P ‾ T P ‾ + F P ‾ micro-P = \frac{\overline{TP}}{\overline{TP} + \overline{FP}} microP=TP+FPTP

m i c r o − R = T P ‾ T P ‾ + F N ‾ micro-R = \frac{\overline{TP}}{\overline{TP} + \overline{FN}} microR=TP+FNTP

m i c r o − F 1 = 2 × T P ‾ 2 × T P ‾ + F P ‾ + F N ‾ = 2 × m i c r o − P × m i c r o − R m i c r o − P + m i c r o − R micro-F1 = \frac{2 \times\overline{TP}}{2\times\overline{TP} + \overline{FP}+ \overline{FN}} = \frac{2\times micro-P \times micro-R}{micro-P + micro-R} microF1=2×TP+FP+FN2×TP=microP+microR2×microP×microR

理解ROC和AUC在另外一篇博客中:
https://blog.csdn.net/qq_46020653/article/details/119613712
西瓜书的第二章的笔记博客链接:
https://blog.csdn.net/qq_46020653/article/details/119493200
其他有关机器学习的博客文章:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/142941
推荐阅读
相关标签
  

闽ICP备14008679号