如何使用cforest

时间:2015-04-22 18:51:57

标签: r random-forest predict

我使用randomForest模型来预测类成员资格。 ' X'由10个课程组成,我用它来训练' training_predictors'从大型rasterstack /砖中提取的值。具体的代码行是:

  

r_tree< -randomForest(x~。,data = training_predictors,...)

然后我跑了'预测'使用模型' r_tree'我申请了rasterstack' predictor_data',如下:

  

预测< -predict(predictor_data,r_tree,filename = outraster,fun = predict na.rm = TRUE,format =" PCDISK&#34 ;, overwrite = TRUE,progress =" text" ,键入="响应")。

输出是我用作专题图的栅格。

我想使用条件推理树模式' cforest'而不是randomForest来实现相同的目标。

我理解'预测'可以和cforest一起使用,但是,我无法生成光栅文件,例如上面所示的randomForest光栅文件。

1 个答案:

答案 0 :(得分:0)

它应该运行正常,但您可能需要添加参数OOB = TRUE,并确定是否有任何因素。

示例数据

p <- matrix(c(48, 48, 48, 53, 50, 46, 54, 70, 84, 85, 74, 84, 95, 85, 
   66, 42, 26, 4, 19, 17, 7, 14, 26, 29, 39, 45, 51, 56, 46, 38, 31, 
   22, 34, 60, 70, 73, 63, 46, 43, 28), ncol=2)

a <- matrix(c(22, 33, 64, 85, 92, 94, 59, 27, 30, 64, 60, 33, 31, 9,
   99, 67, 15, 5, 4, 30, 8, 37, 42, 27, 19, 69, 60, 73, 3, 5, 21,
   37, 52, 70, 74, 9, 13, 4, 17, 47), ncol=2)

# extract values for points
xy <- rbind(cbind(1, p), cbind(0, a))
v <- data.frame(cbind(xy[,1], extract(logo, xy[,2:3])))
colnames(v)[1] <- 'pa'

基本型号

library(party)
m1 <- cforest(pa~., control=cforest_unbiased(mtry=3), data=v)
pc1 <- predict(logo, m1, OOB=TRUE)
plot(pc1)

具有因子的模型

v$red <- as.factor(round(v$red/100))
logo$red <- round(logo[[1]]/100)
m2 <- cforest(pa~., control=cforest_unbiased(mtry=3), data=v)
f <- list(levels(v$red))
names(f) <- 'red'
pc2 <- predict(logo, m2, OOB=TRUE, factors=f)
plot(pc2)

顺便说一句,这几乎直接来自raster :: predict

的帮助文件