R语言实战应用精讲50篇(三十一)-R语言实现决策树(附R语言代码)

Posted 文宇肃然

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言实战应用精讲50篇(三十一)-R语言实现决策树(附R语言代码)相关的知识,希望对你有一定的参考价值。

决策树回归

首先采用rpart包的rpart函数训练决策树模型,需要指定公式、数据集,将模型设定为回归模型,也就是将method设定为anova,最后是控制参数,主要是一些控制决策树生长的预剪枝参数,包括设定树的深度、叶子节点样本量、复杂度参数等,具体可以查阅函数帮助文档。

其次输出前述模型的结果,即初始树,同时输出复杂度相关表格和图形。依据这些表格和图形可以确定一个最佳的cp值,进而进行下一步后剪枝。经过后剪枝的决策树,也就是我们最后确定下来的决策树模型,用于后续的输出和预测。

最后输出决策树相关的图形,包括变量重要性条形图、树形图。

# 训练模型
# rpart参考文档
set.seed(42) # 固定交叉验证结果
fit_dt_reg <- rpart(
  form_reg, # formula
  data = traindata,
  method = "anova", # 回归
  # 回归模型无parms参数
  control = rpart.control(cp = 0.005)
)
# 原始回归树
fit_dt_reg
# 复杂度相关数据
printcp(fit_dt_reg)
plotcp(fit_dt_reg)

# 后剪枝
fit_dt_reg_pruned <- prune(fit_dt_reg, cp = cp1SE)
print(fit_dt_reg_pruned)
summary(fit_dt_reg_pruned)

# 变量重要性数值
fit_dt_reg_pruned$variable.importance
# 变量重要性图示
varimpdata <-
  data.frame(importance = fit_dt_reg_pruned$variable.importance)
g

以上是关于R语言实战应用精讲50篇(三十一)-R语言实现决策树(附R语言代码)的主要内容,如果未能解决你的问题,请参考以下文章

R语言实战应用精讲50篇(三十二)-R语言实现单变量时间序列(附R语言代码)

R语言实战应用精讲50篇(三十五)-R语言实现xgboost回归(附R语言代码)

R语言实战应用精讲50篇(三十)-R语言实现支持向量机(附R语言代码)

R语言实战应用精讲50篇(三十三)-R-circlize包应用案例详解(附R语言代码)

R语言实战应用精讲50篇(十四)-R语言构建层次分析模型

R语言实战应用精讲50篇(二十四)-贝叶斯定理及R语言实现