我正在使用可选参数 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
非常感谢你的帮助。
答案 0 :(得分:1)
嗯,你的所有权重都不为零,所以没有包外观察,这就是错误信息正确告诉你的。顺便说一句,派对不是在github上托管,而是在R-forge上。
的Torsten