ctree。将分类节点号放在变量中

时间:2017-10-17 11:53:01

标签: r machine-learning

我有一个由

制作的分类树
library(party)
model.cart <- ctree(qtcf ~ ., data=training)

在我的情况下,我想在我的训练集(训练)和测试集(测试)中创建一个新变量,指示特定观察的终端节点编号。

显然,它可以像这样手动制作:

training$ctreegroup[((training$sex == 'female') & (training$rs12143842.y>0) 
                    & (training$rs735951>0))] <- 'node14'
testing$ctreegroup[((testing$sex == 'female') & (testing$rs12143842.y>0) & 
                      (testing$rs735951>0))] <- 'node14'

但是,有没有一种智能的方法可以自动执行此操作而无需手动编程所有决策?

1 个答案:

答案 0 :(得分:0)

根据shuckle的建议

training$node_placement <- where(model.cart)

为训练集工作。不幸的是,它不适用于测试集,如

testing$node_placement <- where(model.cart)

产生了错误

Error in `$<-.data.frame`(`*tmp*`, ctreegroup, value = c(22L, 22L, 23L,  : 
  replacement has 4440 rows, data has 1478

所以函数不重新检查数据