在机器学习、深度学习以及自然语言处理等领域,评估方法是经常要考虑到的问题。本文就让我们来一起看一下几类问题的常用评价标准。
分类
准确率(Accuracy)
准确率为分类问题中最简单的评价标准,也是最常用的评价标准,其计算方式为分类准确的个数除以总个数。
精确率(Precision)、召回率(Recall)和 F1 值(F1 score)
如果单纯用准确率来评估分类器的话,会显得不够全面。因为在一些样本不平衡的实验中,分类器可能会倾向于数目较多的类别,从而导致准确率虽然偏高,但在各类中准确率相差较大的情况,因此我们引入了精确率和召回率两个概念。
针对某一个类别 \(C\),我们定义 \(S\) 为分类器预测为该类的集合,\(G\) 为原本数据集中标注为该类的集合,易得 \(S \bigcap G\)是分类器预测该类正确的集合。
精确率指分类器预测某类正确的比例,其计算公式为 \(P = \frac{\vert S \bigcap G \vert}{\vert S \vert}\) ;而召回率指标注数据集中该分类被正确预测的比例,其计算公式为 \(R = \frac{\vert S \bigcap G \vert}{\vert G \vert}\) 。根据精确率和召回率,我们可以得到 F1 值,其公式为 \(F_1 = \frac{2PR}{P + R}\) 。F1 值是 F 值的一种常见情况。F 值的计算公式为 \(F_\beta=\frac{(\beta^2+1)PR}{\beta^2P+R}\)。当 \(\beta=1\) 时,F 值即为 F1 值;当 \(\beta>1\) 时,F 值更看重精确率,反之则更看重召回率。
此外,F1 值可以细分为微平均 F1(micro-averaging)和宏平均 F1(macro-averaging )两种:
- 宏平均 F1 先对每个类别单独计算 F1 值,再取这些值的算术平均值作为全局 F1 值。宏平均 F1 平等对待每一个类别,所以它的值主要受到稀有类别的影响
- 微平均 F1 对数据集中的每一个实例不分类别进行统计建立全局混淆矩阵,然后计算全局 F1 值。微平均 F1 平等考虑文档集中的每一个文档,所以它的值受到常见类别的影响比较大
一般情况下,宏平均 F1 值使用更为广泛。
ROC 曲线和 AUC 面积
ROC 曲线(Receiver Operating Characteristic Curve)主要应用于二分类问题。在了解这 ROC 曲线之前,我们先结合上面的精确率和召回率来看以下几个概念:
- 真阳性率(True Positive Rate,TPR):又称灵敏度,其与正类的召回率等价
- 真阴性率(True Negative Rate,TNR):又称特异度,其与负类的召回率等价
- 假阴性率(False Negative Rate,FNR):又称漏诊率,等于 1 - 灵敏度
- 假阳性率(False Positive Rate,FPR):又称误诊率,等于 1 - 特异度
ROC 空间是以假阳性率为横轴,真阳性率为纵轴所组成的坐标图,上面每一个点可看作一个分类器,根据点的坐标可以判断分类器的优劣。
ROC 曲线实际代表了无数个分类器,线上的点代表着同一个分类器在不同阈值下的分类效果。对于 ROC 曲线,一个重要的特征是它下面的面积,即 AUC 面积(Area Under Curve)。AUC 面积的取值范围从 0 到 1,我们一般认为 AUC 面积为 0.5 时为随机分类,识别能力为 0,面积越接近于 1,识别能力越强,面积等于 1 为完全识别。当分类器对应的 ROC 曲线下面积小于 0.5 时,说明这是一个有问题的分类器。
Precision-Recall 曲线
PR 曲线以 Recall 为横轴,Precision 为纵轴,其与 ROC 曲线一样,都是通过取不同阈值来描绘曲线。PR 曲线下面积实际上是 \(E(Precision)\),即 Precision 的加权平均结果。与 AUC 面积不同,PR 曲线下面积小于 0.5,也不能说明分类器有问题。
回归
回归问题主要有以下三个评价指标:
- MAE(Mean Absolute Error):即平均绝对值差,计算公式为\(\frac{1}{n}\sum_{i = 1}^n \vert f_i - y_i \vert\)
- MSE(Mean Square Error):即均方误差,计算公式为\(\frac{1}{n}\sum_{i = 1}^n \left( \hat{Y_i} - Y_i \right)^2\)
- MAE(Root Mean Square Error):即均方根误差,计算公式为\(\sqrt{MSE}\)