【问题标题】:Random forest object not loading随机森林对象未加载
【发布时间】:2023-03-17 19:23:01
【问题描述】:

我将两个随机森林对象保存为 rda 文件。当我加载它们时-一个加载为角色,另一个加载为 randomForest 对象!有人可以解释一下吗?

这是我的代码 sn-p :

fit1 <- load("rfModel_pw2.rda")
fit2 <- load("rfModel_pw3.rda")
Pred1 <- predict(get(fit1), test, "prob")
#Error in get(fit1) : invalid first argument
Pred2 <- predict(get(fit2), test, "prob")
class(fit1)
#[1] "randomForest.formula" "randomForest" 
> class(fit2)
#[1] "character"

【问题讨论】:

  • 您能否展示如何训练和保存模型?
  • @SorenHavelundWelling 这是训练代码 sn-p : fit_noResponse , data=train,importance=TRUE, ntree=1000, mtry = 4,接近度 = TRUE) 为了保存,这是我的代码:save(fit_noResponse,file = "rfmodel_pw_noResponse.rda")

标签: r class load random-forest


【解决方案1】:

load() 自动将 .rda 文件中加载的对象置于全局环境中,并仅返回加载对象的字符名称。而不是使用get([name]),只需在保存之前和加载之后使用相同的对象名称,如示例所示。否则,如果您希望加载器函数返回加载的对象,您可以将load() / save() 替换为saveRDS() / readRDS()

library(randomForest)
X = replicate(2,rnorm(1000))
y = apply(X,1,sum) 
rf = randomForest(X,y)
save(rf,file="./rf.rda")

rm(list=ls())
load(file="./rf.rda") #object is restored in global enviroment by former name
predict(rf,replicate(2,rnorm(1000)))

【讨论】:

    猜你喜欢
    • 2020-08-30
    • 1970-01-01
    • 2017-12-04
    • 2017-03-15
    • 2014-08-07
    • 2015-10-15
    • 2015-02-15
    • 2018-07-10
    相关资源
    最近更新 更多