机器学习性能评估指标
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$是针对原来的样本而言的。举个具体例子,在信息检索领域,精确率和召回率又被称之为查准率和查全率。
下面是两个场景:
地震的预测
对于地震的预测,我们希望的是Recall非常高,也就是说每次地震我们都希望预测出来。这个时候我们可以牺牲Precision。情愿发出1000次警报,把10次地震都预测正确了;也不要预测100次对了8次漏了两次。
嫌疑人定罪
基于不错怪一个好人的原则,对于嫌疑人的定罪我们希望是非常准确的。及时有时候放过了一些罪犯(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$ 的情况。
在正负样本分布得极不均匀(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
$$
参考: