机器学习中常用指标避坑

本文最后更新于:2022年9月8日 下午

机器学习中常用指标避坑

在进行机器学习的过程中有一些经常用到的指标,然而有的时候可能因为代码写错了导致几个指标互相矛盾(最简单的比如Accuracy大于100%),这篇文章草草列出一些检查的方法。

Accuracy 正确率

这可能是最简单的指标了,就是预测正确的除以总数。然而此处有时会使用Top-N Accuracy,N指的是分类问题中,预测出的前N高的概率中,只要包含正确的分类就算对,常用的是Top-1和Top-5。

  • Top-1就是最普通的Acc。
  • 在同一个实验中,N越大的Acc越高(也可能相等)。
  • 假如N>=分类数,则Top-N Acc为1。

Precision和Recall

  • Precision:查准率、精确率,预测为Positive中有多少是True的
  • Recall:查全率、召回率,应该被预测为Positive中有多少是True的

假设有一个二分类问题,其中正例占比60%,反例占比40%。则当模型预测的全都是1时,Recall=1,Precision=0.6。当模型预测全都是0时,Recall=0,Precision由于分母为0没有值。当模型瞎猜时,Precision在0.6左右。

决策时可以设置阈值来决定多大概率判断为Positive,这样能绘制出Precision-Recall曲线(如下图),同一个实验中,当变量只有阈值时,Recall越大,则Precision大概率会更小,但不是一定。从图中Recall=1时也可以看出正例所占的比例,下图中正例占比为50%。

根据这个图,若计算其图像下的面积(AUC),即可得到Average Precision (AP),也就是平均准确率,是不同阈值下准确率的平均。AP取值范围为0~1

假如是多分类,那还可以计算Mean Average Precision (MAP)。把多分类中某个类当做positive,其他为negative,就能得出一个AP,每个类的AP的平均值就是MAP。

2-class Precision-Recall curve

ROC

ROC是一条曲线,是以FPR为横轴,Recall为纵轴的曲线!一般取其曲线下面积(AUC)作为指标。范围是0~1

AUC的全称是Area Under Curve,就是曲线下的面积,要用AUC的时候必须说清楚是什么曲线下的面积!