2

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

一个说明性的例子:

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

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

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

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

4

1 回答 1

1

你也可以试试派对包,你可以在那里强制单分裂

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

在此处输入图像描述

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

在此处输入图像描述

于 2014-03-23T18:07:01.597 回答