xgboost算法原理

akrusher 2018-12-05 原文

xgboost算法原理

XGBoost是2014年3月陈天奇博士提出的,是基于CART树的一种boosting算法,XGBoost使用CART树有两点原因:对于分类问题,CART树的叶子结点对应的值是一个实际的分数,而非一个确定的类别,这有利于实现高效的优化算法;XGBoost有两个特点快和准,快一方面是并行的原因,另一方面是CART树的计算没有对数项。

XGBoost首先是一种基于决策树的集成模型,假设有K棵CART树,则集成的预测结果为:(fK代表第k颗树的输出结果)

 

 

XGBoost的目标优化函数定义为:

 

 

目标优化函数的第一项为训练损失,第二项为树模型的复杂度,也是优化函数的正则化项。Xgboost包含的CART树的确定包括两个部分:树的结构、叶子节点分数,如果树的结构确定,模型的正则化项也设为各个叶子节点值的平方和,就可以使用梯度下降或随机梯度下降来优化目标函数。

XGboost目标函数的优化采用的是加法训练,这是一种启发式算法,运用加法训练,首先优化第一棵树,之后再优化第二棵树,直至优化完k棵树。

 

 

第t步时,在现有的t-1棵树的基础上,添加使目标函数最小的第t颗CART树:

 

 

对于平方损失函数,目标优化函数可表示为:

 

 

对于一般的损失函数,可以对目标函数做二阶泰勒展开,得到目标优化函数:

 

 

其中:

等价于平方损失函数中的:

 

 

二阶泰勒展开形式:

 

 

移除常数项后,得到的近似目标优化函数为:

 

 

模型的正则化项定义为:

 

 

将正则化项代入目标优化函数得:

 

 

令:

 

 

目标函数等价于:
   

 

假设树的结构固定,优化每个叶子节点的权重,目标函数对wj求偏导等于0可得:

 

 

XGBoost的节点切分标准定义为:

 

 

该Gain实际上是单节点的obj减去切分后的两个子节点的obj,Gain为正,值得切分,Gain的左半部分大于g,值得切分。

Xgboost对样本的遍历转化成了在叶子节点上遍历,特征的选择和切分可以并行实现,优于传统的GBDT算法。

发表于 2018-12-05 13:43 万里哥哥 阅读() 评论() 编辑 收藏

 

版权声明:本文为akrusher原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/akrusher/p/10070504.html

xgboost算法原理的更多相关文章

  1. XGBoost——机器学习

    XGBoost——机器学习(理论+图解+安装方法+python代码) 目录 一、集成算法思想 二、XGBoos […]...

  2. XGBoost: 你不能不知的机器学习算法

    XGBoost作为一个非常常用的算法,我觉得很有必要了解一下它的来龙去脉,于是抽空找了一些资料,主要包括陈天奇 […]...

  3. 提升学习算法简述:AdaBoost, GBDT和XGBoost

    1. 历史及演进 提升学习算法,又常常被称为Boosting,其主要思想是集成多个弱分类器,然后线性组合成为强 […]...

  4. 集成学习总结

    1 基本概念 集成学习的主要思路是先通过一定的规则生成多个学习器,再采用某种集成策略进行组合,最后综合判断输出 […]...

随机推荐

  1. Pyhone学习之环境搭建

     一、python 环境搭建        本章节我们将向大家介绍如何在本地搭建Python开发环境。Pyth […]...

  2. 【有趣的全彩LED | 编程】用STM32 HAL库让WS2812B为你所动

    一、效果展示         观看演示效果:https://www.bilibili.com/video/BV […]...

  3. 性能测试工具LoadRunner32-LR之windows性能监控Perfmon – 深海溺心

    性能测试工具LoadRunner32-LR之windows性能监控Perfmon Perfmon是啥?   P […]...

  4. DIV横向排列_CSS如何让多个div盒子并排同行显示

    如何让多个div盒子并排同行div横向排列显示呢? 我们先设置3个div盒子对象,什么css样式都不设置看看效 […]...

  5. 设计模式-行为型-职责链模式

    职责链模式(Chain of Responsibility):   在现实生活中,常常会出现这样的事例:一个请 […]...

  6. bootstrap图片上传功能

    重点:   fileupload    、loadImage   引用js: <!-- Bootstra […]...

  7. 排列组合的一些公式及推导(非常详细易懂)

    绪论:加法原理、乘法原理 分类计数原理:做一件事,有\(n\)类办法,在第\(1\)类办法中有\(m_1\)种 […]...

  8. web-view——微信小程序嵌入H5

    web-view——微信小程序嵌入H5     web-view 组件是一个可以用来承载网页的容器,会自动铺满 […]...

展开目录

目录导航