机器学习:集成算法
1 集成算法概念
集成方法是将几种机器学习技术组合成一个预测模型元算法。把多个弱监督模型集合在一起,组成一个更全面的强监督模型。算法理念:取长补短。
1.1 集成算法使用规模
- 数据大,划分多个小数据集,学习多个模型进行组合。
- 数据小,利用booststrap方法进行抽样,得到多个数据集,分别训练多个模型再组合。
1.2 集成算法分类
- bagging 袋装法(减小方差) - 并行集成 并联
- boosting 提升法(减小偏差) - 序列集成 串联
- stacking 堆叠法(改进预测) - 前一个模型输出的y是有一个模型的X,递进运算
1.3 集成算法特点
- 1.集成算法不是一种分类器,而是一种分类器结合方法。
- 2.通常来说,集成算法由于单个分类器算法。
- 3.集成学习法由训练数据构建一组基分类器,然后通过对每个基分类器额预测投票来进行分类。
- 4.集成算法选择弱分类器进行组合。
- 5.集成算方效率比较低。
2 bagging算法
bagging方法是booststrap aggregating的缩写,采用的是随机有放回的选择训练数据然后构造多个分类器,最后组合投票。 代表算法随机森林。
-
必要条件:
- 各分类器之间相互独立
- 基分类器应当好于随机猜测分类器(概率)
-
总结:
- bagging中多个基分类器得到的结果交叉叠加在一起,通过投票将有效部分筛选出,降低基分类器的方差,改善了泛化误差
- 性能依赖基分类器的稳定性;如果基分类器不稳定,bagging有助于降低训练数据的随机波动导致的误差;如果稳定,则集成分类器误差主要由基分类器额偏仪倚引起
- bagging选的样本随机,不能特定
2.1 随机森林算法
随机森林是最常用的集成算法之一。随机森林基分类器为决策树。
2.1.1 决策树之间的独立性
通过以下方法,保证决策树之间独立性,避免随机森林过拟合
- 数据随机化:输入数据是随机的一部分。
- 属性随机化:每棵决策树的构建所需要的特征是从整体的“特征集”中随机选取的。
2.1.2 bootstrap
bootstrap也称自助法
- 从原数据集中有放回的抽取n个训练样本,进行k轮,得到k个训练集。
- 每次使用一个训练集得到一个模型,最后得到k个模型。
- 对分类问题:将上步得到的k个模型进行投票得到分类结果;对回归问题:计算上述模型的均值作为最后的结果。(所有模型重要性都相同)
- 在统计中,所有样本有放回的抽取,完全没有抽取到的概率约等于63%
- 因此 ,当原数据样本中存在很大噪声的时候,通过bootstrap,最多能有1/3数据(袋外数据out of bag data)被拒绝。
2.1.3 随机森林算法流程
- 1 从N样本中选取n个数据作为训练数据输入,一般情况n远小于N。每被捕捉到的就是袋外数据,可以用做误差估计。可以直接用袋外数据来测试模型,obb_score
- 2 在特征集M中选m个特征构建决策树
- 3 选最小基尼指数
- 4 重复2和3步,得到森林
- 5 预测,多棵树同时决策,最后投票决策
3 boosting算法
boosting算法训练过程是依次训练基础模型,并在训练过程中对训练集不断进行调整,最终将所有模型组合起来。代表算法adaboost。
- 基本思想:不同训练集通过调整每个样本对应的权重,不同的权重应对不同的样本分布,而这个权重为分类器不断增加对错分样本的重视程度。利用弱分类器更新每个样本的权重,分类错误的样本就增加权重,正确就降低权重,得到新样本继续下一个分类器。直到k个分类去,最后某种策略得到最后的强分类器。
- 只要弱分类器的分类精度高于随机分类器(概率)
- boosting对噪声非常敏感。
3.1 Adaboost算法流程:
Adaboost(自适应adaptive boosting)在当前基础模型训练时,提高训练集中前一个基础模型误分类样本的权重,使得前面被误分类的样本获得更高的关注,从而提高当前模型的效果。
- 1 计算样本权重,初始化每个样本一个相同权重向量D
- 2 计算错误率:训练样本进行训练后,再以训练样本进行测试,得到错误率 ϵ = 分 错 的 样 本 数 量 样 本 总 数 ϵ=\frac{分错的样本数量}{样本总数} ϵ=样本总数分