7个步骤详解AdaBoost 算法原理和构建流程
AdaBoost 是集成学习中的一个常见的算法,它模仿“群体智慧”的原理:将单独表现不佳的模型组合起来可以形成一个强大的模型。
麻省理工学院(MIT) 2021年发表的一项研究[Diz21]描述了人们如何识别假新闻。如果没有背景知识或事实的核查,人们往往很难识别假新闻。但是根据不同人的经验,通常可以给出一个对于新闻真假程度的个人见解,这通常比随机猜测要好。如果我们想知道一个标题是描述了真相还是假新闻只需随机询问100个人。如果超过50人说是假新闻,我们就把它归类为假新闻。
将多个弱学习者的预测组合起来,就形成了一个强学习者,它能够准确地分辨真伪,通过集成学习,我们模仿了这个概念
Boosting 是最流行的集成学习技术之一。通过建立了一组所谓的弱学习器,即性能略好于随机猜测的模型。将单个弱学习器的输出组合为加权和,代表分类器的最终输出。AdaBoost是Adaptive Boosting的缩写。自适应Adaptive 是因为一个接一个的建立模型,前一个模型的性能会影响后一个模型的建立过程。
在学习过程中,AdaBoost 算法还会为每个弱学习器分配一个权重,并非每个弱学习器对集成模型的预测都有相同的影响。这种计算整体模型预测的过程称为软投票,类似的如果每个弱学习器的结果权重相等,我们称之为说硬投票。
与Bagging(随机森林)不同,在 Bagging 中,训练的是一组相互独立的单独模型。各个模型彼此不同,因为它们是使用训练数据集的不同随机子集进行训练。随机森林就是基于这个原理,一组单独的决策树形成了集成模型的预测。
而Boosting 的训练是连续的,单个模型的模型构建过程一个接一个地进行,模型预测的准确性会影响后续模型的训练过程。本文将逐步解释 AdaBoost 算法究竟是如何做到这一点的。这些模型由弱学习器、深度为 1 的简单决策树(即所谓的“decision stumps”,我们将其翻译为决策树桩)表示,本文将。
为了更方便得逐步解释 AdaBoost 算法背后的概念,我们选择了一个常见的并且简单得数据集:成年人收入的数据集(“Adult” dataset)。
这个数据集也被称为“人口普查收入”数据集,是一个用于二元分类任务得数据集。该数据集包含描述生活在美国的人们的数据,包括性别、年龄、婚姻状况和教育等属性。目标变量区分低于和高于每年 50,000 美元的收入。
为了说明 AdaBoost 算法的工作原理,我简化了数据集,并且只使用了其中的一小部分。在本文的最后提供代码的下载。
首先载入数据集
完整文章:
https://avoid.overfit.cn/post/d99544b82525450fb95110a79bc807ca