分享

一文读懂Adaboost

 新用户8719ag3P 2022-01-05

引言

  在正儿八经地介绍集成学习的内容之前,我们想先介绍一下Kaggle竞赛,这是我们要介绍集成学习的初衷之一。Kaggle(kaggle)是由安东尼·戈德布卢姆在2010年创办的一个数据建模和数据分析平台,其目标就是使数据科学成为一项运动 。这个平台对所有的注册用户开放,企业和研究者可以在上面发布自己的数据并描述自己的目标,感兴趣的数据分析专家可在上面进行竞赛来解决问题。

  Kaggle竞赛包括Featured,Recruitment,Research,Playground,Getting started和In class几种类别,其中Featured,Recruitment,Research是企业或研究机构发布的,提供一定数额的奖金,问题比较难;Playground,Getting started则是提供给数据分析爱好者们一些入门级的练习,难度较低,对于新手建议从这两个类别入手;最后In class则是提供给教学用的,老师布置一些任务同班同学可以在上面完成,这个一般是私密的不是外界都能参与的。

  Kaggle在数据分析领域非常有影响力,在全球范围内拥有将近20万名数据科学家,其竞赛领域包括计算机科学、统计学、经济学和数学。Kaggle的竞赛在艾滋病研究、棋牌评级和交通预测方面取得了成果并且基于这些成果产生了一系列的学术论文。

  什么是集成学习

  在很多Kaggle竞赛以及很多工程实践中,集成学习的策略由于其良好的预测性能而备受青睐。那么什么是集成学习?集成学习是一种机器学习框架,其主要思想就是将多个基础模型组合起来,提高整体模型的泛化能力。集成学习的思想背后有比较成熟的数学理论作支撑,也即Valiant和Kearns提出的PAC (Probably approximately correct) 学习框架下的强可学习和弱可学习理论。该理论指出:在PAC 的学习框架中,一个概念如果存在一个多项式的学习方法能够学习它,并且如果预测正确率很高,那么就称这个概念是强可学习的;如果正确率仅比随机猜测略好,那么就称这个概念是弱可学习的。随后,Schapire证明了强可学习和若可学习是等价的,也就是说弱学习模型是可以通过组合提升为强学习模型的,由此便形成了后来的集成学习的思想。

  集成学习的思想其实是比较自然的,俗话说的“三个臭皮匠,顶个诸葛亮”,就是一种典型的集成学习的思想。那么集成学习的框架下具体包含哪些算法呢?根据南京大学周志华老师2009年发表的一篇关于集成学习的综述,集成学习的框架主要有三种:boosting,bagging以及stacking,其中boosting包含有Adaboost 和GBDT等,bagging的典型代表是Random Forest,stacking则是多种基础模型的结合,这三种方法思想大同小异,但是模型训练的过程不同,限于篇幅,本文主要介绍boosting学习框架中的Adaboost,在以后的系列文章中会再介绍其他方面有关集成学习的内容。

  Boosting

  Boosting是一种广泛应用的集成学习框架,该框架一般的训练过程是依次训练基础模型,并在训练过程中对训练集不断地进行调整,也即当前训练所用的训练集由前一次训练的训练集根据某些策略调整得到,最后将所有基础模型组合起来即为最终得到的模型。Boosting学习框架中最具代表性的算法就是Adaboost,因此,本文将通过Adaboost来深入学习boosting思想及其具体实现。

  Adaboost算法

  大家都知道Adaboost算法是一种应用非常广泛也非常有效的机器学习方法,也被评为数据挖掘领域十大经典算法之一。那么什么是Adaboost算法,一句话描述就是:在当前基础模型训练时,提高训练集中前一个基础模型。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多