SMAPE理解模糊

ambiguity of understanding SMAPE

我已经实施了几种回归预测方法,现在我想比较它们。我选择了 MAE、RMSE 和 SMAPE 评级。我的结果如下所示:

  1. 方法 1:MAE= 0,6,RMSE= 0,9 和 SMAPE 531
  2. 方法 2:MAE= 3,0,RMSE= 6,1 和 SMAPE 510
  3. 方法 3:MAE= 10,1,RMSE= 17,00 和 SMAPE 420

当我绘制我的预测并将它们与我的测试集进行比较时,我可以看到方法 1 > 方法 2 > 方法 3。从 MAE 和 RMSE 的值中也可以看出这一点。但我认为生成的 SMAPE 越低,预测越好。

我是不是误解了 SMAPE? 由于phyton中没有预定义的方法,我的SMAPE计算是这样的:

def smape(A, F):
    return 100/len(A) * np.sum(2 * np.abs(F - A) / (np.abs(A) + np.abs(F)))

还是计算有误?

提前致谢

好吧,也许方法是错误的..相反,我使用了 Kaggle 中的这个:

from numba import jit
import math

@jit
def smape_fast(y_true, y_pred):
    out = 0
    for i in range(y_true.shape[0]):
        a = y_true[i]
        b = y_pred[i]
        c = a+b
        if c == 0:
            continue
        out += math.fabs(a - b) / c
    out *= (200.0 / y_true.shape[0])
    return out

URL 现在,与 MAE 和 RMSE

相比,SMAPE 的结果看起来更合理