随机森林_RF_算法梳理

标题集成学习(ensemble learning):通过构建并结合多个学习期来完成学习任务。

集成学习的一般结构:产生一组“个体学习器”,在使用某种策略将它们结合起来。个体学习器通常都是由一个现有的学习算法从训练数据中产生。这些个体学习器一般都称为弱学习器。
各个弱分类器之间如果存在强依赖关系,必须串行生成的序列化方法,代表是boosting;各个弱分类器之间不存在强依赖关系,可同时生成的并行化方法,代表是bagging和随机森林(RF)。
Boosting:
Schapire证明强可学习等价于弱可学习。即在PAC(概率近似正确)学习的框架下,强可学习和弱可学习是互为充分必要条件的。弱可学习算法通常比强可学习算法容易,那么具体如何实施提升,就成为开发提升方法时所要解决的问题。最具有代表性的提升算法就是Adaboost算法。
提升算法就是从弱学习算法出发,反复学习,得到一系列的弱分类器,然后将这些弱分类器进行组合,构成一个强分类器。大多数的提升方法都是改变训练数据的概率分布(训练样本的权值),针对不同的训练数据分布,调用弱学习算法学习一系列弱分类器。
提升算法有两个问题需要解决:1)在每一轮中,如何改变训练数据的权值或概率分布。2)如何将这些弱分类器组合成一个强分类器。
对于第一个问题:Adaboost采用的策略是提高前一轮弱分类器错误分类的样本的权值,降低那些被正确分类的样本的权值。这样就可以使那些没有正确分类的数据得到下一轮弱分类器的重视。
对于第二个问题:Adaboost采用加权多数表决的策略,具体就是加大误差率小的弱分类器的权值,使其在最后表决中起到较大的作用,减小误差率大的弱分类器的权值,使其在最后表决中的作用小一点。
Adaboost算法:
step1:假设训练数据集具有均匀的权值分布,即每个训练样本在基本分类器的学习中作用相同,这一假设保证第一步能够在原始数据集上学习一个基本分类器G1
step2:设定循环次数m,取值从1到M,Adaboost反复学习基本分类器,在每一轮学习中顺序执行以下学习过程:
a.使用当前的分布Dm加权的训练数据集,学习基本分类器Gm
b.计算基本分类器Gm在加权训练集上的分类误差率e
c.根据e来计算当前弱分类器在最终组合成强分类器是的权重a
d.更新训练数据的权值分布,为下一轮训练弱分类器做准备
step3:将所有的弱分类器根据自己对应的权重a,组合成强分类器,Adaboost采用简单的加和的方式
Bagging:
要得到泛化能力强的集成,集成中的个体学习器应该尽可能相互独立。给定一个训练集,对训练集中的样本进行采样,产生多个不同的训练子集,再从每个训练子集中训练出一个基学习器。由于训练集不同,我们的个体学习器可能会具有较大的差别,但是为了获得好的集成,每个个体学习器的效果又不能太差。如果采样出的每个训练子集都完全不同,个体学习器只学习到了一小部分训练数据,那么就无法产生比较好的基学习器。所以,我们需要对训练子集做处理,使得每个训练子集都相互有重叠。
Bagging采用有放回的采样方法,通过m次采样,一个训练子集中就有了m个样本,我们可以进行T轮采样,得到T个训练子集。再结合上面所说的要求:每个基学习器都要尽可能不同,并且表现效果又不能太差。最后将基学习器进行结合,这就是Bagging的基本的流程。
RF:
使用决策树作为基学习器,在构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。具体来说,传统决策树在选择划分属性时,是在当前节点的属性集合中选择一个最优属性,而RF对决策树的每一个结点,先从该节点的所有属性中随机选择出k个属性,然后再在这k个属性中挑选出最优的属性用于结点的划分。所以RF的随机体现在两个部分:1.抽样选择样本作为训练集(Bagging),训练集中的样本具有随机性。2.对于每个结点的特征进行随机选择,特征选择具有随机性。
结合策略(平均法,投票法,学习法):
平均法:针对于输出值是连续值的基学习器(回归)。有两种平均方式:1.简单平均法 2.加权平均法
投票法:针对输出值是离散型的基学习器(分类)。1.绝对多数投票法 2.相对多数投票法 3.加权投票法
学习法:

猜你喜欢

转载自blog.csdn.net/all_about_WZY/article/details/90105910