Bagging
Bagging(Bootstrap aggregating,引导聚集算法或自举汇聚法),又称装袋算法,最初由Leo Breiman于1996年提出。它是通过结合几个模型降低泛化误差的技术。
,也称为bagging方法。Bagging对训练数据采用自举采样(boostrap sampling),即有放回地采样数据,主要思想:
主要思想是分别训练几个不同的模型,然后让所有模型表决测试样例的输出。这是机器学习中常规策略的一个例子,被称为模型平均(modelaveraging)。采用这种策略的技术被称为集成方法。
训练步骤如下:
最终模型有对个分类器模型投票得出,投票公式如下:
然后使用最终模型对新数据进行预测
Bagging效果
俗话说的好,“三个臭皮匠顶个诸葛亮”,通过较为容易的生成多个弱分类器,来组合出更优模型,比如从一个训练样本中有放回的抽样生成三个样本,训练出三个60%的模型,叠加成投票模型。现在假如我们有一条新数据,三个模型预测正确与否的可能情况有以上8种,投票采用少数服从多数,也就是说有两个模型预测正确就认为投票模型预测正确。每一种情况的概率可以计算得出,投票模型的预测成功的概率提升至64.8%。
根据上面的计算,可得:
但是这并不意味着,弱分类器模型个数越多,准确率就越好,实际上这是理想状态下,我们之前的假设是模型与模型之间是独立的,事实上是不可能独立的,第一,选择的模型算法一样,第二,训练的数据集也不是完全独立的,现实情况下,不可能达到这种提升率的。
与Boosting的区别
- 样本选择上:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
- 样例权重:使用均匀取样,每个样例的权重相等。
- 预测函数:所有预测函数的权重相等。
- 并行计算:各个预测函数可以并行生成。
将不同的分类算法套入到此类算法框架中一定程度上会提高了原单一分类器的分类效果,但是也增大了计算量。
下面是将决策树与这些算法框架进行结合所得到的新的算法:
- Bagging + 决策树 = 随机森林
- AdaBoost + 决策树 = 提升树
- Gradient Boosting + 决策树 = GBDT
本文关注对象随机森林
随机森林:RandomForest
随机森林是由许多决策树所组成的,其中树的生成采用了随机的方法,是Smart Bagging集成算法,它相比传统的Bagging,它不仅在行的方向上随机抽取样本(记录),同时在记录的列上进行随机的抽取。
生成的步骤:
- 随机采样,生成多个样本集
- 对每个样本集构建决策树
具有以下的优点:
- 可以处理多分类的问题
- 很大程度上减少了过拟合
- 容易实现并行
- 对数据的容错能你强
构建随机森林的流程图
其中每组决策树可以选择不同的算法来生成(ID3,C4.5,CART)。