基本思想
通过Bootstrap抽样(0.632自举法),对样本量为n的样本,做k次有放回重复抽样,得到k个样本容量仍为n的随机样本Si,基于样本Si,建立k棵分类回归树,即k个预测模型。
对于分类问题,采用k个预测模型“投票”和“少数服从多数”的原则。哪个类别“得票”最多,就预测为哪个类别。对于回归问题,以k个预测模型给出的预测值的平均值作为最终的预测值。
若令k个预测模型为所有观测投票预测,总有部分观测参与建模,会导致预测误差的估计偏乐观。一般采用基于袋外(Out Of Bag,OOB)观测的预测误差。即若第i个观测在建模过程中有q(q<k)次作为OOB观测,则对第i个观测进行预测时应有q个预测模型为其投票,并以得票最高的类别作为其预测类别。
对袋装技术而言,袋外观测的比例大约为36.8%。
下面以R语言分类预测–决策树中的例子的基础上,进行模型优化:
library('ipred')
#袋装技术建立树模型
#coob=TRUE:基于袋外观测计算预测误差;nbagg=25即抽样次数k;control同单棵树参数意义相同
tree_bag <- ipred::bagging(pres92~age+educ+degree+sex, data=df,nbagg=25, coob=TRUE, control=rc )
#使用模型对样本所有观测进行预测
ts2 <- predict(tree_bag, df, type='