【问题标题】:Regression RMSE when dependent variable is log transformed因变量对数转换时的回归 RMSE
【发布时间】:2023-03-18 05:42:02
【问题描述】:

我想预测一次旅行的持续时间。为此,我将因变量(以秒为单位的行程时间)转换为对数转换。

当我用其他一些特征对这个变量进行回归时,

我明白了:

The score on held out data is: 0.08395386395024673
 Hyper-Parameters for Best Score : {'l1_ratio': 0.15, 'alpha': 0.01}

The R2 Score of sgd_regressor on test data is: 0.0864573982691922

The mse of sgd_regressor on test data is: 0.5503753581
The mean absolute error of sgd_regressor on test data is: 0.566328128068

这是进行上述计算的代码:

   from sklearn.metrics import mean_squared_error, mean_absolute_error

    # 
    print("The R2 Score of "+ name + " on test data is: {}\n".format(self.g_cv.best_estimator_.score(self.test_X,self.test_Y)))

    print ("The mse of "+ name + " on test data is:",\
           mean_squared_error(test_Y, self.g_cv.best_estimator_.predict(self.test_X)))

    print ("The mean absolute error of "+ name + " on test data is:",\
           mean_absolute_error(test_Y, self.g_cv.best_estimator_.predict(self.test_X)))

问题是您看到的 R2 非常糟糕。 0.08,但 RMSE 和平均绝对误差似乎非常低。如果我查看平均绝对误差,它只有 0.56 秒。这意味着平均而言,我的预测时间与真实时间仅相差半秒。

看起来有些不对劲。在计算上述指标(RMSE 和 MAE)之前,是否需要将预测时间变量和原始时间变量从对数标度转换回线性标度?

谢谢

【问题讨论】:

    标签: python machine-learning regression


    【解决方案1】:

    您的指标是根据转换后的变量计算的。

    因此,0.56 的 MAE 是持续时间的对数之间的平均差,而不是持续时间本身。

    记住,您可以转换回秒数

    log(m) - log(n) = log(m/n)
    

    【讨论】:

      猜你喜欢
      • 2015-03-30
      • 2015-05-29
      • 1970-01-01
      • 2023-01-15
      • 2020-10-31
      • 1970-01-01
      • 2013-08-13
      • 1970-01-01
      • 2020-09-23
      相关资源
      最近更新 更多