在预测任务中,给定样例集D={(x1,y1),(x2,y2),…,(xm,ym)},其中yi是示例xi的真实标记,m表示样例数量,m+、m−分别表示正例和反例的数量。
回归任务
均方误差(mean squared error)
E(f;D)=m1i=0∑m(f(xi)−yi)2
分类任务
错误率
分类错误的样本数占总样本数的比例。
E(f;D)=m1i=0∑mI(f(xi)̸=yi)
精度
分类正确的样本数占总样本数的比例。
acc(f;D)=m1i=0∑mI(f(xi)=yi)=1−E(f;D)
查准率、查全率和P-R曲线
对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例(ture positive)、假正例(false positive)、真反例(ture negative)、假反例(false negative)四种情形,分别用TP、FP、TN、FN表示,这4者之和为样例总数。分类结果的混淆矩阵(confusion matrix)如下表所示:

查准率(precision):
P=TP+FPTP
查全率(recall):
又称召回率,所有真正例中有多少被查出来了。
R=TP+FNTP
查准率和查全率是一对矛盾的度量,一般来说,查准率高时,查全率往往较低,反之亦然。例如,将所有的样例都选上,则查全率为1,查准率较低,相反,为避免选出假正例,即提高查准率,只挑选最有把握的样例,则会漏掉很多真正例,使得查全率较低。
P-R曲线:
利用学习器预测结果(样例为正例的概率)对所有样例进行排序,排在前面的是学习器认为最可能是正例的样本。按照这个顺序逐个将样本选出作为正例进行预测,则每次可以计算一组查准率和查全率,将查全率作为横轴,查准率作为纵轴哦,可以绘制得到P-R曲线,如下图所示。

图中曲线是近似处理过的,真实的P-R曲线肯定会过(0,0)点,在一开始,所有样例都判为反例时,TP=0,则P和R均为0;随着逐个将学习器认为是正例概率最大的样例预测为正例,FP接近于0,FN非常的,P会接近1,R会接近0(m足够大);可以预见,逐个将样本预测为正例,被预测为正例的样例逐个增多,R必然单调增大,同时,P会曲折下降;最后,当所有真正例都被预测为正例时,R=1,此时P较小并逐渐接近于mm+。
P-R曲线模型性能判断规则:
F1度量:
F1=P+R2×P×R=m+TP−TN2×TP
F1是基于查准率P与查全率R的调和平均,即
F11=21(P1+R1)
Fβ度量:
Fβ=(β2×P)+R(1+β2)×P×R
其中,β(>0)代表了查准率P和查全率R的相对重要性,β=1时退化为标准的F1;β>1时查全率有更大影响;β<1时查准率有更大影响。
Fβ是基于查准率P与查全率R的加权调和平均,即
Fβ1=1+β21(P1+Rβ2)
Fβ1=1+β21P1+1+β2β2R1
对于n分类问题有以下几个评价指标:
宏查准率:
macro−P=n1i=1∑nPi
其中,Pi表示学习器对第i类样例预测结果的查准率。
宏查全率:
macro−R=n1i=1∑nRi
其中,Ri表示学习器对第i类样例预测结果的查全率。
宏F1:
macro−F1=macro−P+macro−R2×macro−P×macro−R
微查准率:
micro−P=TP+FPTP
其中,TP、FP为学习器对各类样例预测结果的真正例和假正例的平均数量。
微查全率:
micro−R=TP+FNTP
其中,TP、FN为学习器对各类样例预测结果的真正例和假反例的平均数量。
微F1:
micro−F1=micro−P+micro−R2×micro−P×micro−R
ROC与AUC
真正例率:
TPR=TP+FNTP
真正例率(True Positive Rate,TPR),表示真正例在所有正例中的比例。
真正例率与查准率R相等。
假正例率:
FPR=TN+FPFP
假正例率(False Positive Rate,FPR),表示假正例在所有反例中的比例。
ROC曲线:
与绘制P-R曲线类似,利用学习器预测结果(样例为正例的概率)对所有样例进行排序,排在前面的是学习器认为最可能是正例的样本。按照这个顺序逐个将样本选出作为正例进行预测,则每次可以计算一组真正率和假正率,将假正例率作为横轴,真正例率作为纵轴,可以得到ROC曲线,如下图所示:

