1. 之前说了**个体学习器之间不存在强依赖关系,可同时生成的并行化方法**:BaggingRandomForest,这次来说第二种集成方式,即**个体学习器间存在强依赖关系、必须串行生成的序列化方法**:Boosting。<br />** Boosting是一族可以将弱分类器提升为强学习器的算法**(很重要的概念)。它的大致工作机制为:<br />(1)先从初始训练集训练出一个初始的基学习器(**之前有说过基学习器的概念,即所有的个体学习器都是一种机器学习算法时,这些算法被称为基学习器,很重要的概念**);<br />(2)根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练集在后续得到更多的关注;<br />(3)基于调整后的样本分布来训练下一个基学习器,重复以上步骤,直到基学习器达到预定数量,然后将这些基学习器加权结合。<br /> Boosting族算法最著名的是AdaBoost,接下来我们大致来说一下Adaboost.

Adaboost略讲

    对于喜欢公式推导的,可以参照西瓜书174-177页Adaboost的推导,这里我只大致说一下Adaboost训练的过程。<br />首先对于训练集![](https://cdn.nlark.com/yuque/__latex/4c2441090111ef66e4ec37b4de43ef91.svg#card=math&code=D%3D%5C%7B%28x_1%2Cy_1%29%2C%28x_2%2Cy_2%29%2C...%2C%28x_m%2Cy_m%29%5C%7D&id=WUILO),拿一个基学习算法![](https://cdn.nlark.com/yuque/__latex/d20caec3b48a1eef164cb4ca81ba2587.svg#card=math&code=L&id=ip31T),以及训练轮数![](https://cdn.nlark.com/yuque/__latex/b9ece18c950afbfa6b0fdbfa4ff731d3.svg#card=math&code=T&id=rbiio),我们做以下步骤:<br />(1)初始化一个样本权重,为![](https://cdn.nlark.com/yuque/__latex/66e395e2c81b71fbbe0aa725fd4e8c82.svg#card=math&code=1%2Fm&id=yrOFg),![](https://cdn.nlark.com/yuque/__latex/6f8f57715090da2632453988d9a1501b.svg#card=math&code=m&id=cOQKs)其实就是样本的个数嘛。<br />(2)在初始样本权重分布下训练基学习算法![](https://cdn.nlark.com/yuque/__latex/d20caec3b48a1eef164cb4ca81ba2587.svg#card=math&code=L&id=ApVBi),得到分类器![](https://cdn.nlark.com/yuque/__latex/6c4ff69dbcc329835a33b80fe3a145c7.svg#card=math&code=h_t&id=yNe82);<br />(3)在此分类器上计算分类误差,要求分类误差![](https://cdn.nlark.com/yuque/__latex/e0dc0d9d916f6143c47199c93c21fc9f.svg#card=math&code=%0A%5Cepsilon_t&id=xGxje)小于0.5,**若大于0.5,则算法终止**;<br />(4)通过误差计算分类器权重![](https://cdn.nlark.com/yuque/__latex/a4a9a60e4decf60a78fefb6557815847.svg#card=math&code=%5Calpha_t%3D%5Cfrac%7B1-%5Cepsilon_t%7D%7B%5Cepsilon_t%7D&id=gzTyy),并根据分类情况调整数据集分布,给判错的样本以更大的权值。<br />(5)重复以上过程,对T个基学习器按照对应的权值![](https://cdn.nlark.com/yuque/__latex/7b7f9dbfea05c83784f8b85149852f08.svg#card=math&code=%5Calpha&id=QEPe7)加权结合:![](https://cdn.nlark.com/yuque/__latex/bc5582e638f5936a1974307163f7422b.svg#card=math&code=H%28x%29%3Dsign%28%5Csum_%7Bt%3D1%7D%5ET%5Calpha_th_t%28x%29%29&id=GX5fM)。(二分类自然用sign(·))<br />        这里值得注意的是,在算法第四步过程中,如果分类误差大于0.5,则训练出的分类器比随机猜测差,需要立即终止算法,然后执行最后一步加权结合得到最终集成算法。但这有可能使得最终集成的时候基学习器较少导致性能不佳。此时可以采用重采样的方法,即每一轮按照样本权重分布采样样本对基学习器进行训练,直到训练出一个误差小于0.5的基学习器,再进入下一轮,持续到训练轮次达到T为止。

生活感悟

Boosting是将弱学习器提升为强学习器的方法,它始终只训练同一个学习器,也就是基学习器,每一轮训练基学习器的时候都去更加关注之前判断错误的样本。这何尝不和我们人一样,我们一开始对某件事也不是很会做,也会不断犯错,如果我们能够一点点总结所犯的错误,不断进行修正,总会把这件事情做好,那么我们就是在不断的Boosting.