【问题标题】:Root mean square error (RMSE) using R for the Boston Housing Data:波士顿住房数据使用 R 的均方根误差 (RMSE):
【发布时间】:2019-06-28 02:26:14
【问题描述】:

感谢您为此提供的任何形式的想法或帮助。

我已经提交了一份包含波士顿住房数据的作业。

目标是使用 randomForest 进行预测。 要优化的量是 RMSE。

我对如何进行 RMSE 感到困惑。请大家帮忙

谢谢

我已经尝试遵循 RMSE 公式,并且我已经完成了基本的想法,但我没有取得任何进展。请指导

谢谢

  raw.data <- read.csv("Boston Housing data.csv", header = T, sep = "")
  fit1<-lm(raw.data$MEDV~.,data = raw.data)
  RMSE<- sqrt(mean((raw.data-fit1)^2),na.strings="?")

Ops.data.frame(raw.data, fit1) 中的错误: 长度为 12 的列表没有意义

【问题讨论】:

  • 非常通用的基本调试技巧。当一行中有错误时,运行该行的每一部分以查看其中的内容。使用您的线路,您可能会开始将其缩小到mean((raw.data-fit1)^2),以查看问题是否出在sqrt()。你会得到同样的错误,所以你试试mean((raw.data-fit1)^2)。同样的错误,所以尝试raw.data-fit1,同样的错误,所以您查看raw.data 并希望意识到它是整个数据框,这没有意义。然后将其更改为raw.data$MEDV-fit1。还是报错!然后看看fit1,发现它是一个模型,而不是一个数字向量......
  • 要成功学习 R(或任何计算机语言),您可以培养的最重要技能是通过隔离问题并检查您对每一小段代码的假设进行调试。
  • 是否有理由从头开始编写指标代码?

标签: r machine-learning random-forest


【解决方案1】:

看起来您正试图从整个 raw.data 数据框中减去拟合值。更新您的 RMSE 行应该可以解决它:

RMSE<- sqrt(mean((raw.data$MEDV - fit1$fittedvalues)^2),na.strings="?")

【讨论】:

  • 在 OP 的代码中,fit1 是线性模型对象,而不是拟合值。也可以使用fit1$fittedvalues,或者从响应列中减去线性模型。
猜你喜欢
  • 2017-05-12
  • 1970-01-01
  • 1970-01-01
  • 2020-03-29
  • 1970-01-01
  • 1970-01-01
  • 2013-01-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多