在看清华学霸版《Python大战机器学习》的过程中,集成学习章节中出现了两个新的名词:GBDT&GBRT,也许是西瓜书定位于全面,而没有拘泥于细节。后来科普发现,这两个东西和陈天奇大神的XGBoost紧密相连,于是估摸着花时间弄懂这两个东西。
首先回顾一下集成学习的核心要点:在基学习器有一定准确性的基础上保证基学习器之间的多样性,总而言之即“好而不同”四字真言。集成学习主要有两种类型的学习算法:boosting串行,bagging并行。本篇主要围绕的是以决策树为基学习器的boosting方法。
前向分步算法
前面已经接触到了AdaBoost方法,其中主要包含两个步骤:(1)计算新引入的基学习器权重,(2)更新样本权重。之前只是简单提到:这两个公式是通过最优化指数损失函数而得到,事实上这里使用的正是前向分步算法,即每一步通过当前损失最优求解新基学习器参数。
很容易看出:Adaboost算法是前向分步算法的一个特例,使用指数损失最小化来求解新引入学习器的参数(即训练样本权重)及权重系数。