当因变量被对数变换时的回归RMSE

时间:2017-11-19 02:52:35

标签: python machine-learning regression

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

当我使用其他一些功能对此变量进行回归时,

我明白了:

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)之前,是否需要将预测和原始时间变量从对数刻度转换回线性刻度?

由于

1 个答案:

答案 0 :(得分:1)

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

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

你可以转换回秒,记住

None