logo

回归和时序评价指标

王哲峰 / 2022-11-22


目录

普通回归

时间序列预测

最常见的时间序列预测损失函数是 MSE、MAE 等点误差函数,这类函数关注每个点的拟合是否准确。 然而,这种损失函数完全忽略了不同点的关系,在时间序列中忽略了各个点的时序关系, 导致了预测结果的形状和真实序列不匹配的问题

针对 MSE 等损失函数的问题,业内提出一种针对时间序列预测问题的 DTW 损失函数。DTW 损失函数的核心思路是, 利用动态规划方法,对两个序列的点之间进行匹配,找到让两个序列相似度最高的匹配方式。 在这种最相似的匹配结果下,两个时间序列的距离就是最终真正的差异,也就可以转换成损失函数。 DTW 充分考虑了两个序列各个点之间的关系,通过扭曲重整序列进行对齐,计算最短距离,实现形状上的匹配

后续也有很多工作针对 DTW 在时间序列预测中的应用进行优化。DTW 也有其缺点,对齐过程容易受到噪声影响, 且对齐过程一定程度上丢失了序列的时间位置信息,一般会影响 MSE 等评价指标

损失函数对模型在给定目标上进行良好拟合起着关键作用。对于时间序列预测等复杂目标, 不可能确定通用损失函数,有很多因素,如异常值、数据分布的偏差、ML模型要求、计算要求和性能要求等。 没有适用于所有类型数据的单一损失函数

特定损失函数可能有用的情况,例如在数据集中出现异常值的情况下,MSE 是最佳策略; 然而,如果有更少的异常值,则MAE将是比MSE更好的选择。同样,如果我们希望保持平衡, 并且目标基于百分位数损失,那么使用 LogCosh 是更好的方法

MBE

Mean Bias Error,MBE,平均偏差误差

MBE 是测量过程高估或低估参数值的趋势。偏差只有一个方向,可以是正的,也可以是负的。 正偏差意味着数据的误差被高估,负偏差意味着误差被低估。MBE 是预测值与实际值之差的平均值。 该评估指标量化了总体偏差并捕获了预测中的平均偏差。它几乎与 MAE 相似, 唯一的区别是这里没有取绝对值。这个评估指标应该小心处理,因为正负误差可以相互抵消

高估或低估参数值的倾向称为偏差或平均偏差误差。偏差的唯一可能方向是正向或负向。 正偏差表示数据误差被高估,而负偏差表示误差被低估。实际值和预期值之间的差异被测量为平均偏差误差 (MBE)。 除了不考虑绝对值外,它实际上与 MAE 相同。需要注意的是,MBE 正向误差和负向误差可能会相互抵消

img

$$MBE = \frac{1}{N}\sum_{i=1}^{N}(y_{i} - \hat{y}_{i})$$

优点:

缺点:

MAE

Mean Absolute Error, MAE

MAE(Mean Absolute Error,平均绝对误差) 也称为 L1 损失函数。是最简单的损失函数之一,也是一种易于理解的评价指标。 它是通过取预测值和实际值之间的绝对差值并在整个数据集中取平均值来计算的。 从数学上讲,它是绝对误差的算术平均值。MAE 仅测量误差的大小,不关心它们的方向。 MAE 越低,模型的准确性就越高

img

$$MAE = \frac{1}{N}\sum_{i=1}^{N}|y_{i} - \hat{y}_{i}|$$

优点:

缺点:

MSE

Mean Square Error,MSE,均方误差或 L2 损失

MSE 也称为 L2 损失,MSE 通过将预测值和实际值之间的差平方并在整个数据集中对其进行平均来计算误差。 MSE 也称为二次损失,因为惩罚与误差不成正比,而是与误差的平方成正比。平方误差为异常值赋予更高的权重, 从而为小误差产生平滑的梯度

MSE 永远不会是负数,因为误差是平方的。误差值范围从零到无穷大。 MSE 随着误差的增加呈指数增长。一个好的模型的 MSE 值接近于零

img

