在模型构建部分,二分类模型与回归模型大致相似,主要在rpart函数中多了parms参数可以设置,其值是一个list,其中可以指定分裂规则,将其设定为gini则构建CART决策树,将其设定为information则构建ID3决策树;还可以指定损失函数的权重,这个在遇到训练集样本不平衡的情况时比较有用,具体可以看下帮助文档。
初始决策树构建好之后,后剪枝、输出变量重要性、树形图的操作均与回归部分类似。
得到最后的决策树二分类模型之后,先预测训练集样本的概率,然后计算ROC,绘制ROC曲线,并依据约登法则确定最佳概率分界点,然后依据预测概率和分界点即可得到预测类别,最后实际类别和预测类别比较即可得到混淆矩阵。后续用于测试集可以得到预测概率和预测类别。
关于依据约登法则得到最佳概率分界点的步骤,可以跳过,即直接用0.5作为分界点;也可以用单独的验证集来确定。实际操作中,各种都有,大家自行把握。
# 构建模型
set.seed(42) # 固定交叉验证结果
fit_dt_cls <- rpart(
form_cls,
data = traindata,
method = "class", # 分类模型
parms = list(split = "gini"