1.背景
集成学习(ensemble learning)通过构建并结合多个学习器来提升性能
集成学习分为两大类:
个体分类器存在强依赖方法(Boosting)
个体学习器之间不存在强依赖关系(Bagging,随机森林)
提升方法的思路:
对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比任何一个专家单独的判断好。实际上,就是“三个臭皮匠顶个诸葛亮”的道理。
对于提升方法来说,有两个问题:
- 在每一轮如何改变训练数据的权值与概率分布
- 如何将若分类器组合成一个强分类器
Boosting类算法核心理念
将多个弱分类器进行合理的结合,使其成为一个强分类器,可以理解成“前人栽树,后人乘凉”。前辈创造条件,后备在前辈的基础上进行改进。即我们先训练一个弱学习器,再对这个模型进行评估,对这个模型中做对的问题,我们减小对它的注意力;做错的问题那就增大注意力,专注于克服前面模型不能解决的困难点。最后,当我们把所有的模型整合成一个大的框架的时候,里面既有处理简单问题的模型也有处理困难问题的模型,使大框架的整体模型性能有所提高。
Boosting族最著名的代表算法是Adaboost,它的做法是:
- 提高那些被前一轮若分类器错误分类样本数据的权值,降低正确分类样本的权值
- 采取加权多数表决的方法,加大分类误差率小的若分类器的权值,减小分类误差率大的弱分类器的权值。
2.基本原理
强可学习:识别准确率很高并能在多项式时间内完成的学习算法
弱可学习:识别错误率小于1/2(即准确率仅比随机猜测略高的学习算法)
Step1:训练每个弱分类器,计算样本困难度。
(1)初始化样本权重为1/N
(2)利用当前弱分类器的训练结果,更新所有样本的权重。正确分类的样本就降低权重,错误分类的样本就增大权重。