如何在R中预测后撤消日志转换?

时间:2016-07-09 14:07:22

标签: r transform

我已经将多元线性回归应用于我的对数变换依赖特征。 30个独立功能中的四个也进行了对数转换。我想在预测之后撤消日志转换,因为当特征未进行日志转换时,更容易解释RMSE和MAE分数。我似乎无法弄清楚它是如何工作的。

这就是模型代码的样子:

m1 <- lm(Feature.logtransformed ~., data = trainset)

这是我用来获取模型的RMSE分数的代码:

rmse <- function(model){
  y = trainset$Feature.logtransformed
  y.pred = predict(model, trainset) 
  return(sqrt(mean((y - y.pred)^2)))
}

rmse(m1)

我想做这样的事情:

rmset <- function(model){
  y = trainset$Feature.logtransformed
  y = y - exp(y)
  y.pred = predict(model, trainset)
  return(sqrt(mean((y - y.pred)^2)))
}

我使用此代码转换功能:

df$Feature.logtransformed <- log(df$Feature.logtransformed + 1 )

但这似乎没有给出好的结果?如果有人可以提供帮助,我真的很感激!

1 个答案:

答案 0 :(得分:1)

试试这个:

rmset <- function(model){
y = trainset$Feature.logtransformed
y.pred = predict(model, trainset)

y<-exp(y) - 1
y.pred<-exp(y.pred)-1

return(sqrt(mean((y - y.pred)^2)))
}