我们使用连续和二进制输入对决策树进行建模。我们正在分析天气对骑行行为的影响。线性回归表明“下雨”对自行车数量有很大影响。我们的雨变量是二进制,显示每小时的降雨状况。
使用rpart创建决策树并不包含“rain”作为节点,尽管我们希望它对自行车的数量具有决定性作用。这可能是由于雨变量的分类。 Rpart似乎更喜欢为决策节点使用连续变量(如温度)。
关于rpart如何确定是使用连续变量还是二进制变量作为决策节点,我们应该知道什么?是否可以控制这些变量的选择?
library("rpart")
fit <- rpart(bikecount ~ df.weather$temp+df.weather$weekday+df.weather$rain, data=training.data, method="class")
答案 0 :(得分:0)
函数rpart
实现了Breiman,Friedman,Olshen和Stone(1984)的CART算法,该算法已知会受到偏向变量选择的困扰。也就是说,假设有两个或两个以上可以同等预测结果的变量,则最有可能选择具有唯一值最大数量的变量进行拆分。参见例如Loh and Shih(1997); Hothorn,Hornik和Zeileis(2006)。
无偏递归分区方法将选择1)拆分变量和2)拆分值分开,从而解决了该变量选择偏差。 R 包 partykit 中实现了无偏见的递归分区。
如果您上面提供的代码适用于函数rpart
(因为我不清楚为什么formula
中的预测变量包含$
,则响应变量不包含{ {1}}参数已指定),您应该能够使无偏分类树如下所示:
data
Hothorn,T.,Hornik,K.和Zeileis,A.(2006)。无偏递归分区:一个条件推断框架。计算与图形统计杂志,15(3),651-674。
Loh,W. Y.和Shih,Y. S.(1997)。分类树的拆分选择方法。统计学报7(4),815-840。