介绍
Boosting
1.Boosting方法训练基分类器时采用串行的方式,各个基分类器之间有依赖。
2.Boosting的基本思路时将基分类器层层叠加,每一层在训练的时候,对前一层基分类器分错的样本给予更高的权重。测试时,根据各层分类器的结果的加权得到最终的结果。stacking
Bagging
- Bagging因为各基分类器之间无强依赖,所以可以进行串行训练。以基于决策树基分类器的随机森林为代表。
- 为了让基分类器之间相互独立,需要将数据集分为若干子集(当训练样本数量较少时,子集之间会有重叠部分)。
- Bagging更像天赋不同且单一的几个孩子在单独学习,学习的内容可以相同也可以不同。由于个体之间有差异,最终做出的判断不完全一致,每个个体单独判断,然后通过投票的方式做出最后集体的决策。voting
理解
接下来我们将会从消除基分类器的偏差和方差的角度来理解Boosting和Bagging方法的差异。
基分类器:弱分类器。基分类器的错误。是偏差和方差两种错误之和。偏差主要是由分类器的表达能力有限导致的系统性错误,表现在训练不够收敛。方差是由分类器对样本分布过于敏感,导致在训练样本过少时,产生过拟合。
- Boosting方法是通过逐步聚焦于基分类器分错的样本,减小集成分类器的偏差。
- Bagging方法是采取分而治之的策略,通过训练样本多次采样,分别计算多个独立的基分类器,综合各个模型减小集成分类器的方差。基模型越多,整体思想越统一,不会受个别模型影响,方差越小。
基本步骤
集成学习一般可分为以下3个步骤:
- 找到误差互相独立的基分类器;
- 训练基分类器;
- 合并基分类器的结果。
合并的方式有voting和stacking两种。也可以将不同分类器的输出结果作为一个特征,使用逻辑回归作为融合模型进行最后的结果预测。
以Adaboost为例具体步骤如下:
- 确定基分类器:由于树型模型结构简单,且较易产生随机性(制作相互独立的特性),这里可以选择ID3决策树作为基分类器。当然,其它非树型分类模型也可以作为基分类器。
- 训练基分类器:假设训练集为,其中,并且有个基分类器,则可以按照如下过程来训练基分类器。
① 初始化采样分布;
② 令循环;
A.) 从训练集中,按照分布,采样出子集;
B.) 用训练出基分类器;
C.) 计算的错误率:,其中为判别函数;
D.) 计算基分类器,权重;
E.) 设置下一次采样
,并将它归一化为一个概率分布函数。
③ 合并基分类器:给定一个未知样本,输出分类结果为加权投票的结果
网友评论