集成学习
集成学习顾名思义是通过构建并结合集成多个学习器来完成学习任务,有时也被称为多分类系统。集成学习要获得好的结果应做到“好而不同”,即个体学习器要有一定的准确性,并且学习器之间应该有差异。
目前集成学习的方法大致可以分为两种:
1、个体学习器之间存在强依赖关系、必须串行生成的序列化方法。(Boosting)
2、个体学习器之间不存在强依赖关系、可同时生成的并行化方法。(Bagging和RF)
Boosting:
Boosting是一族将弱学习器提升为强学习器的算法。工作机制如下:先从初始训练集中训练出一个基学习器,再根据基学习器的表现对训练样本进行调整,使得先前基学习器做的训练样本在后继受到更多的关注,然后基于调整后的样本分布来训练下一个基学习器;如此重复进行,直至基学习器的数目达到实现指定的值T,最终将这T个学习器进行加权结合。
Boosting算法对样本的分布调整有两种策略:
1、训练得到基学习器之后,通过对样本从新赋予一个权重。
2、对于无法接受带权样本的学习器,则通过重采样来处理。
Boosting最著名的代表方法是AdaBoost。AdaBoost算法被认为是模型为加法模型,损失函数为指数函数、学习算法为前向分布算法时的二分类学习算法。
从偏差—方差分解的角度看:Boosting主要关注降低偏差,因此Boosting能能基于泛化性能相当弱的学习器构建出很强的集成。(基学习器为树模型时,树不要太深泛化性不好—关注偏差。)
偏差:描述的是预测值(估计值)的期望与真实值之间的差距。偏差越大,越偏离真实数据。