Boosting算法族——AdaBoost算法原理

Bagging、Stacking和Boosting

Boosting算法族的两个核心问题

(1)、迭代训练过程中如何降低模型的偏差?
(2)、如何将训练好的弱学习器组合为强学习器?

AdaBoost

AdaBoost算法是Boosting算法的典型代表,它是模型为加法模型、损失函数为指数函数、学习算法为前向分步算法时的二分类算法。
它对两个核心问题的回答是:
(1)、迭代训练过程中如何降低模型的偏差?
答: AdaBoost算法通过更新附加给训练集的每个样本的权重来降低模型的偏差。具体描述为:每一轮训练弱学习器时,通过增加上一轮预测错误样本的权重,并降低上一轮预测正确样本的权重来让模型更关注预测错误的样本,从而最小化整体模型的拟合偏差。
(2)、如何将训练好的弱学习器组合为强学习器?
AdaBoost通过加权多数表决的方法实现聚合多个弱学习器为强学习器。具体描述为:通过给预测误差小的学习器更大的权重,和给预测误差大的学习器更小的权重,来让预测错误率更小的学习器对整体预测结果贡献更大,从而降低整体模型的偏差。
AdaBoost算法详解与python实现

AdaBoost算法步骤

Boosting算法族——AdaBoost算法原理_第1张图片
第5步:判断是否满足基本条件(例如生成的基学习器是否比随机猜测好), 如果不满足,则当前基学习器被抛弃,学习过程提前终止。
第6步:计算基学习器的系数(即最终集成使用的的基学习器的权重),当基学习器的误差率小于或等与0.5时,其权重大于0,并且权重随着误差的减小而增大,即分类误差率越小的基学习器在最终集成时占比也越大,即AdaBoost能够适应各个弱分类器的训练误差率,这也是它的名称中"适应性(Adaptive)"的由来。
第7步:更新训练样本的权重,由公式可以得知被基学习器误分类的样本权值得以扩大,而被正确分类的样本的权值被得以缩小。
Output:符号决定了所预测的类,其绝对值代表了分类的确信度。

AdaBoost算法解释

有没有想过为什么AdaBoost算法长上面这个样子,例如为什么基学习器权重要用算法中的公式那样表示?接下来将探讨这个问题。
Boosting算法族——AdaBoost算法原理_第2张图片
Boosting算法族——AdaBoost算法原理_第3张图片
Boosting算法族——AdaBoost算法原理_第4张图片
图片来源:
Ensemble Learning.pdf

你可能感兴趣的:(机器学习,数据挖掘,adaboost算法,python,算法)