我正在使用分类树模型,它允许我对光栅图像进行分类(以创建地图)。我想在另一个脚本中将此分类树重新应用于新的栅格数据集。
我尝试将模型保存为 pollutant air_quality_idx air_quality_cat air_quality_cat_idx
PM2.5,PM10,OZONE 28,6,24 Good,Good,Good 1,1,1
PM2.5,PM10,OZONE 28,5,25 Good,Good,Good 1,1,1
OZONE,PM2.5,PM10 26,23,4 Good,Good,Good 1,1,1
OZONE,PM2.5,PM10 26,23,3 Good,Good,Good 1,1,1
OZONE,PM2.5,PM10 27,22,3 Good,Good,Good 1,1,1
OZONE,PM2.5,PM10 27,24,2 Good,Good,Good 1,1,1
PM2.5,PM10,OZONE 50,4,27 Good,Good,Good 1,1,1
PM2.5,PM10,OZONE 54,4,22 Moderate,Good,Good 2,1,1
PM2.5,PM10,OZONE 56,5,22 Moderate,Good,Good 2,1,1
PM2.5,PM10,OZONE 60,5,28 Moderate,Good,Good 2,1,1
或.rda
文件,但我遇到了同样的问题,无法在新数据集上预测模型。
没有适用于“预测”的方法应用于“character”类的对象
我很确定问题是由于模型的.RData
功能引起的,因为它并不完全出现:
save
我用这段代码保存我的模型:
summary(model)
# Length Class Mode
# 1 character character
并加载:
save(cuttreedown.training, file =("Artmac.rda")
这是我的model <- load("Artmac.rda")
函数,其中predict
是我的光栅文件(该函数在另一个脚本上运行良好):
satImage
我只想在新的栅格数据集中应用我的模型,就像在训练脚本中完成一样。
答案 0 :(得分:1)
您可以将saveRDS / loadRDS用于此类任务。这是一个完整的例子:
library(rpart)
data(iris)
fit <- rpart(Species~., data = iris)
saveRDS(fit, "fit.rds")
load_fit <- readRDS("fit.rds")
all.equal(predict(load_fit, iris),
predict(fit, iris))
#output
TRUE
答案 1 :(得分:0)
只需保存并加载没有扩展名的模型。此外,在加载时不要创建新对象,它会自动将模型对象填充到环境中。试试:
save(cuttreedown.training, file="Artmac")
load("Artmac")
summary(Artmac)