机器学习分类和回归任务中的模型评估

一、性能度量概念

    对学习器的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型泛化能力的评估标准,这就是性能度量。

    在预测任务中,给定样例集D={(x1,y1),(x2,y2),,(xm,ym)}D={\lbrace(x_1,y_1),(x_2,y_2),…,(x_m,y_m)\rbrace},其中 yiy_i 是示例 xix_i 的真实标记。要评估机器学习 ff 的性能,就要把学习器预测结果 f(x)f(x) 与真实标记 yy 进行比较。

二、回归任务性能度量

    回归任务最常用的性能度量是“均方误差”(mean squared error)
E(f;D)=1mi=1m(f(xi)yi)2E(f;D)=\frac{1}{m}\sum_{i=1}^m(f(x_i)-y_i)^2

    更一般的。对于数据分布DD 和概率密度函数p()p(\cdot),均方误差可描述为
E(f;D)=xD(f(x)y)2 p(x)dxE(f;D)=\int_{x-D} (f(x)-y)^2~p(x)dx

三、分类任务性能度量

    以二分类为例,可将样例根据其真实类别与学习器预测类别的组合划分为真正例(true positive)、假正例(false positive)、真反例(true negative)、假反例(false negative)四种情况,令 TP、FP、TN、FN分别表示其对应的样例数,显然有 TP+FP+TN+FN=样例总数。分类结果的“混淆矩阵”如下所示
机器学习分类和回归任务中的模型评估

1、准确率

Accrucy=TP+TNTP+FP+TN+FNAccrucy=\frac{TP+TN}{TP+FP+TN+FN}

2、精确率(查准率)

P=TPTP+FPP=\frac{TP}{TP+FP}

3、召回率(查全率)

R=TPTP+FNR=\frac{TP}{TP+FN}

    查准率和查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。

4、P-R 曲线

    以查准率(P)为纵轴,查全率(R)为横轴,可绘制出“P-R图”
机器学习分类和回归任务中的模型评估
    若一个学习器的P-R曲线被另一个学习器的P-R曲线完全“包住”,则可认为后者的性能优于前者。如图中学习器A的性能优于学习器C。

    如果两个学习器的P-R曲线发生了交叉,例如图中的A和B,则难以一般情况来判断,此时可以比较P-R曲线下面积的大小,它在一定程度上表征了学习器在查准率和查全率上取得相对“双高”的比例,但这个值比较难计算。对此,人们设计了如下综合考虑查准率、查全率的性能度量:

(1)、平衡点(Break-Even Point,简称BEM)

    “平衡点” 是 “查准率=查全率” 时的取值,如上图中学习器A、B、C的BEM分别大概为0.8、0.71、0.63,而基于BEM的比较,可认为学习器A优于B。

(2)、F1度量

    由于 “平衡点” 的判别方式过于简化,因此我们更常用的是F1度量,F1度量是基于查准率和查全率的调和平均定义的:
1F1=(121P+1R)\frac{1}{F1}=\left(\frac{1}{2}\cdot \frac{1}{P}+\frac{1}{R}\right)
F1=2PRP+R       F1=\frac{2*P*R}{P+R}~~~~~~~
                      =2TP+TPTN~~~~~~~~~~~~~~~~~~~~~~=\frac{2*TP}{样例总数+TP-TN}

    有时对查全率和查准率的要求不一样,所以需要对其进行加权(如商品推荐时为了尽量少打扰用户,查准率就重要一些。确定嫌疑人时希望少漏掉嫌疑犯,此时查全率就重要一些。),此时就需要用FβF_\beta:
Fβ=(1+β2)PR(β2P)+RF_\beta=\frac{(1+{\beta}^2 )*P*R}{({\beta}^2 *P)+R}
    FβF_\beta则是加权调和平均:
1Fβ=11+β2(1P+β2R)\frac{1}{F_\beta}=\frac{1}{1+{\beta}^2}\cdot \left(\frac{1}{P}+\frac{{\beta}^2}{R}\right)
    与算术平均(P+R2)(\frac{P+R}{2})和几何平均(PR)(\sqrt{P*R})相比,调和平均更重视较小值。

    其中β>0\beta>0 度量了查全率对查准率的相对重要性,β=1\beta=1 时退化为标准的F1;β>1\beta>1 时查全率有更大影响;β<1\beta<1 时查准率有更大影响。

5、ROC和AUC

    ROC 全称是“受试者工作特征”(ROC, Receiver Operating Characteristic),根据学习器的预测结果,对样本依概率从高到低进行进行排序,然后按照顺序逐个把样本作为正例进行预测,计算出此时的TPR(真正例率,True Positive Rate)作为纵坐标,FPR(假正例率,False Positive Rate)作为横坐标,画出的曲线就是ROC曲线。
TPR=TPTP+FNTPR = \frac{TP}{TP+FN}
FPR=FPTN+FPFPR=\frac{FP}{TN+FP}
机器学习分类和回归任务中的模型评估
ROC曲线上的四种特殊值:

  • (0,1) 即FPR=0, TPR=1,这意味着FN(false negative)=0,并且FP(false positive)=0。这是一个完美的分类器

  • (1,0),即FPR=1,TPR=0,类似地分析可以发现这是一个最糟糕的分类器,因为它成功避开了所有的正确答案。

  • (0,0),即FPR=TPR=0,即FP(false positive)=TP(true positive)=0,可以发现该分类器预测所有的样本都为负样本(negative)。

  • (1,1),分类器实际上预测所有的样本都为正样本。

机器学习分类和回归任务中的模型评估
    通过上述定义可知,AUC是通过对ROC曲线下各部分面积求和而得,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5~1之间。

    使用AUC值作为评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而作为一个数值,对应AUC更大的分类器效果更好。

    假定ROC曲线是由坐标为((x1,y1),(x2,y2),,(xm,ym))\left( (x_1,y_1),(x_2,y_2),…,(x_m,y_m)\right)的点按序连接而形成(x1=0,xm=1)(x_1=0,x_m=1),参照上图(2),则AUC可估算为
AUC=12i=1m1(xi+1xi)(yi+yi+1)AUC=\frac{1}{2}\sum_{i=1}^{m-1}(x_{i+1}-x_i)\cdot(y_i+y_{i+1})

其它参考
https://blog.csdn.net/YE1215172385/article/details/79443552 代码
https://blog.csdn.net/shareviews/article/details/82848689
https://blog.csdn.net/appleyuchi/article/details/96192304 详细