一、集成学习
1.基础概念
\qquad
集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务,也被称为多分类器系统、基于委员会的学习等。
\qquad
集成学习的一般结构是:先产生一组“个体学习器”,再用某种策略将它们结合起来。
同质集成,和异质集成 同质集成:所有的个体学习器都采用同种学习算法,例如C4.5决策树算法 异质集成:个体学习器采用不同的学习算法,例如个体学习器中同时包含决策树和神经网络等。
\qquad
集成学习通过将多个学习器进行结合,常可以获得比单一学习器显著优越的泛化性能。这对“弱学习器”尤为明显,因此集成学习的很多理论研究都是针对弱学习器进行的,而基学习器有时也被直接称为弱学习器。
2.结合策略
\qquad
集成学习是由多个个体学习器组成的,那怎样处理各个个体学习的输出,从而产生一个最终的输出呢?
通常采用的方法有三类: (1)平均法 (2)投票法 (3)学习法
(1)平均法:
\qquad
针对的是数值型的输出,常采用此方法。 平均法有两种:
\qquad
简单平均法
\qquad
加权平均法 (2)投票法
\qquad
对于分类任务中,常采用的结合策略是投票法 投票法有三种:
\qquad
绝对多数投票法
\qquad
相对多数投票法
\qquad
加权投票法 (3)学习法
\qquad
当训练数据很多时,一种更为强大的结合策略是使用“学习法”,即通过另一个学习器来进行结合。其中,我们将个体学习器称为初级学习器,用于结合的学习器称为次级学习器或元学习器。
\qquad
Stacking是学习法的典型代表。
\qquad
Stacking先从初始数据集训练出初级学习器,然后“生成”一个新的数据集用于训练次级学习器。在这个新数据集中,初级学习器的输出被当做样例输入特征,而初始样本的标记仍被当作样例标记。
3.集成学习分类
\qquad
目前集成学习方法大致分为两大类:
\qquad
第一类:个体学习器间存在强依赖关系,必须串行生成的序列化方法。代表是:Boosting(提升方法)
\qquad
第二类:个体学习器间不存在强依赖关系、可同时生成的并行化方法。代表是:Bagging和随机森林(Random Forest)
二、Boosting系列
1.工作原理
\qquad
Boosting系列算法的工作机制:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续收到更多的关注度(即更有可能被抽样到),然后基于调整后的样本分布来训练下一个基学习器;如此重复进行,直至基学习器数目达到事先指定的值
T
T
T,最终将这
T
T
T个基学习器进行加权结合。
2.代表算法
(1)AdaBoost(Adaptive Boosting,自适应Boosting)
\qquad
具体实施过程:
1.刚开始每个样本的采样概率都是一样的,若有
N
N
N个样本,则每个样本的权值为:
1
/
N
1/N
1/N; 2.训练弱分类器。在训练的过程中,如果某个样本点已经被准确的分类,那么在构造下一个训练集中,它的权值就降低;相反,要是分类错误,那么它的权值就增加,增加下次采样的概率。然后,对权值更新过的数据集进行采样,形成新的训练集,进行下一次的训练。 3.如此迭代进行下去.
用于分类问题 损失函数是指数函数
(2)GBDT(Gradient Boosting Decision Tree,梯度提升决策树,简称梯度提升树)
\qquad
它是一个在Boosting算法在损失函数上的泛化。能够用于分类和回归问题。
\qquad
梯度提升树的基本思想是拟合负梯度。
\qquad
梯度提升的典型基函数是决策树(CART)
\qquad
损失函数使用:平方误差
三、Bagging系列
Bagging是并行式集成学习方法最著名的代表
1.工作原理
\qquad
Bagging算法,采用自助采样法,给定包含m个样本的数据集,我们先随机取出一个样本放入采样集中,再把该样本放回初始数据集,使得下次采样时该样本仍可能被选中,这样,经过m次随机采样操作,我们得到含m个样本的采样集。如此反复,我们可以采样出T个含有m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合。以上就是Bagging的基本流程。
Bagging算法针对分类任务,采用简单投票法 针对回归任务,采用简单平均法
四、随机森林
\qquad
随机森林(Random Forest,简称RF)是Bagging的一个扩展变体。RF在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。
\qquad
具体来说,传统决策树在选择划分属性时是在当前节点的额属性集合(假设有d个属性)中选择一个最优属性;而在RF中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分。
|