通过构建并结合多个学习器来完成学习任务。“基学习器”(弱学习器,泛化性能高于随机猜想),目前大致分为两类:个体学习器间存在强依赖关系、必须串行生成的序列化方法;以及个体学习器之间不存在强依赖关系,可同时生成的并行化方法。前者的代表Boosting,后者的代表是Bagging和“随机森林”。
Boosting
Boosting是一族可将弱学习器提升为强学习器的算法,工作机制类似:从初始训练集训练出一个基学习器,在根据基学习器的表现对训练样本进行调整,使得分类错误的训练样本得到更多关注,然后根据调整后的样本分布训练下一个基学习器;反复如此直至达到某值T,最终将这T个基学习器进行加权结合。
Boosting族算法中最著名代表为AdaBoost。
算法流程:
1.初始化样本权值分布
2.基于分布
Dt
从数据集D中训练出分类器
ht
3.估计
ht
的误差
ϵt
4.确定分类器的
ht
的权重
5.更新样本分布
Bagging与随机森林
Bagging是并行式集成学习方法最著名的代表。基于自助采样法(有放回的采样),采样出T个含m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合。
随机森林是Bagging的一个扩展变体。随机森林在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。传统决策树在选择划分属性时是在当前节点的属性集合(假设有d个属性)中选择一个最优的属性;而在随机森林中,对于基决策树的每个节点,先从该节点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分。这里的k控制了随机性的引入程度:若k=d,则基决策树的构建与传统决策树相同;若k=1,则是随机选择一个属性用于划分;一般情况下
k=log2d
组合策略
学习器结合的好处:1.统计:使用单学习器可能因误选而导致泛化性能不佳;2.计算:学习算法往往会陷入局部最优,有的局部最优对应的泛化性能可能很差;3.表示:某些学习任务的真实假设可能不在当前学习算法所考虑的假设空间中,此时若用单学习器则肯定无效,通过结合多个学习器,相应的假设空间有所扩大,有可能学得更好的近似。
∙
简单平均法
∙
加权平均法
∙
绝对多数投票法:若某标记得票超过半数,则预测为该标记;否则拒绝预测;
∙
相对多数投票法:预测得票最多的标记,若同时有多个获得最高票,则随机选择。
∙
加权投票法
⋆
硬投票:类标记
hi∈{0,1}
,预测结果为0或1
⋆
软投票:类标记
hi∈[0,1]
,预测结果为[0,1]之间。
□ 学习法:Stacking是学习法的典型代表。用初始训练数据学习出若干个基学习器后,将这几个学习器的预测结果作为新的训练集,来学习一个新的学习器。
多样性
∙ 误差-分歧分解
其表达式为:
E=E¯¯¯–A¯¯¯
E
表示集成后模型的泛化误差.
A¯¯¯=∑Ti=1wiAi
表示个体学习器的加权分歧项,即个体学习器差异性的度量最后加权平均.
这个式子表明: 个体学习器准确性越高, 同时, 多样性越大, 则集成效果越好.
∙ 多样性度量
∙ 多样性增强
⋆
数据样本扰动
数据样本扰动通常是基于采样法, 给定初始数据集, 可从中产生不同数据子集, 再利用不同数据子集训练出不同的个体学习器(或称基学习器). 常见的基学习器, 例如决策树, 神经网络等, 训练样本稍加变化就会导致学习器有显著变动, 数据样本扰动法对这样的”不稳定学习器“很有效.
但是, 有一些基学习器, 对数据样本扰动不敏感, 例如线性学习器, 支持向量机, 朴素贝叶斯, k邻近学习器等, 这样的学习器称为”稳定学习器“.
⋆
输入属性扰动
从初始属性集中抽取若干个属性子集, 再基于每个属性子集训练一个基学习器
⋆
输出表示扰动
有时候我们也可以用如”翻转法”(Flipping Output)[Breiman, 2000]随机改变一些训练样本的标记. 也可以用如”输出调整法”(Output Smearing)[Breiman, 2000]将分类输出转化为回归输出后构建个体学习器. 总之, 是一些对输出的变换操控.
⋆
算法参数扰动
对基学习器的参数, 进行不同的配置, 也可以达到训练出多样基学习器的目的. 例如, 神经网络的隐层神经元个数, 初始连接权值等, 通过随机设置不同参数, 往往可以产生差别较大的个体学习器.
学习于:《机器学习》–周志华