机器学习中常见的模型评估

mac2024-08-14  63

在前文机器学习中常见的损失函数中,介绍了回归和分类等问题中常用的损失函数。通过设计合适、易求解的损失函数,可以帮助我们确定问题的解决目标,进而使用解析或者数值方法进行求解。

在将训练的若干组模型进行横向对比(即validation),或者表征某模型在测试集上的表现时,往往也需要设计一个指标进行衡量。这个指标有时与损失函数相一致(如很多回归模型),但很多时候需要重新定义(尤其对分类、聚类等问题)。

一、回归问题

1. MAE和MSE

平均绝对值误差和平均平方误差,也可以泛化理解为预测值偏差的L1和L2范数。 ∑ i = 1 N ∣ ∣ y i − f ( x i ) ∣ ∣ p , p = 1 , 2 \sum\limits_{i=1}^N||y_i-f(x_i)||^p, p=1,2 i=1Nyif(xi)p,p=1,2对于回归问题,MAE或MSE通常同时选做损失函数和模型评价指标。

2. R 2 R^2 R2

R-square(可决系数)是统计学中常用的衡量回归方程拟合程度的统计量。 R 2 = 1 − ∑ ( y i − f ( x i ) ) 2 ∑ ( y i − y ‾ ) 2 R^2=1-\frac{\sum (y_i-f(x_i))^2}{\sum(y_i-\overline y)^2} R2=1(yiy)2(yif(xi))2直观上,若取 f ( x i ) = y ‾ f(x_i)=\overline y f(xi)=y,则 R 2 = 0 R^2=0 R2=0,这意味着我们就用简单的平均值取预测结果得到的 R 2 R^2 R2为0。若我们设计了一个完美的回归函数,使得 y i = f ( x i ) y_i=f(x_i) yi=f(xi),则 R 2 = 1 R^2=1 R2=1。对于一个很糟糕的、都不如用平均值进行估计的模型, R 2 < 0 R^2<0 R2<0

二、分类问题

相较于回归问题,我们更青睐于在分类问题中选用不同于损失函数的评价指标来对模型进行最终评估。 对于一个分类模型,评价指标的正确选择对模型的真实功效意义巨大。比如对于一个疾病筛查模型,已知健康人群远大于患者人数,如果只为了一味追求正确率,那模型可以直接将所有人都判定为健康,这意味着该模型是完全无用的。

1. 混淆矩阵及相关指标

混淆矩阵是诸多分类评价指标的基础,有必要进行详细的解释。 对于一个二分类问题,真实样本存在正( P P P)和负( N N N)两类,根据预测结果的正确与否,可以得到正确( T T T)和错误( F F F)两大类。据此,真实类和预测类的交叉关系可以划分为如下四类数据: (1) TP(真正类、真阳类,True Positive):实际为正例,预测也为正例 (2) FP(假正类,假阳类,False Positive):实际为负例,预测为正例 (3) TN(真负类,真阴类,True Negative):实际为负例,预测也为负例 (4) FN(假负类,假阴类,False Negative):实际为正例,预测为阴例 从统计的观点出发,FP相当于假设检验中的第一类错误(Type Ⅰ),而FN相当于假设检验中的第二类错误(Type II)。其具体解释为: 我们一般比较关心正例,因此对于统计假设检验而言,我们可以将负例视为零假设,则正例为备择假设。若FP,意味着我们拒绝了零假设(负例),选择了备择假设,但结果发生了错误,这就是第一类错误。若FN,意味着我们错误的选择了零假设(负例),这就是第二类错误。

在混淆矩阵的基础上,我们可以定义如下一系列分类评价指标: 准确率Accuracy: T P + T N T P + F P + T N + F N \frac{TP+TN}{TP+FP+TN+FN} TP+FP+TN+FNTP+TN,表示预测结果的整体正确率。

查准率Precisoon: T P T P + F P \frac{TP}{TP+FP} TP+FPTP,即TPR,表示在所有预测结果为正的样本中,为真正类的比例。该指标无法反映有多少正样本被错分为负例(即FN)。举个极端的例子,判断最有把握一个样本为正例(也确实是正例),因此查准率为100%,但其他所有正例全部判断错误,这是典型的”不求有功,但求无过“的思想。因此,该指标常配合召回率一起使用。

真正例率TPR: T P T P + F N \frac{TP}{TP+FN} TP+FNTP,也称召回率Recall,医学上还称为灵敏度Sensitivity。表示真正例占所有正样本的比重。该指标无法反映有多少负例被错分为正例(即FP)。同样举个极端的例子,将所有的样本都判断了正例,因此召回率始终为100%,但所有的负例均判断错误,这是典型的”宁可错杀1000,不可放过100“的思想。因此,该指标常配合查找率一起使用。

假负例率FNR: F N T P + F N \frac{FN}{TP+FN} TP+FNFN,即 1 − F P R 1-FPR 1FPR,表示错分为负例的正样本占所有正样本的比值。

真负例率TNR,医学上还称为特异性Specificity。表示负样本被正确区分出来的比例。

