美文网首页
XGBoost算法原理精简版

XGBoost算法原理精简版

作者: 婉妃 | 来源:发表于2019-04-13 23:13 被阅读0次

GBDT算法可以看成是由K棵树组成的加法模型:

F是所有树组成的函数空间,以回归任务为例,回归树可以看作为一个把特征向量映射为某个score的函数。 模型参数是f {k=1,2,....K}。于一般的机器学习算法不同的是,加法模型不是学习d维空间中的权重,而是直接学习函数(决策树)集合。

目标函数如下:


omega是所有树的复杂度。如何定义树的复杂度呢?比如,可以考虑树的节点数量、树的深度或者叶子节点所对应的分数的L2范数等等。

如何来学习加法模型呢?

解这一优化问题,可以用前向分布算法(forward stagewise algorithm)。因为学习的是加法模型,如果能够从前往后,每一步只学习一个基函数及其系数(结构),逐步逼近优化目标函数,那么就可以简化复杂度。这一学习过程称之为Boosting。具体地,我们从一个常量预测开始,每次学习一个新的函数,过程如下:


那么,在每一步如何决定哪一个函数f被加入呢?指导原则还是最小化目标函数。

在第t步,模型对的预测为:


,其中ft为这一轮我们要学习的函数(决策树)。这个时候目标函数可以写为:

formula - 1

举例说明,假设损失函数为平方损失(square loss),则目标函数为:

formula - 2

使用平方损失函数时,GBDT算法的每一步在生成决策树时只需要拟合前面的模型的残差。

高能预警:

根据泰勒公式把函数f(x + delta_x)在点x处二阶展开,可得到如下等式:

formula - 3

根据formula - 1,目标函数是关于变量


的函数,这里把yi(t-1)作为x, ft(xi)为delta_x,那么formula-1变成这样:
formula - 4

这里面的第一项L,就是f(x);

那么gi就是损失函数的一阶导数,

hi为损失函数的二阶导数,


由于函数中的常量在函数最小化的过程中不起作用,因此我们可以从formula-4中移除掉常量项,得:

formula - 5
由于要学习的函数仅仅依赖于目标函数,从formula-5可以看出只需为学习任务定义好损失函数,并为每个训练样本计算出损失函数的一阶导数和二阶导数。所以,第t次的迭代目标就是这个,本身ft就不是一个解析式,而是一棵树,这棵树事先规定好深度,然后建立数的过程,就是使当前Obj最小,朝着这目标建树。强调一下,i从1到n意思是本次迭代在整个训练集上进行,优化得到的Obj是整体的损失函数。

这里的g 和h,都和ft无关,只和当前y和之前计算得到的输出值有关。损失函数需要事先定义,回归的话是RMSE,分类的话是logloss。可导。所以,这就是为什么xgboost可以自定义损失函数。

只要函数可一阶和二阶求导。

相关文章

  • XGBoost算法原理精简版

    GBDT算法可以看成是由K棵树组成的加法模型: F是所有树组成的函数空间,以回归任务为例,回归树可以看作为一个把特...

  • XGBoost原理以及python的实现

    文章来源:XGBoost原理 XGBoost是boosting算法的其中一种。Boosting算法的思想是将许多弱...

  • 集成学习之Boosting-xgboost

    一、什么是Xgboost 二、Xgboost的基本原理 三、Xgboost的工作实例 四、算法的优缺点 *****...

  • XGBoost

    1.XGBoost算法原理 XGBoost是GDBT算法的应用,GDBT是根据损失函数负梯度来进行拟合每一个弱学习...

  • XGBoost算法原理

    XGBoost是数据挖掘类竞赛中经常使用的一大利器,它帮助选手在Kaggle、阿里天池大数据比赛等比赛取得了很好的...

  • XGBoost算法原理小结

    前言 XGBoost(eXtreme Gradient Boosting)全名叫极端梯度提升,XGBoost是集成...

  • Xgboost原理与Sklearn参数详解

    目录 1、Xgboost原理 2、总结 1、Xgboost原理 2、总结:本文主要分析了Xgboost和GBDT原...

  • day01-集成决策树模型

    1、xgboost原理1.1 xgboost原始论文1.2 xgboost原始ppt介绍1.3 xgboost基础...

  • GBDT进化->XGBoost & LightGBM简记

    很全面的阐释XGBoost: 集成学习之Boosting —— XGBoost 大体来看,XGBoost 在原理方...

  • 同盾科技面试——算法工程师

    上海部门招做toB项目的算法工程师。 一面 最有特色或亮点的项目 xgboost原理 word2vec原理 det...

网友评论

      本文标题:XGBoost算法原理精简版

      本文链接:https://www.haomeiwen.com/subject/btydwqtx.html