机器学习第8章(集成学习)

                                 集成学习(ensemble learning)

8.1 个体与集成

ensemble learning 通过构建结合多个学习器来完成学习任务,有时也被称为多分类器系统(multi-classifier system)、基于委员会的学习(committee-based learning)。

集成学习的一般结构:先产生一组“个体学习器”,再用某种策略将它们结合起来。

集成中只包含同种类型的个体学习器,这样的集成是“同质的(homogeneous)”。

集成中包含不同类型的个体学习器,这样的集成是“异质的(heterogenous)”。

集成学习的结果通过Voting产生,即“少数服从多数”。一般来说,要获得好的集成,个体学习器应该“好而不同”。

考虑二分类问题y\in \left \{ -1,+1 \right \}和真实函数f,假定基分类器的错误率为\epsilon,即对每个基分类器h_{i}有:

P(h_{i}(x)\neq f(x))=\epsilon                                                                                                                                                公式(1)

假设集成通过简单投票法结合T个基分类器,若有超过半数的基分类器正确,则集成分类就正确:

H(x)=sign(\sum_{i=1}^{T}h_{i}(x))                                                                                                                                           公式(2)

假设基分类器的错误率相互独立,则由Hoeffding不等式可知,集成的错误率为:

P(H(x)\neq f(x))=\sum_{k=0}^{T/2}\begin{pmatrix} T\\ K \end{pmatrix}(1-\epsilon)^{k}\epsilon^{T-k}\leq (-\frac{1}{2}T(1-2\epsilon)^{2})                                                                          公式(3)

公式(3)表明,随着集成数T的增大,集成的错误率将指数下降,最终趋于0。但该问题的前提假设在于“基学习器的误差相互独立”,但现实中不存在这种相互独立的情况。

个体学习器的准确性和多样性本身存在冲突,一般准确率很高之后,要增加多样性就需要牺牲多样性。

根据个体学习器的生成方式,目前的集成学习方法主要有两类:(1)个体学习器之间存在强依赖关系、必须串行生成的序列化方法(如Boosting);(2)个体学习器不存在强依赖关系、可同时生成的并行化方法(如Bagging & 随机森林random forest);

8.2 Boosting

Boosting是一族将弱学习器提升为强学习器的算法

算法流程为:

(1)从初始训练集训练出一个基学习器;

(2)根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注;

(3)基于调整后的样本分布来训练下一个基学习器;

(4)迭代,直到基学习器的数目达到事先指定的值T;

(5)将这T个基学习器进行加权结合;

8.3 Bagging与随机森林

Bagging是并行式集成学习方法最著名的代表,其基于自主采样法(bootstrap sampling)。

假设给定包含m个样本的数据集,先随机取出一个样本放入采样集中,再把该样本放回初始数据,使得下次采样时该样本仍有可能被选中。依次采出T个含m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合。

Bagging对分类任务采用简单投票法,对回归任务使用简单平均法。

Random Forest随机森林是Bagging的一个扩展变体。RF在以决策树为基学习器构建Bagging的基础上,进一步在决策树的训练过程中引入了随机属性选择

RF对基学习器的每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分。k控制了随机性的引入程度,一般k=log2d,(d是数据集中对象的维度)。

8.4 结合策略

对学习器进行结合的3大好处:

(1)统计的原因:由于学习任务的假设空间往往很大,可能有多个假设在训练集上达到同等性能,此时若使用单个学习器可能会因为误选而导致泛化性能不佳,结合多个学习器则会减少这一风险;

(2)计算的原因:学习算法往往会容易陷入局部极小,通过多次运行之后进行结合,可降低陷入糟糕局部极小点的风险;

(3)表示的原因:某些学习任务的真实假设可能不在当前学习算法所考虑的假设空间中,此时若使用单学习器肯定无效,而通过结合多个学习器,由于相应的假设空间有所扩大,有可能学的更好的近似。

假设集成包含T个基学习器\left \{ h_{1},h_{2},...,h_{T} \right \},h_{i}在示例x上的输出为h_{i}(x),则常见的结合策略有:

1.平均法

简单平均法:H(x)=\frac{1}{T}\sum_{i=1}^{T}h_{i}(x)

加权平均法:H(x)=\sum_{i=1}^{T}w_{i}h_{i}(x),其中w_{i}\geq 0,\sum_{i=1}^{T}w_{i}=1

在个体学习器性能相差较大时宜采用加权平均,而在个体学习器性能相近时宜采用简单平均法。

2.投票法

对分类任务而言,学习器h_{i}将从类别标记\left \{ c1,c2,...,c_{N} \right \}中预测出一个标记。将h_{i}在样本x上的预测输出表示为一个N维向量(h_{i}^{1}(x);h_{i}^{2}(x);...;h_{i}^{N}(x)),其中h_{i}^{j}(x)h_{i}在类别标记c_{j}上的输出。

绝对多数投票法:

H(x)=\begin{Bmatrix} 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 ,otherwise \end{Bmatrix}

即若某标记得票过半数,则预测为该标记,否则拒绝。

相对多数投票法:(公式太复杂,不想写了)

加权投票法

3.学习法

8.5 多样性

猜你喜欢

转载自blog.csdn.net/jinhualun911/article/details/108811731