什么是Bagging?
1.基本思想:
自助采样法,给定包含m个样本的数据集,随即取出一个样本放入采样集,再把该样本放回初始数据集,这样经过m次随机采样操作,可以得到含m个样本的采样集。照这样,可以采样出T个含m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合。结合时对多分类任务使用简单投票法,对回归任务使用简单平均法。(随机有放回)
2.优点:
a.训练一个Bagging集成与直接使用基学习器的复杂度同阶,高效;
b.标准的AdaBoost只适用于二分类,Bagging能直接用于多分类、回归等任务;
c.因为自主采样,没有被采用到的样本可以用作验证集
3.特点:
关注降低方差,在易受样本扰动的学习器上效用更为明显。
4.随机森林
基本思想:RF在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。(是每一个结点都随机选取特征)
特点:两个随机过程避免了过拟合现象的出现(1.数据Bagging,2.特征随机选择)
过程:
a.Bagging
b.随机选择特征
c.构造决策树,采用最小基尼系数
d.重复b,c,得到随即森林
e.多数投票进行决策
注意点:不需要剪枝,构建决策树时分裂点的选择是依据最小基尼系数的(样本被选中的概率*样本被分错的概率)
优点:
1.两个随机性使得随机森林不容易陷入过拟合还具有很好的抗噪声能力
2.容易做成并行化方法
3.实现简单
4.能够处理高纬度的数据,并且不需要做特征选择
缺点:对噪声敏感
什么是Boosting?
1.基本思想:
先从初始训练集上训练一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器,如此反复进行,直至基学习器数目达到实现指定的值T,最终这T个基学习器进行加权结合。
2.AdaBoost
a.初始化训练数据的分布,训练数据的权重设置为平均分配;
b.选择合适的基本分类器;
c.计算分类器的系数和更新数据权重;
d.构建基本分类器的线性组合
特点:
关注降低偏差,能基于泛化性能相当弱的学习器构建出很强的集成。
GBDT(gradient boosting decision tree)
基本思想:
每次学习一点。先用一个初值来学习一颗决策树,叶子处可以得到预测的值,以及预测之后的残差,然后后面的决策树就是要基于前面决策树的残差来学习,直到预测值和真实值的残差为0.最后对于测试样本的预测值,就是前面许多棵决策树预测值的累加。
分枝策略:最小化均方差
Shrinkage(缩减):
仍以残差作为学习目标,但对于残差学习出来的结果,只累加一小部分(step*残差)逐步逼近目标。
原因:
每次走一小步逐渐逼近结果的效果要比每次迈一大步很快逼近结果的方式更容易避免过拟合。
本质:
为每棵树设置一个weight,累加时要成一这个weight。
GBDT和随机森林对比
相同点:
1.都是由多棵树组成;
2.最终的结果都是由多棵树一起决定;
不同点:
1.随机森林的子树可以是分类或回归树,而GBDT只能是回归树;
2.随机森林可以并行生成,而GBDT只能是串行;
3.输出结果,随机森林采用多数投票,GBDT将所有结果累加起来;
4.随机森林对异常值不敏感,GBDT敏感;
5.随机森林减小方差,GBDT减小残差;
6.随机森林对数据集一视同仁,GBDT是基于权值的弱分类器的集成。
补充
"弱"分类器的性能比随机猜测要略好,但是也不会好太多