$$E(f; D) = \frac{1}{N}\sum_{i=1}^{N}\Big(f(x_{i}) - y_{i}\Big)^{2}$$

$$MSE = \frac{1}{N}\sum_{i=1}^{N}\Big(\hat{y}_{i} - y_{i}\Big)^{2}$$

优点:

缺点:

回归问题的性能度量方法与其常用的损失函数一样,都是均方误差。 MSE 是可以直接优化的函数,所以直接默认选用平方损失函数进行优化即可, 很多工具包里面也称之为 L2 损失

RMSE

Root Mean Square Error,RMSE,均方根误差

RMSE 是通过取 MSE 的平方根来计算的。RMSE 也称为均方根偏差。 它测量误差的平均幅度,并关注与实际值的偏差。RMSE 值为零表示模型具有完美拟合。 RMSE 越低,模型及其预测就越好

img

$$RMSE = \sqrt{\frac{1}{N}\sum_{i=1}^{N}\Big(\hat{y}_{i} - y_{i}\Big)^{2}}$$

优点:

缺点:

RSE

Relative Squared Error,RSE,相对平方误差

RSE 需要使用均方误差并将其除以实际数据与数据平均值之间的差异的平方。 RSE 衡量在没有简单预测器的情况下结果的不准确程度。这个简单的预测变量仅代表实际值的平均值。 RSE 通过简单预测变量的总平方误差对其进行归一化。可以在以不同单位计算误差的模型之间进行比较

img

$$RSE = \frac{\sum_{i=1}^{N}(y_{i} - \hat{y}_{i})^{2}}{\sum_{i=1}^{N}(y_{i} - \bar{y})^{2}}$$

其中:

优点:

缺点:

NRMSE

Normalized Root Mean Squared Error,NRMSE,归一化 RMSE

归一化 RMSE 通常通过除以一个标量值来计算,它可以有不同的方式。 有时选择四分位数范围可能是最好的选择,因为其他方法容易出现异常值。 当您想要比较不同因变量的模型或修改因变量时,NRMSE 是一个很好的度量。 它克服了尺度依赖性,简化了不同尺度模型甚至数据集之间的比较

归一化均方根误差 (NRMSE) 有助于不同尺度模型之间的比较。该变量可以将 RMSE 观测范围归一化

img

$$NRMSE = \frac{\sqrt{\frac{1}{N}\sum_{i=1}^{N}(y_{i} - \hat{y}_{i})^{2}}}{\bar{o}}$$

优点:

缺点:

RRMSE

Relative Root Mean Squared Error,RRMSE,相对 RMSE

RRMSE 是 RMSE 的无量纲形式,是由均方根值归一化的均方根误差,其中每个残差都根据实际值进行缩放

相对均方根误差 (RRMSE) 是一种均方根误差度量,是没有维度的 RMSE 的变体。 它根据实际值进行缩放,然后由均方根值归一化。虽然原始测量的尺度限制了 RMSE, 但 RRMSE 可用于比较各种测量方法。当预测被证明是错误时,会出现增强的 RRMSE

$$RRMSE = \sqrt{\frac{\frac{1}{N}\sum_{i=1}^{N}(y_{i} - \hat{y}_{i})^{2}}{\sum_{i=1}^{N}(\hat{y}_{i})^{2}}}$$

img

$$RRMSE = \sqrt{\frac{\frac{1}{N}\sum_{i=1}^{N}(y_{i} - \hat{y}_{i})^{2}}{\sum_{i=1}^{N}\hat{y}_{i}^{2}}}$$

优点:

缺点:

RAE

Relative Absolute Error,RAE,相对绝对误差

RAE 是通过将总绝对误差除以实际值与平均值之间的绝对差来计算的。 RAE 以比率表示,用于评估预测模型的有效性。范围值在 $[0, 1]$。一个好的模型将具有接近于零的值, 其中零是最佳值

img

$$RAE = \frac{\sum_{i=1}^{N}|y_{i} - \hat{y}_{i}|}{\sum_{i=1}^{N}|y_{i} - \bar{y}|}$$

