2016-07-09 16 views
0

私は多変量線形回帰を対数変換の依存関数に適用しました。 30個の独立した特徴のうち4つも対数変換される。しかし、RMSEとMAEのスコアがログ変換されていない場合、そのスコアを解釈する方が簡単なので、予測後のログ変換を取り消したい。しかし、私はこれがどのように機能するのか分かりません。Rの予測後にログ変換を元に戻す方法は?

これは、モデルのコードがどのように見えるかです:

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

ことは、これを試してみてください:

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))) 
} 
+0

恐ろしい、私は今、右の結果を得ます!ありがとう、本当にありがとう! – Veraaa

+0

@Bryan y.predが実際にEXP(y.pred)でなければなりません - 1、そうではありませんか?あなたは正しいよう – Indi

+0

に見えます。私はそれを変更します。 –

関連する問題