深入理解XGBoost

Introduction

XGBoost知识点

XGBoost相对于传统GBDT的优点

1)将正则项加入目标函数中,控制模型的复杂度,防止过拟合。
2)对目标函数进行二阶泰勒展开,同时用到了一阶导数和二阶导数。
3)实现了可并行的近似直方图算法。
4)实现了缩减和列采样(借鉴了GBDT和随机森林)。
5)实现了快速直方图算法,引入了基于loss-guide的树构建方法(借鉴了LightGBM)。
6)实现了求解带权值的分位数近似算法(weighted quantile sketch)。
7)可根据样本自动学习缺失值的分裂方向,进行缺失值处理。
8)数据预先排序,并以块(block)的形式保存,有利于并行计算。
9)采用缓存感知访问、外存块计算等方式提高数据访问和计算效率。
10)基于Rabit实现分布式计算,并集成于主流大数据平台中。
11)除CART作为基分类器外,XGBoost还支持线性分类器及LambdaMART排序模型等算法。
12)实现了DART,引入Dropout技术。

Cart实现原理

分类树的生成
基尼指数:
图片说明
分类树生成的步骤:
1)从根节点开始分裂。
2)节点分裂之前,计算所有可能的特征及它们所有可能的切分点分裂后的基尼指数。
3)选出基尼指数最小的特征及其切分点作为最优特征和最优切分点。通过最优特征和最优切分点对节点进行分裂,生成两个子节点。
4)对新生成的子节点递归步骤2、3,直至满足停止条件。
5)生成分类树。

回归树的生成
回归树是预测值为连续值的决策树,一般将叶子节点所有样本的平均值作为该节点的预测值。CART算法生成回归树的方法与生成分类树的不同,不再通过基尼指数进行特征选择,而是采用平方误差最小化。平方误差的定义如下:
图片说明
回归树的生成步骤如下:
1)从根节点开始分裂。
2)节点分裂之前,计算所有可能的特征及它们所有可能的切分点分裂后的平方误差。
3)如果所有的平方误差均相同或减小值小于某一阈值,或者节点包含的样本数小于某一阈值,则分裂停止;否则,选择使平方误差最小的特征和切分点作为最优特征和最优切分点进行分裂,生成两个子节点。
4)对于每一个生成的新节点,递归执行步骤2、步骤3,直至满足停止条件。XGBoost中采用的决策树(即回归树),因而决策树的生成过程与上述过程类似.

Gradient Boosting

图片说明

Gradient Tree Boosting

图片说明

XGBoost Gradient Boosting Tree

目标函数近似:
图片说明
公式中:图片说明 为第s-1轮样本的模型预测值,为第s轮训练的新子模型。

XGBoost引入泰勒公式来近似和简化目标函数。首先来看一下泰勒公式的定义。泰勒公式是一个用函数某点的信息描述其附近取值的公式,如果函数曲线足够平滑,则可通过某一点的各阶导数值构建一个多项式来近似表示函数在该点邻域的值。此处只取泰勒展开式的两阶,定义如下:
图片说明
图片说明
图片说明
最优目标函数和叶子权重
图片说明
图片说明
图片说明
简要概括
图片说明
图片说明

Summary

还是要多复习

算法小屋 文章被收录于专栏

不定期分享各类算法以及面经。同时也正在学习相关分布式技术。欢迎一起交流。

全部评论

相关推荐

自来熟的放鸽子能手面...:这个不一定,找hr跟进一下
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 你的mentor是什么样的人? #
4588次浏览 33人参与
# 你觉得mentor喜欢什么样的实习生 #
10776次浏览 297人参与
# 未岚大陆求职进展汇总 #
38160次浏览 114人参与
# 帮我看看,领导说这话什么意思? #
6729次浏览 28人参与
# 26届秋招公司红黑榜 #
13421次浏览 44人参与
# 怎么给家人解释你的工作? #
1748次浏览 17人参与
# 平安产险科技校招 #
2434次浏览 0人参与
# 没有家庭托举的我是怎么找工作的 #
12806次浏览 161人参与
# 求职低谷期你是怎么度过的 #
5470次浏览 97人参与
# 实习必须要去大厂吗? #
146898次浏览 1542人参与
# 从哪些方向判断这个offer值不值得去? #
6825次浏览 95人参与
# 同bg的你秋招战况如何? #
158912次浏览 927人参与
# 度小满求职进展汇总 #
10248次浏览 53人参与
# 校招泡的最久的公司是哪家? #
4894次浏览 23人参与
# 面试紧张时你会有什么表现? #
1811次浏览 21人参与
# 你有哪些缓解焦虑的方法? #
37215次浏览 835人参与
# 你喜欢工作还是上学 #
77633次浏览 860人参与
# 入职第一天,你准备什么时候下班 #
85528次浏览 467人参与
# 秋招想进国企该如何准备 #
97761次浏览 487人参与
# 简历无回复,你会继续海投还是优化再投? #
103636次浏览 819人参与
# 机械人的工作环境真的很差吗 #
25100次浏览 119人参与
# 独居后,你的生活是更好了还是更差了? #
28161次浏览 263人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务