手撕算法_xgboost

xgboost其实是GBDT的一种超牛的优化,然后Lightgbm是xgboost的变异。所以本博文主要是在讲xgboost与GBDT的区别。

损失函数的改进(原理)

众所周知,GBDT的损失函数是误差的一阶导数,然后xgboost的损失函数是将误差进行了泰勒展开到二阶,相当于加入了误差的二阶导数,损失函数比一阶效果更好。同时损失函数加入了正则化项防止过拟合。
it is easy to understand,xgboost的损失函数:
在这里插入图片描述
其中gi,hi分别表示误差的一阶和二阶导数。最后一项是对树的复杂度做的正则化项。
在这里插入图片描述
其中两个系数分别为L1,L2正则化系数,c表示单个叶子的输出均值。

可以自定义损失函数(API)

只要二阶可导就行

加入了正则化项(原理)

加入了特征抽样(API)

剪枝处理优化

GBDT遇见一个负增益则停止分裂,而xgboost会分裂知道最后,然后回过来“反思”,如果从某个节点开始往下的分裂带来的增益不如不分裂,则会剪枝。

缺失值处理

支持并行

速度快

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值