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)
ggplot(varimpdata, 
       aes(x &#

你可能感兴趣的:(R语言大学作业,r语言)