前面我们说了bagging算法和Boosting算法 接下来我们学习Adaboost算法
Adaboost基本概念:
AdaBoost (Adaptive Boosting,自适应提升): 算法原理是将多个弱学习器进行合理的结合,使其成为一个强学习器。
Adaboost采用迭代的思想,继承了Boosting算法,每次迭代只训练一个弱学习器,训练好的弱学习器将参与下一次迭代。
也就是说,在第N次迭代中,一共有N个弱学习器,其中N-1个是以前训练好的,其各种参数都不会改变,本次训练第N个学习器。
其中弱学习器的关系是第N个弱学习器更可能分对前N-1个弱学习器没分对的数据,最终分类输出要看这N个分类器的综合效果。
Adaboost算法流程:
初始化训练数据的权重分布。每个训练样本最初都被赋予相同的权重1/N,其中N是训练样本的数量。
对于每一个弱分类器: a. 使用带权重的训练数据进行训练,得到一个弱分类器。 b. 计算该弱分类器在训练数据上的错误率,即被错误分类的样本权重之和除以所有样本权重之和。 c. 更新训练样本的权重,降低正确分类样本的权重,提高错误分类样本的权重。这样,后续的弱分类器会更加关注那些被前一个弱分类器错误分类的样本。 d. 计算该弱分类器的权重,即其错误率的对数值的相反数。错误率越低,弱分类器的权重越高。
将所有弱分类器按照其权重进行加权求和,得到最终的强分类器。
对于新的输入样本,将其分别送入所有的弱分类器进行预测,然后将各个弱分类器的预测结果按照其权重进行加权求和,得到最终的预测结果。
Adaboost的工作方式:
弱分类器:Adaboost不需要精确的预测模型,而是使用简单的、准确率略高于随机猜测的弱分类器。这些弱分类器通常在训练数据的子集上训练得到,并且可以是基于各种特征的简单决策规则或分类器。
权重更新:在每一轮迭代中,Adaboost根据当前弱分类器的表现调整训练样本的权重。分类错误的样本将获得更高的权重,而正确分类的样本将获得较低的权重。这样,后续的弱分类器将更加关注难以分类的样本。
弱分类器权重:每个弱分类器都有一个权重,该权重基于其在加权训练数据上的性能。错误率越低的弱分类器将获得更高的权重。
加权投票:在最终的决策中,每个弱分类器的预测结果将按其权重进行加权,通过加权投票的方式得到最终的预测结果。这确保了性能较好的弱分类器对最终结果有更大的影响。
迭代过程:Adaboost是一个迭代过程,每一步都添加一个新的弱分类器并更新样本权重。这个过程持续进行,直到达到最大迭代次数或者满足某个停止条件(例如,当错误率达到某个阈值以下时)。