R语言rpart构建回归树仅生成单节点问题排查
故障原因
rpart回归树仅返回根节点是默认参数与你当前极小样本数据集不匹配导致的:
- 你使用的数据集仅包含10条有效观测,远低于rpart默认的分裂门槛
- rpart默认
minsplit=20,即单个节点样本数≥20才允许尝试分裂,你的总样本量都达不到该要求,自然不会生成任何子节点 - 配套默认参数
minbucket=7(叶子节点最少留存7个样本)、cp=0.01(分裂需带来至少0.01的模型拟合度提升)也会进一步限制小样本下的树生长。
修复方案
手动调整rpart控制参数,降低分裂门槛即可生成完整树结构,修改后的代码如下:
# 构建适配小样本的回归树 Tree <- rpart( Adm.Numbers ~. - YEAR, data = FACTORS_Thesis_1_, method = "anova", control = rpart.control( minsplit = 2, minbucket = 1, cp = 0.001 ) ) # 查看树结构、绘图 print(Tree) rpart.plot(Tree)
*重要提示:10条样本的数据集训练回归树存在极严重的过拟合问题,生成的树结构仅能做现有数据的特征拆分展示,不具备统计推断效力,也无法用于预测,变量影响效应的分析请以你已经得到的线性回归结果为主。
内容的提问来源于stack exchange,提问作者M. Talha Bin Asif
相关产品推荐
相关产品推荐

