集成学习
团结就是力量。
集成学习可以将多个学习器进行结合,达到更好的泛化性能。
多个学习器可以为同一类学习器,比如都是决策树。也可以包含不同类型的个体学习器,比如同时包含决策树和神经网络。
分类
一类是:个体学习器间存在强依赖关系、必须串行生成的序列化方法,代表:Boosting
另一类:个体学习器间不存在强依赖关系,可以同时生成的并行化方法,代表:Bagging,Random Forest
Bagging
bagging:boostrap aggregating。boostrap是一种有放回的抽样方法,简单随机抽样。
基本过程是,对训练样本进行boostrap采样,得到T个含有m个训练样本的采样集,然后对每个采样集训练出一个学习器,再对学习器进行结合。
和决策树很像,Bagging通常对分类任务做简单投票法,对回归任务使用简单平均法。
Random Forest
随机森林RF是Bagging的一个扩展变体。以决策树为基学习器构建Bagging的基础上,在决策树的训练过程中引入了随机属性的选择。
因为如果每个树模型结果相同,那集成没有意义,所以为了森林的多样性,随机是必要的。
随机有两层含义:
- 数据采样的随机,比如,第一树数放回的随机抽80%,第二棵树有放回的随机抽80%。这也是Bagging的特点。
- 属性的随机,在传统决策树的划分属性时,是选择当前结点的最优属性。而在RF中,先从该节点的属性集合中随机选择一个包含k个属性的子集,然后在从这个子集中选一个最优属性用于划分。举个栗子,第一棵树选择60%的特征来建模,第二棵树选择60%特征建模。这里的k值,是随机性的引入程度,如果k和总属性个数相同和传统决策树相同。k=1则是随机选择一个属性用于划分。(这和梯度下降,小批量梯度下降,随机梯度下降可以类比一下)通常,
k = l o g 2 d k = log_2d k=log2d
随机森岭性能强大,它继承了Bagging的通过样本扰动的特点,同时加入了属性扰动,使得最终集成的泛化性能通过个体学习器之间差异度的增加而进一步提升。
总结下RF的优点:
- 并行,快苏得到个体学习器
- 性能强大
- 方便展示树模型
- 半自动特征选择,优先选用最好的特征,可以对特征重要性进行评估
Boosting
Boosting的思想是,串行的加入学习器,让之前学习器做错的训练样本在后续受到更多关注。最后对所有学习器加权结合
Adaboost
加性模型,获得假设函数:
然后最小化指数损失函数。。。。
Adaboost训练每一个基础树模型时,需要调整数据集中每个样本的权重分布。