【问题标题】:In R, what is the difference between predict() function and model$predicted value? [duplicate]在 R 中,predict() 函数和 model$predicted 值有什么区别? [复制]
【发布时间】:2018-11-19 05:44:15
【问题描述】:

如果我将随机森林模型应用于 R 中的训练集,

forest = randomForest(y ~ ., data = dat)
pred1 = predict(forest, newdata = dat)
pred2 = forest$predicted

第二行和第三行是同一个模型应用于同一个数据集,但为什么它们给出不同的值呢?

pred1用于与真实响应值进行比较并计算训练集的RMSE;而pred2 用于与真实响应值进行比较并计算测试集的 RMSE(out-of-bagging 误差)?

谢谢!

【问题讨论】:

  • 不要将predict(forest, newdata=training_data) 用于随机森林。这将扭曲模型的准确性。

标签: r random-forest


【解决方案1】:

您的第二行似乎有错字。使用可重现的示例并将第二行中的“forect”更改为“forest”,我的第二行和第三行的输出似乎相同。

forest = randomForest(vs~., data = mtcars)
predict(forest, data = mtcars)
forest$predicted

【讨论】:

  • 谢谢!但是如果我用predict(forest, newdata = mtcars)而不是predict(forest, data = mtcars),输出的值就不一样了,为什么会这样呢?
  • 来自预测帮助文件:“大多数与线性模型相似的预测方法都有一个参数 newdata 指定首先查找用于预测的解释变量。进行了一些相当大的尝试将 newdata 中的列与用于拟合的列进行匹配,例如,它们具有可比较的类型,并且任何因子具有以相同顺序设置的相同水平(或可以转换为这样)。"
  • 显然,newdata 和 data 是 predict 函数的不同参数,对行为的影响不同
【解决方案2】:

$predicted 是一个数字向量,其中包含对训练数据集的预测(已传递给 randomForest()

predict() 是一种允许您使用模型(例如 randomForest 模型)为完全符合预期模式(不必是测试集)的任何输入创建拟合值的方法

【讨论】:

    猜你喜欢
    • 2019-07-05
    • 2018-12-25
    • 2017-11-06
    • 2013-04-08
    • 1970-01-01
    • 2021-10-21
    • 2011-01-17
    • 1970-01-01
    相关资源
    最近更新 更多