如何将 cforest/ctree 构建树所需的时间与数据中的列数解耦?
我认为该选项mtry
可以用来做到这一点,即帮助说
随机森林类算法在每个节点上随机抽样作为候选的输入变量的数量。
但是,虽然这确实随机化了输出树,但它并没有将 CPU 时间与列数解耦,例如
p<-proc.time()
ctree(gs.Fit~.,
data=Aspekte.Fit[,1:60],
controls=ctree_control(mincriterion=0,
maxdepth=2,
mtry=1))
proc.time()-p
需要两倍的时间Aspekte.Fit[,1:30]
(顺便说一句。所有变量都是布尔值)。为什么?它在哪里随列数缩放?
在我看来,算法应该:
- 在每个节点随机选择两列。
- 使用它们来拆分响应。(因为 没有缩放
mincriterion=0
) - 继续到下一个节点(总共 3 个由于
maxdepth=2
)
不受列总数的影响。
感谢您指出我的方式的错误