第八章 集成学习

8.1 个体与集成

集成学习就是把多个学习器结合起来。一般这种结合比单一学习器泛化性能更优良。

不是说集成一定比单一的好,如果想获得好的集成,个体学习器应“好而不同”。

假设基学习器的误差独立,则可推出集成的错误随着分类器数目增大而指数级下降。(现实中不可能)

准确性和多样性是矛盾的。

集成学习分类:

序列化方法:个体学习器强依赖关系,串行生成。Boosting

并行化方法:不存在强依赖,同时生成。Bagging和“随机森林”


8.2 Boosting

Boosting族算法代表:AdaBoost。

AdaBoost算法流程:


简单解释:






AdaBoost使用指数损失函数:


其中H是集成后学习器,f是真实函数。

可以证明:指数损失函数是分类任务原本0/1损失函数的一致的替代损失函数。


注意:每轮训练都会给每个训练样本重新赋权重,这叫“重赋权法”。也可以采用重采样法。重采样法可以获得“重启动”机会以避免训练过程过早结束。


Boosting主要关注降低偏差,因此基于泛化性能很弱的学习器构建很强的集成。


8.3 Bagging与随机森林

核心是每轮训练数据尽量不一样,以满足“集成的个体学习器尽可能独立”的要求。具体做法是采用互相有交叠的采样子集。

并行集成学习代表:Bagging。采用了前面提过的自助采样法。(初始训练集中约有63.2%的样本有出现在采样集中)。

对预测输出结合是,分类任务简单投票;回归任务采用简单平均。

Bagging算法流程:



Bagging集成的训练与用基学习算法训练一个学习器的复杂度同阶。且可用于多分类、回归(AdaBoost只能二分类)

(此外,由于自助采样法还有36.8%的数据没用训练,则可以拿来当验证集,“包外估计”)


Bagging主要关注降低方差,因此在不剪枝决策树、神经网络等易受样本扰动的学习器上效用更明显。



随机森林(RF):

是Bagging一个变体(以决策树为基学习器)。核心是决策树训练过程中引入随机属性选择。回想前面决策树算法中国,选择划分属性是在当前结点的属性集合中选择最优属性,

但是在RF中,是先从该结点的属性集合中随机选择一个包含k个属性的子集,再从子集中选择最优属性。k控制了随机性引入程度。一般

。(d是属性总个数)


可以看到,RF中的随机性来自两部分:样本扰动和属性扰动。

与Bagging相比,RF起始性较差,但最终收敛更低的泛化误差。



8.4结合策略

学习器结合有三大好处:

统计方面;计算方面;表示方面

常见结合策略:

平均法:简单平均法、加权平均法;

投票法:绝对多数投票法、相对所属投票法、加权投票法

学习法:通过学习另一个学习器来结合。Stacking是典型代表。

把个体学习器叫“初级学习器”,用于结合的学习器叫“次级学习器”。

Stacking 算法流程如下:



简单解释:先从初始数据集训练处初级学习器,再生成一个新数据集来训练次级学习器。这个新的数据集这样构成:初级学习器的输出当做样例输入特征,而初始样本的标记仍当做样例标记。

注意,并不是直接用初级学习器的训练集来产生次级训练集,这样过拟合风险大。采用交叉验证或留一法,用初级学习器未使用的样本来产生次级学习器。


8.5 多样性

可以证明这个式子:


其中:表示个体学习器泛化误差的加权平均。

表示个体学习器的加权分歧值.

这个式子证明:个体学习器准确率越高,多样性越大,则集成越好。(E是集成的泛化误差)


多样性度量:

两个分类器hi和hj预测结果列联表:


常见多样性度量:

不合度量:


相关系数:


范围是[-1,1]。若二者无关,值为0,正相关为正数……


完全一致,k=1。偶然达成一致,k=0.越大多样性越低。



最后总结多样性增强方法:

数据样本扰动;

输入属性扰动;

输出表示扰动;

算法参数扰动


猜你喜欢

转载自blog.csdn.net/steph_curry/article/details/79139505