你好,这里是R数据课堂,我是一水。
上节课了解了模型树,这节课学习随机森林:
理论概况
数据准备
模型训练
01理论概况
随机森林是集成方法的一种,会用bootstrap的样本构建决策树,然后用多个决策树的预测结果的均值作为随机森林的预测结果。具体思路是在单个树的构建过程中增加一个约束条件,即在树的每个节点,从全部输入特征中随机抽取数量为mtry的特征,只考虑这些特征进行计算。
02 数据准备
credit
str(credit)
set.seed(300)
random_ids
credit_train
credit_test
# runif是0-1之间均匀分布的返回值,order对数据升序排列,返回对应的行标。然后依据行标获得训练集和测试集。
03 模型训练和评估
library(caret)
ctrl
grid_rf
m_rf
m_rf_best
library(randomForest)
mean(predict(m_rf_best,data=credit_train)== credit_train$default)
mean(predict(m_rf_best,data=credit_test)== credit_test$default)
# 训练模型之前先要准备模型的参数ctrl和grid_rf,ctrl选择抽样方式,这里是10次10层交叉检验,grid_rf选择特征数量为3~8,模型会分别尝试各个数量的特征。
# 模型训练结果显示8个特征的时候Kappa值最大,因此选择8个特征作为最优模型的参数。m_rf$finalModel用于选择最优模型。最后用均值显示训练集和测试集的评估效果。
小结
train函数中决策树的数量默认是500,特征数量的经验值是总特征的平方根或者1/3。
如果对模型的评估效果不满意,可以尝试更改以下参数值:
更改抽样方法
更改决策树的数量
更改选取的特征数量
下节课我们会尝试更改参数值进行模型训练。
感谢阅读,今天的内容有任何操作问题,请留言。
领取专属 10元无门槛券
私享最新 技术干货