我想预测一次旅行所需的时间。为此,我将因变量(行程时间(以秒为单位))转换为对数转换。
当我使用其他一些功能对该变量进行回归时,
我得到这个:
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)之前,是否需要将预测时间和原始时间变量从对数刻度转换回线性刻度?
谢谢
最佳答案
您的指标是根据转换后的变量计算得出的。
因此,MAE为0.56是持续时间的对数之间的平均差,而不是持续时间本身。
您可以记住,可以转换回秒
log(m) - log(n) = log(m/n)