Adaboost
集成学习
定义
在机器学习的有监督学习算法中,我们的目标是学习出一个稳定且在各个方面表现都较好的模型,但是实际情况往往不这么理想,有时候我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好)。
集成学习就是组合这里的多个弱分类器以得到一个更好更全面的强分类器,集成学习潜在的思想是:即便某些弱分类器得到了错误的预测,其他的弱分类器也可以将其纠正回来。
特点:
- 将多个分类方法聚集在一起,以提高分类的准确率。
- 集成学习法由训练数据构建一组基分类器,然后通过对每个分类器的预测进行投票分类。
- 严格的说,集成学习不是一种分类器,而是一种分类器结合的方法。
- 通常一个集成分类器的分类性能会好于单个分类器。
- 如果把单个分类器比作一个决策者的话,集成学习的方法就相当于多个决策者共同进行一项决策。
种类:
- 序列集成方法:参与训练的基础学习器按照顺序生成(例如Adaboost),序列方法的原理是利用基础学习器之间的依赖关系,通过对之前训练中错误标记的样本赋值较高的权重,可以提高整体的预测效果。
- 并行集成方法:参与训练的的基础学习器并行生成(例如Random Forest)。并行方法的原理是利用基础学习器之间的独立性,通过平均可以显著降低错误。
新算法:
Bagging+决策树=随机森林
Adaboost+决策树=提升树
Gradient Boosting+决策树=GBDT
Adaboost
Adaboost的核心问题
-
在每一轮如何改变训练数据的权值?
通过提高哪些在前一轮被弱分类器分错样例的权值,减小前一轮分对样例的权值,来让分类器对误分的数据有较好的效果。
-
怎么组合弱分类器?
通过加法模型将弱分类器进行线性组合。刚开始训练时对每一个训练样本赋相同的权重,然后训练T轮,每次训练后都改变样本的权重,也就是说每次都让分类器更关注分错的样本,从而得到多个分类器。通过拟合残差的方式逐步减小残差,将每一步生成的模型叠加得到最终模型。
image
Adaboost计算过程
Adaboost是adapitive boosting(自适应boosting)的缩写。
1.计算样本权重
训练数据中的每个样本,赋予其权重,用向量D表示,这些权重都初始化成相等值。假设有n个样本的训练集:
设定每个样本的权重都是相等的,即。
2.计算样本错误率
利用第一个弱学习器算法对其进行训练,训练完成后对错误率
的统计:
3.计算分类器权重
4.更新样本权重
在第一个分类器训练完成后,需要重新调整样本的权重,以使得第二个分类器更注重分类错误的样本,从而对其重点学习:
其中是归一化因子,
。
将以上两个式子合并:
5.结果输出
- 重复进行分类器学习,经过
轮学习后,就会得到
个弱分类器,以及各个弱分类器的权重:
- 对弱分类器进行线性组合:
网友评论