集成学习¶
1 个体与集成¶
1.1 基本概念¶
- 一般结构:先产生一组"个体学习器" (individual learner) ,再用某种策略将它们结合起来
- 同质:集成中只包含同种类型的个体学习器,这样的集成是"同质" (homogeneous) 的。同质集成中的个体学习器亦称"基学习器" (base learner), 相应的学习算法称为"基学习算法" (base learning algorithm).
- 异质:异质集成中的个体学习器由不同的学习算法生成,这时就不再有基学习算法;相应的,个体学习器一般不称为基学习器,常称为"组件学习器" (component learner) 或直接称为个体学习器.
- 集成学习通过将多个学习器进行结合,常可获得比单一学习器显著优越的泛化性能这对"弱学习器"尤其明显,基学习器有时也被直接称为弱学习器
- 个体学习器的要求:个体学习器要有一定的准确性(至少不弱于弱学习器),学习器之间应该具有差异。
1.2 投票法分析¶
-
考虑二分类问题和真实函数, 假设第个分类器是, 假设基分类器的错误率为, 则对于每个基分类器有
-
假设集成通过简单投票法结合个基分类器,若有超过半数的基分类器正确, 则集成分类就正确: 假设基分类器的错误率相互独立,则由不等式可知,集成的错误概率为: 这显示出,随着着集成中个体分类器数目的增大, 集成的错误率将指数级下 降,最终趋向于零。
1.3 集成学习分类¶
- 据个体学习器的生成方式,目前的集成学习方法大致可分为两大类。即个体学习器间存在强依赖关系、必须串行生成的序列化方法,以及个体学习器间不存在强依赖关系、可同时生成的并行化方法。前者的代表是,后者的代表是 和"随机森林"
2 Boosting¶
2.1 Boosting概念¶
- Boosting 是一族可将弱学习器提升为强学习器的算法。这族算法的工作机制类似:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器。直至基学习器数目达到事先指定的值, 最终将这 个基学习器进行加权结合
2.2 AdaBoost¶
-
算法流程
-
是真实函数
-
算法基于加性线性模型,即基学习器的线性组合
-
算法的目标是最小化指数损失函数
-
流程
-
初始化样本权值分布
- 基于分布从数据集中训练出分类器
- 估计的误差
- 确定的权重
-
更新样本分布, 其中是规范化因子,以确保具有归一性
-
分布和权重的推导
-
最小化指数损失函数的意义
-
为了使得最小化指数损失函数,使对求偏导
-
令上式为0
这意味达到了贝叶斯最优错误率,换言之如果指数损失函数最小化,则分类错误率也最小化。可以得出,指数损失函数是损失函数的一致性替代函数,因为这个替代函数连续可微,因此用它代替损失函数作为优化目标
-
新的分布的推导
-
算法获得之后样本分布将进行调整,使下一轮的基学习器能纠正的一些错误。理想的能纠正的全部错误,也就是最小化
-
因此
-
其中是一个常数,令表示一个分布
-
则等价于
-
由于, 等价于 由此可见,理想的基学习器将在分布下最小化分类误差。因此,弱分类器将基于训练,且针对的误差应该小于
-
根据和的关系可以的得到 可以得到的递推式
-
权重的推导
-
当基分类器基于产生后,该基分类器的权重应该使得最小化的分类误差,也就最小化指数损失函数
-
对特定的数据分布进行学习
-
重赋权法
- 即在训练过程的每一轮中,根据样本分布为每个训练样本重新赋予一个权重
- 重采样法
- 对无法接受带权样本的基学习算法,即在每一轮学习中,根据样本分布对训练集重新进行采样,再用重采样而得的样本集对基学习器进行训练
-
Boosting 算法在训练的每一轮都要检查当前生成的基学习器是否满足基本条件,一旦条件不满足,则当前基学习器即被抛弃。初始设置的学习轮数也许遥远未达到,可能导致最终集成中只包含很少的基学习器而性能不佳。若采用"重采样法",则可获得"重启动"机会以避免训练过程过早停止,,从而使得学习过程可以持续到预设的轮完成
-
从偏差/方差的角度看,的复杂度主要用来降低偏差。
3 Bagging与随即森林¶
3.1 Bagging¶
-
直接基于自助采样法,给定包含个样本的数据集,我们先随机取出一个样本放入采样集中,再把该样本放回初始数据集,使得下次采样时该样本仍有可能被选中,这样,经过次随机采样操作,我们得到含个样本的采样集,初始训练集中有的样本在采样集多次出现,有的则从未出现。初始训练集中约有的样本出现在采样集中。
-
流程:采样出个含个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合。对预测输出进行结合时, Bagging 通常对分类任务使用简单投票法,对回归任务使用简单平均法。若分类预测时出现两个类收到同样票数的情形,则最简单的做法是随机选择一个,也可进一步考察学习器投票的置信度来确定最终胜者。
-
复杂度:假定基学习器的计算复杂度为,的复杂度大致为 ,考虑到采样与投票/平均过程的复杂度根小,而通常是一个不太大的常数。训练一个集成与直在使用基学习算法复杂度同阶。
-
包外估计:自助采样过程还给带来了另一个优点:由于每个基学习器只使用了初始训练集中约的样本,剩下约的样本可用作验证集来对泛化性能进行"包外估计"。为此需记录每个基学习器所使用的训练样本。令表示实际使用的训练样本集,令 表示对样本的包外预测,即仅考虑那些未使用训练的基学习器在上的预测,有 则的泛化误差的包外估计为
-
包外样本还有许多其他用途
- 当基学习器是决策树时,可使用包外样本来辅助剪枝或用于估计决策树中各结点的后验概率以辅助对零训练样本结点的处理
-
当基学习器是神经网络时可使用包外样本来辅助早期停止以减小过拟合风险
-
从偏差/方差的角度看,的复杂度主要用来降低方差。因此他在不剪枝决策树、神经网络等易受样本扰动的学习器上效用更为明显
3.2 随机森林¶
- 随机森林是的一种变体,在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中进入了随机属性的选择。对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含个属性的子集,然后从这个子集中选择的一个最有属性用于划分。一般情况推荐
- 随机森林对只做了小改动,与基学习器的"多样性"仅通过样本扰动不同,随机森林的基学习器的多样性还来自属性扰动。这就使得最终的泛化性能可通过个体学习器之间差异度的增加而进一步提升
4 结合策略¶
4.1 学习器结合好处¶
-
首先从统计的方面来看,由于学习任务的假设空间往往很大,可能有多个假设在训 练集上达到同等性能。此时若使用单学习器可能因误选致泛化性能不佳,结合多个学习器减小风险
-
从计算的方面来看,学习算法往往会陷入局部极小点,泛化性能可能很糟糕。通过多次运行结合之后降低陷入糟糕局部极小点的风险
-
从表示的方面来看,某些任务务的真实假设不在当前学习算法所考虑的假设空间 ,此时若使用单学习器无效,而通过结合多个学习器假设空有所扩大,有可能学到更好的近似
4.2 常见策略¶
假定集成包含个基学习器,其中在示例的输出为
-
平均法
-
对数值型输最, 最常见的结合策略
-
简单平均法
-
加权平均法 加权平均法可认为是集成学习研究的基本出发点,对给定的基学习器,不同的集成学习方法可视为通过不同的方式来确定加权平均法中的基学习器权重
-
投票法
-
对分类任务来说,学习器将从类别标记集合 中预测出一 个标记,最常见的结合策略是使用投票法。将在样本上的预测输出表示为一个维的向量, 其中是在标记类别上的输出
-
绝对多数投票法
-
即若某标记得票过半数,则预测为该标记。否则拒绝预测。 $$ H(x) = \left{ \begin{matrix} c_j, & if \ \sum_{i=1}^T h_i^j(x) > 0.5\sum_{k=1}^N \sum_{i=1}^T h_i^k(x)\ reject, & otherwose
\end{matrix} \right. $$
-
相对多数投票法
-
加权投票法
-
类概率与类标记
-
用类标记的投票亦称"硬投票", 预测类别为1,其他为0
-
使用类概率的投票亦称"软投票", 相当于对的一个估计
-
不同类型的时值不能混用。对一些能在预测出类别标记的同时产生 分类置信度的学习器,其分类置信度可转化为类概率使用
- Platt缩放
- 等分回归
-
虽然分类器估计出的类概率值一般都不太准确。但基于类概率进行结合却往往比直接基于类标记进行结合性能更好
-
需注意若基学习器的类型不同则其类概率值不能直接进行比较,在此种情形下,通常可将类概率输出转化为类标记输出然后投票
-
学习法
-
当训练数据很多时,一种更为强大的结合策略是使用"学习法",通过另一个学习器来进行结合
- 把个体学习器称为初级学习器,用于结合的学习器称为次级学习器或元学习器
- 是学习法的典型代表
- 先从初始数据集训练出初级学习器,然后"生成"一个新数据集用于训练次级学习器。在这个新数据集中,初级学习器的输出被当作样例输入特征,而初始样本的标记仍被当作样例标记
- 为了避免过拟合,使用交叉验证方法,使用对于的划分,对于, 使用第个算法在训练,使用的每个样本来生成。 个学习器生成, 最后得到的次级训练集为
5 多样性¶
5.1 误差-分歧分解¶
-
欲构建泛化能力强的集成,个体学习器应"好而不同"
-
假定我们用个体学习器通过加权平均法结合产生的集成来完成回归学习任务, 对示例,定义学习器的"分歧"为 则集成分歧为 这里的"分歧"项表征了个体学习器在样本上的不一致性,即在一定程度上反映了个体学习器的多样性。个体学习器和集成的平方误差为 令表示个题学习器误差的加权平均,则有 $$ \overline A(h|x) = \sum_{i=1}^T w_i(h_i(x) - H(x))^2 \ = \sum_{i=1}^T w_i(h_i(x)^2 - 2h_i(x)H(x)+H(x)^2) \ =\sum_{i=1}^T w_ih_i(x)^2 - 2\sum_{i=1}^Th_i(x)H(x)+H(x)^2 \ = \sum_{i=1}^T w_ih_i(x)^2 - H(x)^2
\ \overline E(h|x) - E(H|x) \ = \sum_{i=1}^T w_iE(h_i|x) - E(H|x) \ = \sum_{i=1}^T w_i(f(x) - h_i(x))^2-(f(x) - H(x))^2 \ = \sum_{i=1}^Tw_if(x)^2-2\sum_{i=1}^Th_i(x)f(x) + \sum_{i=1}^Tw_ih_i(x)^2 \ - f(x)^2 + 2H(x)f(x)-H(x)^2 \ = \sum_{i=1}^T w_ih_i(x)^2 - H(x)^2\ \overline A(h|x) = \overline E(h|x) - E(H|x) $$ 上式对所有样本都成立,令表示样本的概率密度,则在全样本有 个体学习器在全样本的泛化误差和分歧项为 集体的泛化误差为 使得 这表明,个体学习器准确性越高、多样性越大,则集成越好。上述推理过程仅仅适用于回归学习,难以推广到分类学习。
5.2 多样性度量¶
-
多样性度量(diversity measure) 是用于度量集成中个体分类器的多样性,即估算个体学习器的多样化程度
-
给定数据集, 对于二分类任务, 分类器的结果列联表为
其中表示均预测为正类的样本数目, 且
-
不合度量 值越大多样性越大
-
相关系数 值域为, 若与无关,则为0;正相关为正,否则为负
-
统计量 与符号相同,且
-
统计量 若在上完全一致,则;若仅仅是偶然一致,则;通常非负,处分达成一致的概率甚至低于偶然
-
误差图
5.3 多样性增强¶
- 一般思路是在学习过程中引入随机性 ,常见做法主要对数据样本、 输入属性、输出表示、算法参进行扰动
-
扰动
-
数据样本扰动
- 给定初始数据集可从中产生出不同的数据子集 再利用不同的数据子集训练出不同的个体学习器
- 输入属性扰动
- 训练样本通常由一组属性描述,不同的"子空间"提供了观察数据的不同视角。
- 随机子空间算法
- 输出表示扰动
- 此类做法的基本思路是对输出表示进行操纵以增强多样性.可对训练样本 的类标记稍作变动。比如随机改变一些训练样本的标记
- 算法参数扰动
- 通过随机设置不同的参数往往可产生差别较大的个体学习器.