假正例率FPR: F P F P + T N \frac{FP}{FP+TN} FP+TNFP,即 1 − T N R 1-TNR 1TNR,即错分为正例的负样本占整个负样本的比例。

F1 score: 2 1 p r e c i s o n + 1 r e c a l l = 2 ∗ p r e c i s o n ∗ p r e c i s o n p r e c i s o n + p r e c i s o n \frac{2}{\frac{1}{precison}+\frac{1}{recall}}=\frac{2*precison*precison}{precison+precison} precison1+recall12=precison+precison2precisonprecison,即查准率和召回率的调和平均。该值在数值上接近于查准率和召回率中较小的值,这意味着若F1 score高,则查准率和召回率均高。

2. PR曲线

PR曲线是以查准率Precision(TPR)为横坐标,召回率Recall为纵坐标的曲线。

当模型选择不同的阈值范围时(常被称为decision function,可理解为某种分类分隔超平面),TPR和Recall随着发生变化。如下图所示: 1) 当取阈值1时,TPR=100%,而只有一个正样本被召回。 2) 当取阈值3时,recall=100%,而所有的负样本均被错分为正例。 随着阈值的增加,越来越多的正例会被召回,所以Recall是单调递增的;当同时更多的负例也可能被误分,所以Precsion总体呈下降趋势,但并非单调。 TPR和Recall之间具有天然的对抗关系,且两个指标均关注正样本,所以将两者结合起来可以很好的判断分类器对于正样本的区分能力,因此PR曲线尤其对于那些聚焦于正例的分类问题(如疾病筛选、风险防控等)。但也是由于同样的原因,PR曲线对于负样本的变化较为敏感(指TPR值),可能会收到样本分布的影响,导致PR曲线波动较大。

在通过PR曲线选择分类器阈值时,选择那些有较高召回率,但TPR值也有一定保证的点。 与ROC曲线(下文会详细介绍)类似,PR曲线也有AUC值。

3. ROC曲线

ROC曲线(Receiver Operating Characteristic Curve, 受试者工作特征曲线 )是以TPR为纵坐标,FPR为横坐标的曲线。

与PR曲线的绘制一样,ROC曲线同样是选择不同的阈值下的一组TPR、FPR连接而成。 1)当阈值最小时,所有样本均被区分为负样本,TPR=0, FPR=0; 2)随着阈值的不断提高,每有一个正例被正确分类,TPR增加,FPR不变;每有一个负例被错误分类,TPR不变,FPR增加。 3)当阈值超过一定界限后,所有样本样本均被区分为正样本,TPR=100%,FPR=100%。 因此,ROC曲线是一条经过(0,0)和(1,1)点,且单调递增的曲线。 在上图的ROC曲线中,值得注意的一条连接(0,0)和(1,1)的直线,表示随机猜测下的预测结果。如何理解这条曲线呢? 假设我们无论对于何种样本,以 p p p的概率猜测为正样本。那么正样本中被猜测正确的概率,即 T P R = p TPR=p TPR=p;负样本中被猜测正确的概率也为p,即 F P R = p FPR=p FPR=p,所以在随机猜测的情况下, F P R = = T P R FPR==TPR FPR==TPR,即为这条random guess线。

若分类器得到的ROC曲线位于random guess线下方,这以为着模型还不如瞎猜。所以一个正常的分类器(效果优于随机猜),其ROC曲线位于random guess线上方,且其下的面积(即AUC)越大越好。

AUC(Area Under Curve)表示ROC曲线与FPR轴包络出的面积,其用来衡量分类器的分类效果。假设一个完美的分类器,能完美区分出所有的正例和负例,那就会经过(0,1)点,即AUC=1。但往往会有一部分负例会被误分,但越高的AUC可以理解成分类器可以将更多的正例界定出来排在前面. 相较于PR曲线完全聚焦于正样本,ROC曲线中横坐标关注负样本、纵坐标关注正样本。所以其曲线比较稳定,不会受到正样本和负样本数量变化的影响(因为关注的为比值,若样本增加时的分布变化不大,分类器对正负样本的分类能力也是相当的)。 但这同样可能会导致一个缺点:当负例数量远大于正例时,分类器将相当多的负例误分为正例(仅仅是数量,比值仍不大),但ROC曲线仍保持较好的AUC,会让人忽略其实有很多样本为假阳性。换句话总结一下:ROC曲线往往偏向于乐观。

4. PR曲线和ROC曲线的选择

PR曲线和ROC曲线都是优秀的评价分类器性能的指标,其适合的使用场景略有不同: (1)ROC曲线兼顾了正样本和负样本,因此比较适合于对正负样本都有分类需求的场景;而PR曲线完全聚焦于正样本,因此更适合于偏向于挑选出正例的场景; (2)在正类和负类类内数据分布不变的前提假设下,ROC曲线对正负样本数量的变化并不敏感(因为比值相当);但PR曲线可能会会发生较大的变动。因此若需要让模型对不同比例的正负样本更健壮,ROC曲线更使用;但如果想要测试不同比例的正负样本下模型的性能,则选择PR曲线。 (3)类别不平衡问题中,ROC曲线通常会给出一个乐观的效果估计,所以大部分时候还是PR曲线更好。

最新回复(0)