【问题标题】:Load classification tree model on new raster data set在新的栅格数据集上加载分类树模型
【发布时间】:2018-07-18 23:14:09
【问题描述】:

我正在使用分类树模型,该模型允许我对光栅图像进行分类(以创建地图)。我想在另一个脚本中将此分类树重新应用到新的栅格数据集。 我尝试将模型保存为 .rda.RData 文件,但我遇到了同样的问题,无法在新数据集上预测模型。

没有适用于“字符”类对象的“预测”方法

我很确定问题出在模型的 save 函数上,因为它没有完全出现:

summary(model)
#   Length     Class      Mode 
#        1 character character

我正在用这段代码保存我的模型:

save(cuttreedown.training, file =("Artmac.rda")

并用 :

加载它
model <- load("Artmac.rda")

这是我的predict 函数,其中satImage 是我的光栅文件(该函数在另一个脚本上运行良好):

predict(satImage, model, filename="test.tif", progress='text', datatype='INT1U', type='prob', overwrite=TRUE)

我只想将我的模型应用到新的栅格数据集上,就像在训练脚本中完成的那样。

【问题讨论】:

    标签: r model tree classification raster


    【解决方案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
    

    【讨论】:

      【解决方案2】:

      只需保存和加载模型,无需扩展。另外,加载时不要创建新对象,它会自动将模型对象填充到环境中。试试:

      save(cuttreedown.training, file="Artmac")
      
      load("Artmac")
      
      summary(Artmac)
      

      【讨论】:

      • 不,它不起作用我有完全相同的问题,就像它并没有真正保存我的模型。不过谢谢你的回答。
      • 提供minimalreproducible 示例将有助于故障排除过程。
      猜你喜欢
      • 2012-05-29
      • 2018-09-15
      • 2015-08-14
      • 2020-08-12
      • 1970-01-01
      • 2019-06-28
      • 2012-07-22
      • 1970-01-01
      • 2014-11-24
      相关资源
      最近更新 更多