使用派对包中的cforest进行caseweights和OOB预测的问题

时间:2018-04-18 06:55:33

标签: random-forest prediction party

我正在使用可选参数 caseweights 来拟合​​cforest,这是一个带有ncol的双矩阵(caseweights)==我随机林中的树数和nrow(caseweights)=观察数。此外,我正在规范它们,以便colSums等于1。但是,当我想将我的OOB预测与真实响应进行比较时,我总是会收到以下错误:

  

RET @ prediction_weights出错(newdata = newdata,mincriterion =   mincriterion,:无法计算袋外预测   观察编号1

我已经在github上查找了C源代码,然而却无法找出我无效的原因。

(如果我使用''标准''权重,即长度= =向量的矢量,仅用于采样),也会出现同样的错误

我做错了什么?

这是一个可重复的例子:

install.packages('party')
require('party')
head(iris)
weights<-rep(1,nrow(iris))
weights[iris$Species=='virginica']<-2
#normalize
weights<-weights/sum(weights) 
ntree<-100
#generate double matrix of caseweights
caseweights<-matrix(rep(weights,ntree),ncol=ntree)
colSums(caseweights)
#fit forest
f <- cforest(Species ~ ., data = iris,controls = cforest_unbiased(ntree=ntree,mtry=3,trace=TRUE),weights=caseweights)
#check out of bag cross classification
table(iris$Species,Predict(f,OOB=TRUE)) #throws error

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

嗯,你的所有权重都不为零,所以没有包外观察,这就是错误信息正确告诉你的。顺便说一句,派对不是在github上托管,而是在R-forge上。

的Torsten