rpart中分类变量的处理
我想知道rpart中分类变量的处理,r,decision-tree,R,Decision Tree,我想知道rpart如何处理分类变量。有几篇参考文献表明,对于无序因素,它会查看所有组合。实际上,即使是第6.2节末尾的 (F) 或者是一个有m个级别的分类预测值,全部为2^m−1不同的可能 对裂缝进行了测试 然而,考虑到我在代码方面的经验,我发现很难相信。小插曲显示了一个支持证据,证明 rpart(Reliability ~ ., data=car90) 需要很长很长的时间。然而,在我的例子中,它以秒为单位运行。尽管有一个30级的无序因子变量。 为了进一步说明这个问题,我创建了几个52个级别
rpart
如何处理分类变量。有几篇参考文献表明,对于无序因素,它会查看所有组合。实际上,即使是第6.2节末尾的
(F) 或者是一个有m个级别的分类预测值,全部为2^m−1不同的可能
对裂缝进行了测试
然而,考虑到我在代码方面的经验,我发现很难相信。小插曲显示了一个支持证据,证明
rpart(Reliability ~ ., data=car90)
需要很长很长的时间。然而,在我的例子中,它以秒为单位运行。尽管有一个30级的无序因子变量。
为了进一步说明这个问题,我创建了几个52个级别的变量,这意味着如果探索了所有可能性,则需要检查2^51-1~2.2 10^15个拆分。这段代码大约在一分钟内运行,这证明了所有的组合都没有被检查
NROW = 50000
NVAR = 20
rand_letters = data.frame(replicate(NVAR, as.factor(c(
letters[sample.int(26, floor(NROW/2), replace = TRUE)],
LETTERS[sample.int(26, ceiling(NROW/2), replace = TRUE)]))))
rand_letters$target = rbinom(n = NROW, size = 1, prob = 0.1)
system.time({
tree_letter = rpart(target ~., data = rand_letters, cp = 0.0003)
})
tree_letter
在rpart
中实际检查了哪些分类变量组合