集成学习之Xgboost

本文详细介绍了Xgboost的基本原理,包括梯度提升的概念、目标函数的构建与优化,以及如何利用一阶和二阶导数进行决策树的构建。文章还探讨了Xgboost相对于GBDT的改进,如正则化、二阶泰勒展开、列抽样、缺失值处理等特性,强调了Xgboost在集成学习中的优势和工程实现的灵活性。
摘要由CSDN通过智能技术生成

前言

写完了Adaboost,也是大体了解了集成学习的原理以及分类,还不是很了解的同学可以点进去看看。然后还有GBDT,接下来就写一下集成学习中很重要的一个算法Xgboost。

先写在前面,如果对Adaboost和GBDT这两个算法还不是很熟悉的小伙伴,可以先去阅读一下这两个算法相关的文章。因为我之前讲过这两个算法,所以在本文就不讲了,直接开始我们的Xgboost算法相关讲解。

一、Xgboost的基本原理

梯度提升(Gradient boosting),是指boosting算法每一步的弱分类器都是依据损失函数的梯度方向来生成的。和GBDT依靠残差生成弱分类器和权重的方式不同,XGBoost算法是采用分步前向加性模型,只不过在每次迭代中生成弱学习器后不再需要计算一个系数,XGBoost 是由 k 个基模型组成的一个加法运算式:

 其中f(x)为弱预测器,y是预测结果。所以损失函数可以通过下列公式得到:

 其中y_i是第i个特征值的真实值,n是样本数量。接下来也就不废话了,就直接开始数学公式吧,我也会尽我所能去讲解明白这其中的原理,大家可以反复多看几遍。

模型的预测精度由偏差和方差共同决定,损失函数代表了模型的偏差,想要方差小则需要更简单的模型, 所以目标函数最终由损失函数L与抑制模型复杂度的正则项Ω组成, 所以目标函数如下:

 其中Ω(f_t)是正则化,公式也如下所示:

 公式定义前面T代表的是叶子节点数,前面的是超参数,这个正则项的意思是生成尽可能简单的弱分类器,进而减少方差。后面的w是作用在叶子节点上的权重,用来抑制弱分类器的过拟合现象。关于正则化就先介绍到这里,后面进行目标函数的优化时再进行讲解。首先我们需要的时对损失函数进行优化 boosting模型是前向加法, 以第t步模型为例, 模型对第i个样本x_i的预测为:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值