R中随机森林的RMSE计算?

时间:2015-09-16 10:43:09

标签: r random-forest

我对R来说是个新手并且有一个问题我希望你能帮助我。我想计算测试数据集和预测数据集之间的RMSE。

train = cdat[ii,]
test = cdat[-ii,]
rffit = randomForest(price~.,data=train,mtry=2,ntree=500)
rfvalpred = predict(rffit,newdata=test)
rmse = sqrt(mean((test$price-rfvalpred)^2))

不知怎的,我得到一个非常错误的RMSE号码,如400,任何想法是什么原因?

2 个答案:

答案 0 :(得分:0)

您的RMSE可以在[0,+ Inf]之间取值,具体取决于您的数据集。 400可能是您案件的正确答案。

答案 1 :(得分:0)

也许,您可能想使用 log1p 指标 lib:

require(Metrics) # install.packages('Metrics') if not installed
...
y_train = ...
y_predictions = ...

# Manual Calc ...
rmse <- sqrt(mean(as.matrix(log1p(y_train) - log1p(y_predictions))^2))
print(paste('RMSE:', rmse))
# ... Metrics lib
rmse <- rmse(log1p(as.matrix(y_train)), log1p(y_predictions))
print(paste('RMSE:', rmse))

希望有帮助。