其中:

优点:

缺点:

MSLE

Mean Squared Logarithmic Error,MSLE

均方对数误差 (MSLE) 衡量实际值与预期值之间的差异。 通过对数减少对实际值和预测值之间的百分比差异以及两者之间的相对差异的关注。 MSLE 将粗略地处理实际值和预期值之间的微小差异以及大的真实值和预测值之间的巨大差异

$$MSLE = \frac{1}{N}\sum_{i=0}^{N}\big(log(y_{i} + 1) - log(\hat{y}_{i} + 1)\big)^{2}$$

这种损失可以解释为真实值和预测值之间比率的度量:

$$log(y_{i} + 1) - log(\hat{y}_{i} + 1) = log\Big(\frac{y_{i} + 1}{\hat{y}_{i} + 1}\Big)$$

img

优点:

缺点:

RMSLE

Root Mean Squared Logarithmic Error,RMSLE,均方根对数误差

均方根对数误差是通过将 log 应用于实际值和预测值然后取它们的差异来计算的。 RMSLE 对于小误差和大误差被均匀处理的异常值是稳健的。如果预测值小于实际值, 则对模型进行更多的惩罚,而如果预测值大于实际值,则对模型进行较少的惩罚。 当同时考虑小误差和大误差时,RMSLE 可以避免异常值的影响

img

$$RMSLE = \sqrt{(log(y_{i} + 1) - log(\hat{y}_{i} + 1))^{2}}$$

$$RMSLE = \sqrt{\frac{1}{N}\sum_{i=0}^{N}\big(log(y_{i} + 1) - log(\hat{y}_{i} + 1)\big)^{2}}$$

优点:

缺点:

MAPE

Mean Absolute Percentage Error,MAPE,平均绝对百分比误差

平均绝对百分比误差 (MAPE),也称为平均绝对百分比偏差 (MAPD),是用于评估预测系统准确性的指标。 它通过实际值减去预测值的绝对值除以实际值来计算每个时间段的平均绝对误差百分比。 由于单位缩放为百分比,因此广泛用于预测误差。当数据中没有异常值时,它效果很好,常用于回归分析和模型评估

MAPE 是通过将实际值与预测值之间的差值除以实际值来计算的。 MAPE 随着误差的增加而线性增加。MAPE 越小,模型性能越小

img

$$MAPE = \frac{1}{N}\sum_{i=1}^{N}\frac{|y_{i}-\hat{y}_{i}|}{y_{i}} \times 100 \%$$

优点:

缺点:

WMAPE 和 SMAPE

在指标方面,作为一个回归问题,可以使用 MAE,MSE 等方式来计算。但这类 metric 受到具体预测数值区间范围不同, 展现出来的具体误差值区间也会波动很大。比如预测销量可能是几万到百万,而预测车流量可能是几十到几百的范围, 那么这两者预测问题的 MAE 可能就差距很大,很难做多个任务间的横向比较

所以实际问题中,经常会使用对数值量纲不敏感的一些 metric,尤其是 SMAPE 和 WMAPE 这两种。 这类误差计算方法在各类不同的问题上都会落在 $[0, 1]$ 的区间范围内,方便来进行跨序列的横向比较,十分方便

在实际项目中还会经常发现,很多真实世界的时序预测目标,如销量,客流等,都会形成一个类似 tweedie 或 poisson 分布的情况。 如果用 WMAPE 作为指标,模型优化目标基本可以等价为 MAE(优化目标为中位数),则整体的预测就会比平均值小(偏保守)

在很多业务问题中,预测偏少跟预测偏多造成的影响是不同的,所以实际在做优化时,可能还会考察整体的预测偏差(总量偏大或偏小), 进而使用一些非对称 loss 来进行具体的优化

$$WMAPE = \frac{\sum_{t=1}^{n}|A_{t} - F_{t}|}{\sum_{t=1}^{n}|A_{t}|}$$

$$SMAPE = $$

Huber Loss

