我想执行决策树分析。我希望决策树使用模型中的所有变量。
我还需要绘制决策树。我如何在R中做到这一点呢?
这是我的数据集的示例
> head(d)
TargetGroup2000 TargetGroup2012 SmokingGroup_Kai PA_Score wheeze3 asthma3 tres3
1 2 2 4 2 0 0 0
2 2 2 4 3 1 0 0
3 2 2 5 1 0 0 0
4 2 2 4 2 1 0 0
5 2 3 3 1 0 0 0
6 2 3 3 2 0 0 0
> 我想用这个公式
myFormula <- wheeze3 ~ TargetGroup2000 + TargetGroup2012 + SmokingGroup_Kai + PA_Score请注意,所有变量都是分类的。
编辑:我的问题是一些变量不会出现在最终的决策树中。树的deap应该由惩罚参数alpha定义。我不知道如何设置此惩罚,以便所有变量都出现在我的模型中。
换句话说,我想要一个最小化训练误差的模型。
发布于 2014-03-24 02:39:43
如上所述,如果您希望在所有变量上运行树,则应将其编写为
ctree(wheeze3 ~ ., d)你提到的惩罚位于ctree_control()。您可以在其中设置P值以及最小拆分和存储桶大小。因此,为了最大限度地增加包含所有变量的机会,您应该这样做:
ctree(wheeze3 ~ ., d, controls = ctree_control(mincriterion = 0.85, minsplit = 0, minbucket = 0))问题是你会有过度拟合的风险。
您需要理解的最后一件事是,您可能看不到树输出中的所有变量的原因是因为它们对依赖变量没有显著影响。与线性或逻辑回归不同,它将显示所有变量并给出P值,以便确定它们是否有意义,决策树不会返回无意义的变量,也就是说,它不会被它们分割。
要更好地理解ctree的工作原理,请查看此处:https://stats.stackexchange.com/questions/12140/conditional-inference-trees-vs-traditional-decision-trees
发布于 2014-03-20 01:36:34
最简单的方法是使用rpart包,它是核心R的一部分。
library(rpart)
model <- rpart( wheeze3 ~ ., data=d )
summary(model)
plot(model)
text(model)公式参数中的.表示使用所有其他变量作为自变量。
发布于 2014-03-20 01:04:45
plot(ctree(myFormula~., data=sta))https://stackoverflow.com/questions/22443554
复制相似问题