【问题标题】:How to undo log transformation after prediction in R?如何在R中预测后撤消对数转换?
【发布时间】:2016-07-09 14:07:22
【问题描述】:

我已将多元线性回归应用于我的对数变换相关特征。 30 个独立特征中的 4 个也进行了对数转换。但是,我想在预测之后撤消对数转换,因为当特征没有对数转换时,更容易解释 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 )

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

【问题讨论】:

    标签: r transform


    【解决方案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)))
    }
    

    【讨论】:

    • 太棒了,我现在得到了正确的结果!非常感谢,非常感谢您的帮助!
    • @Bryan y.pred 实际上应该是 exp(y.pred) - 1 ,不是吗?
    猜你喜欢
    • 1970-01-01
    • 2018-09-30
    • 1970-01-01
    • 2020-02-04
    • 2018-06-26
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多