繁体   English   中英

如何在每个特征变量中(最好在 R 中)构建一个只有二元分割的分类树?

[英]How to build a classification tree with only binary splits in each feature variable (preferably in R)?

我一直在使用 rpart 来训练一个带有二元响应的监督决策树模型。 结果的问题在于某些特征以非单调的方式被多次拆分。 例如,特征 A 可能被分成三个区间,[0,0.4],[0.4,0.6],[0.6,1],分别对应以下响应,-1,1,-1。 我希望每个功能都以二进制方式拆分一次。 有没有办法在R中做到这一点?

一个说明性的例子:

假设我对根据 SAT 分数预测大学辍学率感兴趣。 然后 R 中的 tree 或 rpart 包可能会给我以下模型:

1. SAT > 1100: no dropout
2. SAT <= 1100:
  3. SAT > 900: dropout
  4. SAT <= 900: no dropout

虽然这可能是给定训练数据的最佳二叉树模型。 我想注入我的领域知识,即 SAT 分数和辍学概率之间的关系应该是单调的,并强制使用单个 SAT 阈值来确定辍学概率。

所以我的问题是,是否有一种方法可以在 R 中强制执行上述意义上的单调性。

您也可以尝试派对包,您可以在那里强制执行单个拆分

library(party)
library(survival)
plot(ctree(status  ~ time1,  rats2), type = "simple")

在此处输入图片说明

plot(ctree(status  ~ time1,  rats2, controls = ctree_control(stump = T)), type = "simple")

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM