集成学习

集成学习(ensemble learning)不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务。给定一个训练样本集,一般来说较容易得到粗糙的学习器,所谓的弱学习器,从弱学习算法出发,反复学习得到多个弱学习器,然后通过一定结合策略组合这些弱学习器,便可以得到一个强学习器。

集成学习有两个主要的问题需要解决,第一是如何得到若干个弱学习器,第二是如何选择一种结合策略,将这些弱学习器集合成一个强学习器。

对第一个问题的处理,有两种选择,一是基础学习器属于同一种类型(同质),二是选用不同种类的学习器作为基础学习器(异质)。一般常说的集成学习的方法都是指的同质基础学习器,且同质基础学习器使用最多的模型是CART决策树和神经网络

同质基础学习器按照学习器之间是否存在依赖关系可以分为两类,第一个是弱学习器之间不存在强依赖关系,一系列个体学习器可以并行生成,代表算法是bagging系列算法,第二个是弱学习器之间存在强依赖关系,一系列弱学习器需要串行生成,下一个待生成的基础学习器可以利用已生成的学习器的信息来提高性能,代表算法是boosting系列算法。

bagging算法对第一个问题的解决是通过对训练集做多次有放回随机采样,得到多个子训练集,对每个子训练集学习得到多个弱分类器。随机森林属于bagging系列算法,区别在于随机森林的弱学习器选择决策树,且随机森林在bagging的样本随机采样基础上,加上了特征的随机选择。

Boosting算法的工作机制是首先从训练集用初始权重训练出一个弱学习器,在训练下一个学习器之前,根据上轮的结果改变下一轮训练数据的概率分布,如此重复进行,直到得到足够的基础分类器,最终通过结合策略进行整合,得到最终的强学习器。
在boosting系列算法中, Adaboost是最著名的算法之一,他的思想是提高前一轮分类器错误分类样本的权值,降低被正确分类样本的权值,利用前一轮迭代弱学习器的误差率来更新训练集的权重。Adaboost等价于以指数函数为损失函数(回归是以平方误差为损失函数),以前向分布算法为学习算法的加法模型。对任意损失函数,如果以损失函数的负梯度来拟合上轮损失的近似值,进而拟合一个CART回归树,即为GBDT(梯度提升决策树),如果以损失函数的泰勒二阶展开式拟合上轮损失的近似值,则为XGboost。

对于结合策略的处理有多个选择:
1、对于数值类的回归预测问题,通常使用的结合策略是平均法,对于若干弱学习器的输出进行平均得到最终的预测输出。有时候为了提高准确率较高的某基础回归器的在总回归器中占的比重,会赋予该回归器一定的权重,只要满足预测准确率更高的回归器权重更大就好,可以利用下面这个公式:

α=e1e

e是样本错分率。
2、对于分类问题的预测,通常使用的是投票法,选择预测类别数量最多的类别,有时候会通过公式:
α=12log1ee

对基础学习器赋予一定的权重,e是样本错分率,是子训练集在某基础分类器上的误分样本数与总样本数的比值,这里的权重和不为1,每个权重表示对应基本分类器的重要性,加权表决的结果符号决定实例的类,绝对值表示分类的确信度。
3、有时不是对弱学习器的结果做简单的逻辑处理,通过再加上一层学习器,将训练集弱学习器的学习结果作为输入,将训练集的输出作为输出,重新训练一个学习器来得到最终结果。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值