主要内容
(1)Bagging和Boosting简介
(2)Bagging和Boosting联系和区别
(3)Bagging和Boosting相关算法
-------------------------------------------------------------------------------------------------------------------------
一、简述
1、简介
现如今,同质个体学习器应用比较广泛,常用树模型和神经网络。同质个体学习器按照个体学习器之间是否存在依赖关系可以分为两类:
1)是个体学习器之间不存在强依赖关系,一系列个体学习器可以并行生成,代表算法是bagging(随机森林)系列算法。
2)是个体学习器之间存在强依赖关系,一系列个体学习器基本都需要串行生成,代表算法是boosting系列算法。
集成学习之Bagging
集成学习之Boosting
集成学习之结合策略,包括平均法(回归),投票法(分类),学习法(stacking,再加一层学习器——次级学习器)
Bagging + 决策树 = 随机森林
AdaBoost + 决策树 = 提升树
Gradient Boosting + 决策树 = GBDT
若个体学习器(决策树)为其他,则会生成其他算法
2、boosting的两种框架
boosting包括(Adaboost和Gradient Boosting两种框架或者方法)
共同点:两者都是重复选择一个表现一般的模型并且每次都是基于先前的模型表现进行调整;
区别:Adaboost通过提升错分样本的权重定位模型的不足;Gradient Boosting通过梯度定位模型的不足;
二、Bagging和Boosting联系与区别
1、简介:
Bagging和Boosting都是将已有的分类或回归算法通过一定方式组合起来,形成一个性能更加强大的分类器,即将弱分类器组装成强分类器的方法。
介绍Bootstraping,即自助法:它是一种有放回的抽样方法(可能抽到重复的样本)
2、Bagging步骤:
1)Bagging即套袋法,从原始全部样本中,利用Bootstaping的方法随机抽取部分数据(有些数据可能抽取多次,有些可能一次没抽到),进行k轮抽取,形成k个子训练集(k个子训练集相互独立)
2)每一个训练集,建立一个模型(每个模型可以采用不同的方法,如决策树、感知机等等)
3)对于分类算法,采用投票的结果得到最后结果;对于回归算法,采用均值得到最后结果(每个模型的权重相同)
3、Boosting步骤(核心问题):
第一种情况(Adaboost)
为每个样本初始化权值w=1/n;开始迭代,在第t轮迭代中:
1)使用训练集训练分类器Ct,训练误差e=所有被分类错误样本的权值之和
2)计算分类器的权值为α=1/2ln((1−e)/e)
3)更新样本当前的权值wt:
若分类正确,则减少权值,wt+1=wt∗exp(−α);
若分类错误,则加大权值,wt+1=wt∗exp(α)
4) 将所有样本的权值归一化,使其相加为1
第二种情况(Gradient Boosting)
开始迭代,在第t轮迭代中:
1)使用训练集训练分类器Ct,得到每个训练样本的残差
2)利用残差继续训练,直至残差为0,训练结束
3)每棵树的结果相加,得到预测值
4、Bagging,Boosting二者之间的区别
1)样本选择上:
Bagging:训练集采用有放回方式选取,个训练样本集相互独立。
Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。
2)样例权重:
Bagging:使用均匀取样,每个样例的权重相等
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。
3)预测函数:
Bagging:所有预测函数的权重相等。
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。
4)并行计算:
Bagging:各个预测函数可以并行生成
Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。
5、小结
这两种方法都是把若干个分类器整合为一个分类器的方法,只是整合的方式不一样,最终得到不一样的效果,将不同的分类算法套入到此类算法框架中一定程度上会提高了原单一分类器的分类效果,但是也增大了计算量。
三、参数(以sklearn为例,后续)
四、Bagging相关算法(后续)
1、随机森林 RF(Random Forest)
2、Extra-Trees
五、Boosting相关算法(后续)
1、GBDT
2、提升树
3、xgboost
注:以上内容属个人理解,学艺不精,请各位大神多多指教