二分类问题指的是因变量或者被预测变量是分类变量,且其取值水平只有两个的情形,比如预测客户是否会流失的情形。整个代码大致可以分为包、数据、模型、预测评估4个部分,接下来逐一解读。
1、包部分,也就是加载各类包,包括随机森林包randomForest,数据相关包tidyverse、skimr、DataExplorer,模型评估包caret、pROC。
2、数据部分,主要是读取数据,处理缺失值,转换变量类型。此处要确保因变量被处理为factor,这样才能在训练模型时才会被自动识别成分类模型。
3、模型部分。
为了对模型的泛化能力有更准确的评估,先将数据集拆为训练集和测试集,后续将在训练集上训练模型,然后以测试集上的结果评估模型泛化能力。
模型训练部分及模型结果部分的代码如下:
# 因变量自变量构建公式
colnames(Heart)
form_cls <- as.formula(
paste0(
"AHD ~ ",
paste(colnames(traindata)[2:14], collapse = " + ")
)
)
form_cls
# 构建模型
set.seed(42) # 保证结果的可重复性
fit_rf_cls <- randomForest(
form_cls,
data = traindata,
ntree = 500, # 决策树棵数
mtry = 6, # 每个节点可供选择的变量数目
importance = T # 输出变量重要性
)
# 模型概况
fit_rf_cls
# ntree参数与error之间的关系图示
plot(fit_rf_cls, main = "ERROR & TREES")
legend("top"