【零散知识】gradient boosting的简单实践(xgboost)

本文介绍了xgboost在机器学习中的应用,包括其正则项、误差二阶导信息利用和稀疏觉察的分裂寻找等特点。通过一个西瓜数据集的实践例子展示了如何在Python环境中使用xgboost进行训练和评估,同时分享了参数设置的经验。
摘要由CSDN通过智能技术生成

前言:

{

    昨天简单了解了一下gradient boosting,实际上在机器学习比赛中,gradient boosting的算法非常流行。这次要记录的是gradient boosting的一种实现:xgboost(eXtreme Gradient Boosting)。

}

 

正文:

{

    xgboost的简单介绍

    {

        论文原文地址:[1]。

        对于xgboost的主要结构特点,知乎回答[2]的中已经描述了大概情况,我就在这写一点我的理解:

        1,添加了正则项,把模型的复杂度作为目标函数的一部分,见式(2)。正则项是一个避免过拟合的有效手段,甚至tensorflow都会在返回的损失里默认添加正则项[3]。

其中Ω就代表了模型的复杂度

        2,使用了误差的二阶导信息。gradient boosting模型的目标函数为,可以看到,误差部分只是把新残差模型的输出直接加到原模型的输出上的结果。但是xgboost的目标函数为,其中并且。对比泰勒公式,可以发现新的目标函数中左边的每次误差部分变成了f(z)=l(y_{i},z)\widehat{y}^{(t-1)}处的二阶泰勒展开,并且z=\widehat{y}^{t},因为此时就是预测的\widehat{y}^{t}-\widehat{y}^{(t-1)},上述误差部分就相当于f(\widehat{y}^{t})=l(y_{i},\widehat{y}^{t})

        3,Sparsity-aware Split Finding(暂译为稀疏觉察的分裂寻找),其目的在于应对缺失数据(包括人工添加的虚假数据)。实际上就是在树中定义缺省划分方法,当遇到样本缺失值时直接按照规定的方

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值