Keras 理解SMAPE的模糊性

Keras 理解SMAPE的模糊性,keras,forecasting,Keras,Forecasting,我已经实现了几种回归预测方法,现在我想对它们进行比较。我选择了MAE、RMSE和SMAPE评级。我的结果如下: 方法1:MAE=0,6,RMSE=0,9和SMAPE 531 方法2:MAE=3,0,RMSE=6,1和SMAPE 510 方法3:MAE=10,1,RMSE=17,00和SMAPE 420 当我绘制预测图并将其与测试集进行比较时,我可以看到方法1>方法2>方法3。MAE和RMSE的值也表明了这一点。但我认为得出的SMAPE越低,预测就越好 我误解了斯玛普吗? 由于phyton中没有预

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

  • 方法1:MAE=0,6,RMSE=0,9和SMAPE 531
  • 方法2:MAE=3,0,RMSE=6,1和SMAPE 510
  • 方法3:MAE=10,1,RMSE=17,00和SMAPE 420
  • 当我绘制预测图并将其与测试集进行比较时,我可以看到方法1>方法2>方法3。MAE和RMSE的值也表明了这一点。但我认为得出的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
    
    现在,与MAE和RMSE相比,我的结果从SMAPE中看起来更可信