如上图所示,(a)为ROC曲线示意图,对角线(TPR=FPR)对应“随机猜想”模型,(0,1)点对应于将所有正例排在所有反例之前的“理想模型”。
实际情况中,样本是有限个,只能绘制处(b)中所示的近似ROC曲线,在一开始,所有样例都判为反例时,TP=FP=0,则TPR=FPR=0;随着逐个将学习器认为是正例概率最大的样例预测为正例,TPR和FPR分母不变,即正例和反例的各自的总数不变,TP和FP均逐渐增大;最后,当学习器将所有样例都判为正例时,所有的正例均被判为了真正例,所有的反例均被判为了假正例,此时TPR=FPR=1。
ROC曲线模型性能判断规则:
- 若A曲线包住B曲线(无交叉),则模型A优于模型B;
- 对于曲线有交叉的模型,ROC曲线下面积,即AUC(Area Under ROC Curve)大者性能更好;
AUC:
AUC(Area Under ROC Curve),即ROC曲线下面积。
假定ROC曲线坐标为{(x1,y1),(x2,y2),…,(xm,ym)},其中,x1=y1=0,xm=ym=1,AUC可估算为:
AUC=21i=1∑m(xi+1−xi)⋅(yi+yi+1)
可以看出,AUC考虑的是样本预测的排序质量,因此它与排序误差有紧密联系。
排序“损失”(loss):
ℓrank=m+m−1x+∈D+∑x−∈D−∑(I(f(x+)<f(x−))+21I(f(x+)=f(x−)))
考虑每一对正、反例,若正例的预测值小于反例,则记一个“罚分”,若相等,则记0.5罚分。可以看出,ℓrank对应的是ROC曲线之上的面积,因此有
AUC=1−ℓrank
代价敏感错误率与代价曲线
对于不同分类分错造成的损失往往不同,例如,将医生病患错误诊为无病,将正常人误诊为病患,显然将病患判误诊为无病的后果更严重,可能使病人丧失了最佳的治疗时机。因此,可以为错误赋予“非均等代价”(unequal cost)。
二分类任务的“代价矩阵”(cost matrix)如下表所示,其中,costij表示将第i类样本预测为第j类样本的代价。一般来说,costii=0。

“代价敏感”(cost-sensitive)错误率:
E(f;D;cost)=m1(xi∈D+∑I(f(xi)̸=yi)×cost01+xi∈D−∑I(f(xi)̸=yi)×cost10)
代价曲线:
在非均等代价下,“代价曲线”(cost curve)可以直接反映出学习器的期望总体代价,而ROC曲线不能。代价曲线的横轴为正例概率代价,纵轴为归一化代价,公式及示意图如下所示。
正例概率代价:
P(+)cost=p×cost01+(1−p)×cost10p×cost01
归一化代价:
costnorm=p×cost01+(1−p)×cost10FNR×p×cost01+FPR×(1−p)×cost10
其中,FNR为假反例率,FPR为假正例率,
FNR=FN+TPFN=1−TPR
代价曲线的绘制比较简单,ROC曲线上的每一点都对应代价曲线中的一个线段,设ROC曲线上点坐标为(FPR,TPR),可以计算得到FNR,然后在代价平面绘制一条从(0,FPR)到(1,FNR)的线段,线段下的面积即表示了该条件下的期望总体代价,如此绘制所有线段,取所有线段下界的交集,围城的面积即在所有条件下学习器的总往总体代价,如下图所示。

代价曲线模型性能判断规则:
- 若A曲线包住B曲线(无交叉),则B曲线性能优于A曲线;
- 对于曲线有交叉的模型,代价曲线下面积,即期望总体代价小者性能更好;