回归问题指的是因变量或者被预测变量是连续性变量的情形,比如预测身高体重的具体数值是多少的情形。整个代码大致可以分为包、数据、模型、预测评估4个部分,接下来逐一解读。
1、包部分,也就是加载各类包,包括随机森林包randomForest,数据相关包tidyverse、skimr、DataExplorer,模型评估包caret。
2、数据部分,主要是读取数据,处理缺失值,转换变量类型。
3、模型部分。
为了对模型的泛化能力有更准确的评估,先将数据集拆为训练集和测试集,后续将在训练集上训练模型,然后以测试集上的结果评估模型泛化能力。
模型训练部分及模型结果部分的代码如下:
# 因变量自变量构建公式
colnames(boston)
form_reg <- as.formula(
paste0(
"medv ~ ",
paste(colnames(traindata)[1:13], collapse = " + ")
)
)
form_reg
# 训练模型
set.seed(42)
fit_rf_reg <- randomForest(
form_reg,
data = traindata,
ntree = 500, # 决策树棵数
mtry = 6, # 每个节点可供选择的变量数目
importance = T # 输出变量重要性
)
# 模型概要
fit_rf_reg
# ntree参数与error之间的关系图示
plot(fit_rf_reg, main = "ERROR & TREES")
# 变量重要性
importance(fit_rf_reg)
varImpPlot(fit_rf_reg, main = "Variable Importance Plot