我正在使用R包ranger拟合随机森林来对栅格图像进行分类。预测函数出现错误,下面提供一个可重现的示例。
library(raster)
library(nnet)
library(ranger)
data(iris)
# put iris data into raster
r<-list()
for(i in 1:4){
r[[i]]<-raster(nrows=10, ncols=15)
r[[i]][]<-iris[,i]
}
r<-stack(r)
names(r)<-names(iris)[1:4]
# multinom (an example that works)
nn.model <- multinom(Species ~ ., data=iris, trace=F)
nn.pred<-predict(r,nn.model)
# ranger (doesn't work)
ranger.model<-ranger(Species ~ ., data=iris)
ranger.pred<-predict(r,ranger.model)
给出的错误是
错误:矩阵上的下标不正确,v[cells,] <- predv
尽管我的真实数据中的错误是
错误:p[-naind,] <- predv : 替换项的数量不是替换长度的倍数
我能想到的唯一问题是 ranger.prediction 对象包含多个与预测相关之外的元素。 无论如何,如何使用 ranger 在栅格堆栈上进行预测?