集成学习通过构建并结合多个学习器来提升性能



在一定条件下,随着集成分类器数目的增加,集成的错误率将指数级下降,最终趋向于0。
分类
-
个体学习器间存在强依赖关系、必须串行生成的序列化方法:Boosting
-
个体学习器间不存在强依赖关系、可同时生成的并行化方法:Bagging, Random Forest
一、Boosting
个体学习器存在强依赖关系、串行生成、每次调整训练数据的样本分布
(1) 给定初始训练数据,由此训练出第一个基学习器,并确定其权重;
(2) 对样本分布进行调整,在之前学习器做错的样本上投入更多关注;
(3)用调整后的样本,训练下一个基学习器,确定其权重;
(4)重复上述过程 T 次,将 T 个学习器加权结合。
1.AdaBoost算法流程

2.AdaBoost推导

指数损失函数


指数损失函数最小化,则分类错误率也将最小化,说明指数损失函数是0/1损失函数的一致的替代函数。
分类器的权重


样本权重调整



理想的ht将在分布Dt下最小化分类误差,因此,弱分类器应该基于分布Dt来训练。

3.AdaBoost优缺点
优点:
(1)不容易发生过拟合;
(2)由于AdaBoost并没有限制弱学习器的种类,所以可以使用不同的学习算法来
构建弱分类器;
(3)相对于bagging算法和Random Forest算法,AdaBoost充分考虑的每个分
类器的权重;
(4)AdaBoost的参数少,实际应用中不需要调节太多的参数。
缺点:
(1)AdaBoost迭代次数(弱分类器数目)不好设定,可以使用交叉验证来确定;
(2)对异常样本敏感,异常样本在迭代中可能会获得较高的权重,影响最终的强学习器的预测准确性;
(3)原始的AdaBoost算法不适于处理多分类或回归任务;
(4)训练比较耗时。
二、Bagging
基本思想:
采样出 T 个含 m 个训练样本的采样集,基于每个采样集训练出一个基学习器(并行构建T个分类器、并行训练),最终将所有分类器的结果进行综合(平均或投票),达到最终的预测结果。
1.自助采样法

2. bagging算法特点
(1)时间复杂度低
假定基学习器的计算复杂度为O(m),采样与投票/平均过程的复杂度为O(s),则bagging的复杂度大致为T(O(m)+O(s))。由于O(s)很小且T是一个不大的常数, 因此训练一个bagging集成与直接使用基学习器的复杂度同阶
(2)直接适用于多分类、回归等任务
(3)可使用包外估计
由于基学习器只使用了初始训练集中约63.2%的样本,剩下的约36.8%的样本可用作验证集来对泛化性能进行“包外估计”(out-of-bag estimate)。
3.包外估计



上式表示估计错误的个数除以总的个数,得到泛化误差的保外估计
三、随机森林

四、结合策略
1.平均法


-
加权平均法未必一定优于简单平均法
训练样本不充分或含有噪声,导致学出的权重不完全可靠
-
一般而言,个体学习器性能相差较大->加权平均;性能相近->简单平均法
2.投票法

当一个类别j的基分类器的结果之和大于所有结果之和的1/2时,选择该类别j为最终结果。

若类别j的及分类器的结果之和在所有类别中最大,则选类别j为最终结果

3.学习法
初级学习器+次级学习器/元学习器
五、多样性
集成的泛化误差:

-
常见的增强个体学习器的多样性的方法
(1)数据样本扰动
(2)输入属性扰动
(3)输出表示扰动
(4)算法参数扰动
