最新分享,第一时间送达!

本文是《机器学习宝典》第 18 篇,读完本文你能够掌握集成学习中的 AdaBoost。
在前一篇文章中介绍了 Bagging 中的一个经典算法:随机森林 。这篇我们来介绍 Boosting 系列的算法。AdaBoost 算是 Boosting 中最经典的一个算法了,所以这篇我们就介绍下它。
AdaBoost(adaptive boosting)中文名叫自适应增强,它是一种能够自动根据前一个基模型对样本预测的误差率来调整样本权重,然后基于调整权重后的样本继续学习新的基模型,如此反复,直到基模型的个数达到设定的个数停止,最后将所有训练的基模型通过组合策略进行集成,得到最终的模型。在 AdaBoost 中,基模型可以是很多种,比如决策树、神经网络等。在这个过程中,包含了两个可以提升效果的原因:
提高了那些被前一次基模型错误分类或回归预测误差较大的样本的权重,而降低那些被正确分类或回归预测误差较小样本的权重。这样一来,那些被分错或预测误差较大的数据,在下一次就会得到更大的关注。
在组合基模型时,增加分类误差率小或回归预测误差较小的基模型权重,使其在组合时的贡献更高,降低分类误差率大或回归预测误差较大的基模型权重,使其在组合时的贡献更低。
在 AdaBoost 学习的过程中,需要解决的问题有以下 4 个:
如何计算模型的预测的误差率
如何确定基模型的权重
如何更新样本的权重
如何将多个基模型组合在一起
假设我们的训练集为 ,其中
,总共训练的基模型的个数为 T,第 t 个基模型的在训练集中的每个样本权重为
。
AdaBoost 分类问题算法流程
我们以二分类为例,来说明下一般情况下二分类问题下的 AdaBoost 的算法流程:
1.初始化数据集中的权重分布为:,其中
2.令 t = 1,2,…,T,循环:
a. 使用带有权重分布 的训练集学习一个基模型
b. 计算基模型 的误差率
,其中
为指示函数
c. 计算基模型 的在最终的集成模型中的权重
d. 更新下一次的样本权重分布 ,其中
其中,,是一个规范化因子,以确保
是一个分布。