要求:要会推导
bagging方法:看周志华教授的西瓜书
==============================集成学习===================================
一、解决什么问题?
二、集成学习的框架/流程
1、集成学习的思想
利用一定的手段学习出多个分类器,而且这多个分类器要求是弱分类器,然后将多个分类器进行组合,根据每个分类器的组合,得到最终的结果。关键点在于如何训练多个弱分类器以及如何将这些弱分类器进行组合,个体分类器应该“好而不同”。
2、集成学习的流程
三、集成学习的创新点
四、需要要展开的地方?
1、集成学习的方法有哪些?
boosting 、bagging、
2、弱分类器如何选择?
一般采用弱分类器的原因在于将误差进行均衡,因为一旦某个分类器太强了就会造成后面的结果受其影响太大,严重的会导致后面的分类器无法进行分类,,常用的弱分类器可以采用误差小于0.5的,比如逻辑斯蒂回归,SVM,神经网络等。
3、如何生成个体学习器:
(1)个体学习器间存在强依赖关系,必须串行生成的序列化方法,例如基于Booosting;
(2)个体学习器间不存在强依赖关系,可同时生成的并行化方法,例如基于Bagging和随机森林。
4、组合策略
为什么要结合学习器:(1)统计方面,由于假设空间往往很大,可能有多个假设在训练集上达到同等性能。此时若使用单学习器可能因误选导致泛化性能不佳;(2)计算方面,单个学习算法容易陷入局部极小;(3)表示方面,某些学习任务的真实假设可能不在当前学习算法的假设空间,此时使用多个学习器扩大假设空间。
5、组合时常使用的算法
(1)平均法(加权(个体学习器性能相差较大),简单(性能相近)),
(2)投票法(绝对多数(超过半数标记。否则拒绝预测),相对多数,加权投票),
(3)学习法(通过另一个学习器来进行结合,Stacking算法)
==================================Boosting 算法==============================
一、解决什么问题?
二、解决问题的流程是什么?
(1)思想:先从初始训练集上训练一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器,如此反复进行,直至基学习器数目达到实现指定的值T,最终将这T个基学习器进行加权结合。
(2)流程:
三、需要展开讲的部分有哪些?
四、算法的创新点
五、算法的优点
六、算法的不足
七、其他的知识点
===============================Adaboost算法============================
一、解决什么问题?
二、解决的框架/流程
(1)基本思想:通过训练数据的分布构造一个分类器,然后通过误差率求出这个弱分类器的权重,通过更新训练数据的分布,迭代进行,直到达到迭代次数或者损失函数小于某一阈值。
(2)算法流程:
a.初始化训练数据的分布,训练数据的权重设置为平均分配;
b.选择合适的基本分类器;
c.计算分类器的系数和更新数据权重
其中
d.构建基本分类器的线性组合
三、解决的创新点
四、需要展开的部分
五、优点
1、 关注降低偏差,能基于泛化性能相当弱的学习器构建出很强的集成。
六、缺点
七、其他的技术细节
=================================Bagging算法======================
一、解决什么问题?
二、解决的框架/流程
1、基本的思想
自助采样法,给定包含m个样本的数据集,随机取出一个样本放入采样集中,再把该样本放回初始数据集,这样经过m次随机采样操作,可以得到含m个样本的采样集。照这样,可以采样出T个含m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合。结合时对多分类任务使用简单投票法,对回归任务使用简单平均法。
2、
三、解决方法的创新点
关注降低方差,在易受样本扰动的学习器上效用更为明显。
四、需要展开的部分
五、优点:
六、缺点:
七、其他的技术细节
Stacking算法:
基本思想:先从初始数据集训练出初级学习器,然后生成一个新数据集用于训练次级学习器。在这个新数据集中,初级学习器的输出被当作样例输入特征,而出事样本的标记仍被当作样例标记。
注意点:若直接用初级学习器的训练集来产生次级训练集,则过拟合风险会比较大;一般会通过交叉验证等方式,用训练初级学习器未使用的样本来产生次级学习器的训练样本。
如何增强集成学习的多样性?
(1) 数据样本扰动(基于采样法,给定初始数据集,可以产生不同的数据子集,例如Bagging的自助采样,AdaBoost的序列采样),适合不稳定的基学习器(决策树,神经网络等)。
(2) 输入属性扰动(不同的属性子集提供了观察数据的不同视角),适合于冗余属性多的数据集。
(3) 输出表示扰动(对训练样本的类标记稍作变动或者对输出表示进行转化)
(4) 算法参数扰动(修改基学习器的参数,如神经网络层数等等)。
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是基于权值的弱分类器的集成。
GBDT和随机森林哪个容易过拟合?
随机森林,因为随机森林的决策树尝试拟合数据集,有潜在的过拟合风险,而boostingd的GBDT的决策树则是拟合数据集的残差,然后更新残差,由新的决策树再去拟合新的残差,虽然慢,但是难以过拟合。