1、回归模型
1.1 MSE(均方误差)
MSE是Mean Square Error的缩写,其计算公式如下:
从计算公式可以看出,MSE越小(理论最小值为0),说明拟合得越好。
一些机器学习模型的损失函数也是这样计算的,因为它易于求导,进而便于使用梯度下降法进行参数优化。
1.2 RMSE(均方根误差)
RMSE是Root Mean Square Error的缩写,其计算公式如下:
由于MSE的结果总是非负的,因此,对其开平方就得到了RMSE。这样做的好处是可以保持RMSE与目标值具有相同的量纲,在描述模型的精度的时候带来便利。
1.3 MAE(平均绝对误差)
MAE是Mean Absolute Error的缩写,其计算公式如下:
MAE越小,说明拟合得越好。
1.4 MAPE(平均绝对百分比误差)
MAPE是Mean Absolute Percentage Error的缩写,其计算公式如下:
可以看出,相较于MAE,每个误差项都除以了真实值。相当于对误差做了归一化,这样可以降低离群值所带来的影响。
1.5 SMAPE(对称平均绝对百分比误差)
SMAPE是Symmetric Mean Absolute Percentage Error的缩写,其计算公式如下:
相较于MAPE,此指标中对每个误差的归一化所除的值变成了真实值与预测值的均值。
1.6 (决定系数/拟合优度)
并非是的平方,其计算需要用到以下几个指标:
- 回归平方和,一般表示为,其计算公式为:
- 残差平方和,一般表示为SSE,其计算公式为:
- 将它们相加,得到总离差平方和:
那么,的计算公式为:
由上述公式可知,越大拟合得越好,最大值为1,此时的值为0,即每个预测值均等于对应的真实值。
也可以是负值。
2、分类模型
按照类别数量,分类模型可以分为二分类模型和多分类模型,这里先以二分类模型为例说明各项指标的计算方法。
2.1 二分类模型
在二分类模型中,我们将属于所关注类别的那些实例称为正例;对应的,称属于另一类的实例为负例。于是,一个模型对测试样本进行分类后的情况一共有以下四种:
- TP(True Positive),真正例,指那些实际是正例且被模型预测为正例的样本;
- TN(True Negative),真负例,指那些实际是负例且被模型预测为负例的样本;
- FP(False Positive),假正例,指那些实际是负例但被模型预测为正例的样本;
- FN(False Negative),假负例,指那些实际是正例但被模型预测为负例的样本。
为简单起见,在下面的计算公式中,分别用TP、TN、FP和FN表示各自所包含样本的数量。
2.1.1 Precision(查准率/精度)
查准率用来衡量模型预测的准不准。具体而言,就是在模型预测为正例的样本中确实为正例的样本所占比例:
2.1.2 Recall(查全率/召回率)
查全率用来衡量模型找到的结果全不全。具体而言,就是在所有实际为正例的样本中模型能够识别为正例的样本所占比例:
2.1.3 f1分数
人们希望用一个指标来综合评价模型的效果,于是提出了值的概念:
实际上就是查准率和查全率的调和平均数。
2.1.4 混淆矩阵
混淆矩阵通常用于直观地展示分类器在各类别上的表现效果。对于二分类而言,一个混淆矩阵示例如下:
易知,混淆矩阵对角线上的值为分类正确的样本数。根据混淆矩阵,可以很容易地计算得到查准率与查全率:
2.1.5 准确率与错误率
上面提到的这些指标关注的是对正例的识别情况,而准确率和错误率则是综合考察一个模型对各类样本的分类准确率。
准确率的定义如下:
即混淆矩阵中位于对角线上的值的和除以所有的样本量。
错误率的定义如下:
2.2 多分类模型
在多分类模型中,计算f1分数时有micro和macro两种方案。这里先介绍混淆矩阵和准确率错误率,再按照micro和macro分别介绍f1分数的计算。
2.2.1 混淆矩阵
与二分类模型相似,多分类模型的混淆矩阵的形式如下:
其中,
- ()表示模型预测的类别标签为且实际标签确实为的样本数量;
- ()表示模型预测的类别标签为但实际标签为的样本数量。
2.2.2 准确率与错误率
2.2.3 micro_f1分数
在多分类模型中,实际上没有“负例”的说法,为了计算方便,在考察目标类别时,把所有不属于该类别的实例称为负例。
在计算micro_f1分数前,先要计算全局的查准率和查全率。查准率为(注意,分母的第一项是模型预测为第i类但实际不是的样本数):
查全率为(注意,分母的第一项实际上真实为第i类但模型预测错误的样本数,但在多分类中,全局的FN与FP实际上是相等的,都是除了混淆矩阵对角线外其他数字之和):
因此:
2.2.4 macro_f1分数
macro_f1分数有两种计算方式,这里只列出其中应用较广泛的一种。
macro_f1分数的计算方式较为直接,将每个类别作为目标类并计算出其f1分数,然后求所有f1分数的平均值即得到了macro_f1分数。
第类的查准率为(分母为第列的值求和):
查全率为(分母为第行的值求和):
f1分数为:
于是: