rpart不分割明显的节点

rpart不分割明显的节点,r,rpart,R,Rpart,我使用的数据集大约有54K条记录和5个类(pop),其中一个类是不重要的。我正在使用插入符号包和以下内容来运行rpart: model <- train(pop ~ pe + chl_small, method = "rpart", data = training) model=32070.5 22589 10281 ultra(0.39 0.068 0.54)* 3) pe>=5004 14722 1113合成回波(0.0052 0.052 0.0047 0.92 0.013)* 显

我使用的数据集大约有54K条记录和5个类(pop),其中一个类是不重要的。我正在使用插入符号包和以下内容来运行rpart:

model <- train(pop ~ pe + chl_small, method = "rpart", data = training)
model=32070.5 22589 10281 ultra(0.39 0.068 0.54)*
3) pe>=5004 14722 1113合成回波(0.0052 0.052 0.0047 0.92 0.013)*
显然,应该进一步拆分节点5,但rpart没有这样做。我尝试使用
cp=.001
cp=.1
以及
minbucket=1000
作为附加参数,但没有改进


感谢您的帮助。

尝试使用更小的
cp=0.00001
cp=-1
运行模型。如果仍然没有分割该节点,则意味着分割不会改善整体拟合

您还可以尝试将分割标准从默认的基尼杂质更改为信息增益标准:
parms=list(split=“information”)

如果强制拆分,最好快速检查: 比较原始模型和具有小
cp
的模型的训练集和测试集的准确性


如果原始模型的训练与测试之间的差异小得多,那么另一个模型可能会过度拟合数据

为什么说节点5必须拆分?如果节点中类的分布与预测器无关,则拆分它不会有任何好处。此外,如果希望尽可能强制rpart拆分,请设置
cp=-1
(或任何负数)。
n= 54259 

node), split, n, loss, yval, (yprob)
  * denotes terminal node

1) root 54259 38614 pico (0.0014 0.18 0.29 0.25 0.28)  
 2) pe< 5004 39537 23961 pico (0 0.22 0.39 2.5e-05 0.38)  
  4) chl_small< 32070.5 16948  2900 pico (0 0.00012 0.83 5.9e-05 0.17) *
  5) chl_small>=32070.5 22589 10281 ultra (0 0.39 0.068 0 0.54) *
3) pe>=5004 14722  1113 synecho (0.0052 0.052 0.0047 0.92 0.013) *