lightgbm和xgboost对于我都是比较陌生的,不求一次全搞明白,每天补充一些新知识吧~
LightGBM 英文文档
LightGBM 中文文档
二分类GDBT的算法流程
二元GDBT损失函数(negative binomial log-likehood)
其中
梯度(伪残差)
根据梯度计算各个叶子节点的最佳残差拟合值
我们一般使用近似值(Newton-Raphson)代替
进行概率估计
集成学习
gbdt为什么采用负梯度作为残差?
梯度优化也是整个深度学习的基础,从泰勒一阶展开可以证明负梯度方向是下降最快的方向,对于函数f
则优化函数
在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该用哪个?