机器学习之集成学习AdaBoost
如大家所熟悉的,集成学习是一种利用多个基础模型来构建更加准确、稳定的预测模型的机器学习技术。集成学习的基本思想是将多个模型组合起来,通过集体决策来提高模型的预测性能。它能够有效地降低单个模型的过拟合风险,提高模型的泛化性能。
集成学习有很多方法和框架,以下是整体的分类图:
AdaBoost
AdaBoost 算法是一种经典的串行式集成学习方法。在每次迭代中,AdaBoost 算法会根据当前加权样本集训练一个弱分类器,并计算其错误率。然后,根据错误率计算分类器的权重,然后更新样本权重,并将更新后的样本集用于下一次迭代中。这样,每个分类器都是在当前加权样本集上训练的,而不是原始的训练集。
理解:样本和分类器的加权
可以把 AdaBoost算法类比为一个错题本,每个弱分类器都会形成一个错题本,在下一轮学习中,我们会针对错题本中的错误题目,更加用心地进行学习,以避免再犯相同的错误。
但需要注意的是,AdaBoost 在每次迭代的时候并不只选取错题(错分类的样本),也会选择之前正确的题。就类似复习的时候不能只看错题,也得看看之前做对的题,只是权重更偏向错题。每个弱分类器都是在前一轮弱分类器分类错误的样本加权后训练的,以此更加关注分类错误的样本,从而提高分类性能。
那么,如何进行样本集的加权呢?
以下是具体的思路:
我们为了更聚焦与错误分类的那些样本,要设计一种形式使得当分类错误的时候更大,分类正确的时候更小。因此,可以考虑下面这种形式。
如果第 t 个分类器 Gt 错误分类了第 i 个样本,则第 i 个样本在第 t + 1 轮中的权重为:
其中 α(t) 是第 t 个分类器的权重。反之,如果第 t 个分类器正确分类了第 i 个样本,则第 i 个样本在第 t + 1 轮中的权重为:
这样就可以保证这两种情况可以统一为:
yiGt(Xi) 在正确分类时为 -1 ,错误分类时为 1 。为了保证权重求和为 1 ,这样计算之后还会对整个权重进行归一化,即都除以
