机器学习性能评估指标

机器学习性能评估指标

Precision and Recall

列一下几个计算公式
$$
Precision=\frac{TP}{TP+FP} \\
Recall=\frac{TP}{TP+FN} \\
F1=\frac{2}{1/P+1/R} \\
TP-Rate=\frac{TP}{TP+FN} \\
FP-Rate=\frac{FP}{FP+TN}
$$

准确率$Precision$意味着“预测为正例的有多少是对的“,召回率$Recall$意味着“正例里你的预测覆盖了多少”。$Precision$是针对预测结果而言的,$Recall$是针对原来的样本而言的。举个具体例子,在信息检索领域,精确率和召回率又被称之为查准率查全率

下面是两个场景:

  1. 地震的预测

    对于地震的预测,我们希望的是Recall非常高,也就是说每次地震我们都希望预测出来。这个时候我们可以牺牲Precision。情愿发出1000次警报,把10次地震都预测正确了;也不要预测100次对了8次漏了两次。

  2. 嫌疑人定罪

    基于不错怪一个好人的原则,对于嫌疑人的定罪我们希望是非常准确的。及时有时候放过了一些罪犯(Recall低),但也是值得的。

$F1$值就是$Precision$与$Recall$的调和均值,这意味着它认为$Precision$与$Recall$的权重是一样的,但其实很多场景上权重并不一样,其一般化形式为
$$
F-Measure=\frac{(1+\beta)^{2}\cdot Precision \cdot Recall}{\beta ^{2} \cdot (Precision + Recall)}
$$

ROC and PRC

直观上,$TPR (TP-Rate)$代表能将正例分对的概率,$FPR$代表讲负例错分为正例的概率,ROC曲线也就描绘了分类器在TPR (真正率) 与FPR (假正率) 间的trade-off。

下面这张图是ROC (receiver operating characteristic curve) 曲线,如果ROC是光滑的,那么基本可以判断没有太大的overfitting(比如图中0.2到0.4可能就有问题,但是样本太少了),这个时候调模型可以只看AUC。AUC (Area Under Curve) 是曲线下的面积,一般认为面积越大模型越好。

  • $AUC=1$,完美分类器,采用这个预测模型时,不管设定什么阈值都能得出完美预测。绝大多数预测的场合,不存在完美分类器。
  • $0.5<AUC<1$,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。
  • $AUC=0.5$,跟随机猜测一样(例:丢铜板),模型没有预测价值。
  • $AUC<0.5$,比随机猜测还差;但只要总是反预测而行,就优于随机猜测,因此不存在$AUC<0.5$ 的情况。

ROC

在正负样本分布得极不均匀(highly skewed datasets)的情况下,PRC比ROC能更有效地反应分类器的好坏。

MAE and MSE

MAE (Mean Absolute Error)

平均绝对值误差又被称为$l_1$范数损失,
$$
{\rm MAE}(y, \hat{y})=\frac{1}{n_{\rm samples}}\sum\limits_{i=1}^{n_{\rm samples}}|y_i-\hat{y}_i|
$$

MSE (Mean Squared Error)

平均平方误差又被称为$l_2$范数损失,
$$
{\rm MSE}(y, \hat{y})=\frac{1}{n_{\rm samples}}\sum\limits_{i=1}^{n_{\rm samples}}(y_i-\hat{y}_i)^2
$$
参考:

[1] http://charlesx.top/2016/03/Model-Performance/

[2] https://argcv.com/articles/1036.c