xgboost原理推导和python实现

本文详细介绍了Xgboost的基本原理,包括目标函数构成、树的结构与复杂度、泰勒定理的应用以及正则化。讨论了Xgboost与GBDT的区别,强调了其在防止过拟合上的优势,如步长缩减、列抽样等。此外,还探讨了Xgboost的并行化处理和内置交叉验证功能。最后,文章提供了参数详解和Python实战案例,展示模型的优秀性能。
摘要由CSDN通过智能技术生成

        本文通过学习陈天奇博士的slides和一些官方文档梳理了xgboost原理和推导过程,仅仅是初步梳理,还有很多问题需要进一步研究,整体感觉Xgboost很强大,集合了CART、boosting、bagging的优点,包括树的剪枝、行采样、列采用、正则化项等

二.Xgboost基本原理

英文:http://xgboost.readthedocs.io/en/latest

中文:http://xgboost.apachecn.org/cn/latest

2.1目标函数构成

目标函数一般由两部分组成:训练损失和正则化项

1.training loss:度量模型对训练数据集的拟合程度,常见有平方误差和逻辑损失

2.正则化项:度量模型的复杂程度,常见有L2和L1范式,

 

2.2  常见算法结构

岭回归:线性回归、平方误差、L2范式

Lasso回归:线性回归、平方误差、L1范式

逻辑回归:线性模型、逻辑损失、L2范式

2.3 回归树

2.3.1 单棵回归树

结构如下,每个节点均有一个预测值

2.3.2 集成回归树

每个节点预测值是多棵树和,常见的有Adaboost、GBDT等

2.3.3 集成回归树模型

集成回归树是多棵树的线性加权和:模型的损失为所有节点的预测误差,模型的复杂度有树的个数决定

2.3.4 模型采用加法训练

通过上面的目标函数,模型从常数开始,每次添加一个函数

2.3.5 确认目标函数任务

在t时刻的预测=t-1时刻的预测+t时刻的函数,因此可以确定目标函数如下图,我们的任务是找到ft去最小化目标函数

2.4 利用泰勒定理求损失函数的近似值

通过泰勒定理求目标函数的近似值,如下图所示

新目标函数变成如下函数:参与计算的有一阶导数和二阶导数(GBDT仅用一阶导数)

2.5 重新定义树

用叶子得分定义树,每个样本都落在一个叶子节点上,q(x)表示样本x在某个叶子节点上,wq(x)是该节点的得分

2.6 定义树的复杂度

定义树的复杂度如下:T树的深度,wj2为叶子节点得分

  • 11
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值