Huber损失是线性和二次评分方法的组合。它有一个超参数 delta,可以根据数据进行调整。 对于高于 $\delta$ 的值,损失将是线性的(L1 损失),对于低于 $\delta$ 的值,损失将是二次的(L2 损失)。 它平衡并结合了 MAE(平均绝对误差)和 MSE(均方误差)的良好特性

img

$$L_{\delta} = \begin{cases} \frac{1}{2}(y - f(x))^{2},|y-f(x)| \leq \delta \\ \delta|y - f(x)| - \frac{1}{2}\delta^{2},otherwise\end{cases}$$

$$L_{\delta} = \begin{cases} \frac{1}{2}(y - \hat{y})^{2}, \quad if |y - \hat{y}| < \delta \\ \delta\big((y - \hat{y}) - \frac{1}{2}\delta\big), \quad otherwise \end{cases}$$

优点:

缺点:

Log Cosh Loss

LogCosh 计算 Loss 的双曲余弦对数。这个函数比二次损失函数更平滑。它的功能类似于 MSE, 但不受重大预测误差的影响。鉴于它使用线性和二次平分方法,它非常接近 Huber Loss

img

$$LogCosh(t) = \sum_{i=1}^{N}log(cosh(\hat{y}_{i} - y_{i}))$$

优点:

缺点:

Quantile Loss

分位数回归损失函数用于预测分位数。分位数是确定组中有多少值低于或高于某个限制的值。 它跨预测变量(自变量)的值估计响应变量(因变量)的条件中位数或分位数

分位数回归损失函数用于预测分位数。分位数是指数据中有多少值低于或高于某特定的阈值。 除了第 50 个百分位数是 MAE,其余位置是 MAE 的扩展。它不对响应的参数分布做出任何假设

$$QuantileLoss = \sum_{i=y_{i} < \hat{y}_{i}}(\gamma - 1)|y_{i} - \hat{y}_{i}| + \underset{i=y_{i}<\hat{y}_{i}}{\sum}\gamma|y_{i} - \hat{y}_{i}|$$

img

优点:

缺点:

TILDE-Q 损失

第一个损失函数是 Amplitude Shifting Invariance with Softmax,目标是让所有时刻的预测结果和真实结果的距离是一个常数 k。 为了达成这个目标,文中使用了 softmax 函数。Softmax 中传入各个时间点的预测结果和真实结果的距离, 只有当所有距离都相同时候,这个函数才会得到最小值

$$L_{a.shift}(Y, \hat{Y}) = T'\sum_{i=1}^{T'}\Big|\frac{1}{T'} - Softmax\big(d(y_{i} - \hat{y}_{i})\big)\Big|$$

$$Softmax\big(d(y_{i}, \hat{y_{i}})\big) = \frac{e^{d(y_{i}, \hat{y}_{i})}}{\sum_{j=1}^{T'}e^{d(y_{j}, \hat{y}_{j})}}$$

第二个损失函数是 Invariances with Fourier Coefficients。通过对时间序列进行傅里叶变换, 获取预测结果和真实结果的主成分,使用范数对比两个序列的主成分差异作为损失函数,主成分差异越小, 对应的 loss 越小,以此引入了平移不变性

$$L_{phase}(Y, \hat{Y} = \begin{cases} ||F(Y) - F(\hat{Y})||_{p}, \quad if dominant frequency\\ ||F(\hat{Y})||_{p}, \quad otherwise \end{cases}$$

第三个损失函数是 Invariances with auto-correlation,计算真实序列的自相关系数, 以及预测结果和真实序列的相关系数,比较二者的差异

$$L_{amp}(Y, \hat{Y}) = ||R(Y, Y) - R(Y, \hat{Y})||_{p}$$

最终的 TILDE-Q 损失函数是上面 3 种衡量不变性损失函数的加权求和:

$$L_{TILDE-Q}(Y, \hat{Y}) = \alpha L_{a.shift}(Y, \hat{Y}) + (1 - \alpha)L_{phase}(Y, \hat{Y}) + \gamma L_{amp}(Y, \hat{Y})$$

DTW

img

参考