您的位置:首页 > Web前端 > BootStrap

R语言分类算法之集成学习(Bootstrap Aggregating)

2017-05-08 00:00 267 查看
1.集成学习(Bootstrap Aggregating)原理分析:
Bagging是Bootstrap Aggregating的缩写,简单来说,就是通过使用boostrap抽样得到若干不同的训练集,以这些训练集分别建立模型,即得到一系列的基分类器,这些分类器由于来自不同的训练样本,他们对同一测试集的预测效果不一样.因此,Bagging算法随后对基分类器的一系列预测结果进行投票(分类问题)和平均(回归问题),从而得到每一个测试集样本的最终预测结果,这一集成后的结果往往是准确而稳定的.
比如现在基分类器1至10,他们对某样本的预测结果分别为类别1/2/1/1/1/1/2/1/1/2,则Bagging给出的最终结果为”该样本属于类别1”,因为大多数基分类器将票投给了1.
AdaBoost(Adaptive Boosting)相对于Bagging算法更为巧妙,且一般来说是效果更优的集成分类算法,尤其在数据集分布不均衡的情况下,其优势更为显著.该算法的提出先于Bagging,但在复杂度和效果上高于Bagging.
AdaBoost同样是在若干基分类器基础上的一种集成算法,但不同于Bagging对一系列预测结果的简单综合,该算法在依次构建基分类器的过程中,会根据上一个基分类器对各训练集样本的预测结果,自行调整在本次基分类器构造时,个样本被抽中的概率.具体来说,如果在上一基分类器的预测中,样本i被错误分类了,那么,在这一次基分类器的训练样本抽取过程中,样本i就会被赋予较高的权重,以使其能够以较大的可能被抽中,从而提高其被正确分类的概率.
这样一个实时调节权重的过程正是AdaBoost算法的优势所在,它通过将若干具有互补性质的基分类器集合于一体,显著提高了集成分类器的稳定性和准确性.另外,Bagging和AdaBoost的基分类器选取都是任意的,但绝大多数我们使用决策树,因为决策树可以同时处理数值/类别/次序等各类型变量,且变量的选择也较容易.



2.在R语言中的应用
集成学习算法主要运用到了adabag包中的bossting函数。
bossting(formula,data,boos=TRUE,mfinal=100,coeflearn=’Breiman’,control)
3.以iris数据集为例进行分析
1)应用模型并查看模型的相应参数
fit_bag=bagging(Species~.,data_train,mfinal=5,control=rpart.control(maxdepth=3))
fit_bag[1:length(bag)]





2)预测分析
pre_bag=predict(fit_bag,data_test)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: