我在加载随机森林模型并将其应用到带有 raster::predict
的栅格时遇到问题.
通常,当我在 R session 中创建随机森林模型时,输入其名称并按 Enter 键,我会收到以下打印输出:
> rf_model
Call:
randomForest(formula = AGB_mean ~ B1_med + B2_med + B4_med + B5_med + B6_med + B7_med + B1_sd + B2_sd + B4_sd + B5_sd + B6_sd + B7_sd + NDVI + EVI + EVI2, data = all.training, importance = TRUE, na.action = na.roughfix)
Type of random forest: regression
Number of trees: 500
No. of variables tried at each split: 5
Mean of squared residuals: 4866.287
% Var explained: 52.48
当我使用
predict
将此 session 中模型应用于栅格时,我可以做出成功的预测。当我使用 readRDS 加载保存的随机森林模型并输入模型名称时,如下所示:
> rf_model <- readRDS('model.rds')
> rf_model
我收到了 rf_model 中所有信息的完整打印件(即 rf_model$call, rf_model$type... rf_model$terms),当我尝试进行预测时,我收到以下错误:
Error in UseMethod("predict") :
no applicable method for 'predict' applied to an object of class "c('randomForest.formula', 'randomForest')"
在正确加载随机森林对象时,我在这里遗漏了什么吗?
最佳答案
例如:
library(randomForest)
rf_model <- randomForest(Species ~ .,data=iris)
saveRDS(rf_model,'model.rds')
quit()
如果我再次启动 R,我需要加载库:
rf_model <- readRDS('model.rds')
predict(rf_model)
Error in UseMethod("predict") :
no applicable method for 'predict' applied to an object of class "c('randomForest.formula', 'randomForest')"
library(randomForest)
head(predict(rf_model))
1 2 3 4 5 6
setosa setosa setosa setosa setosa setosa
Levels: setosa versicolor virginica
关于R - 随机森林未正确加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61789041/