XGBoost、LightGBM 问题集锦

lightgbm和xgboost对于我都是比较陌生的,不求一次全搞明白,每天补充一些新知识吧~
LightGBM 英文文档
LightGBM 中文文档

二分类GDBT的算法流程

二元GDBT损失函数(negative binomial log-likehood)
在这里插入图片描述
其中
在这里插入图片描述
梯度(伪残差)
在这里插入图片描述
根据梯度计算各个叶子节点的最佳残差拟合值
在这里插入图片描述
我们一般使用近似值(Newton-Raphson)代替
在这里插入图片描述
进行概率估计
在这里插入图片描述
集成学习

gbdt为什么采用负梯度作为残差?

梯度优化也是整个深度学习的基础,从泰勒一阶展开可以证明负梯度方向是下降最快的方向,对于函数f
在这里插入图片描述
则优化函数在这里插入图片描述
在gbdt中,对损失函数展开
在这里插入图片描述
所以当前的优化器学习负梯度
在这里插入图片描述

gbdt的残差为什么用负梯度代替?

损失函数为什么不直接拟合残差

为了可以扩展到更复杂的损失函数中,比如正则项。

lightgbm特征是否需要转为onehot?

LightGBM 可以直接使用 categorical features(分类特征)作为 input(输入). 它不需要被转换成 one-hot coding(独热编码), 并且它比 one-hot coding(独热编码)更快(约快上 8 倍)
LightGBM Python包的相关介绍
在one-hot处理后数据会变得过于稀疏,大大增加了训练集的大小,浪费计算资源。而LGB则会采用一种直方图式的方法去处理。关于这种处理的方式,好好学习下来补上

关于lightgbm处理category特征的理解
Lightgbm如何处理类别特征?
关于编码多分类特征,是一个可简单可复杂的事情
kaggle编码categorical feature总结

lightgbm.LGBMModel和lightgbm.LGBMClassifier该用哪个?

分类是LGBMClassifier,回归是LGBMRegressor。
如果要用LGBMModel,要在参数objective指定你的任务类型(regression, binary, multiclass, lambdarank),我一般都是直接用LGBMClassifier或者LGBMRegressor,没用过LGBMModel,不过我觉得指定了任务类型之后,其他参数一样的情况下,效果应该是一样的,因为LGBMClassifier是继承自LGBMModel,objective默认设置为binary或者multiclass。
lightgbm.LGBMModel和lightgbm.LGBMClassifier该用哪个?

ligthgbm调参

XGBoost和LightGBM的参数以及调参
待续

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值