深入理解LightGBM学习笔记

学习笔记

深入理解LightGBM学习笔记_第1张图片
学习资料:https://zhuanlan.zhihu.com/p/99069186
思考题:LightGBM和XGboost 的联系和区别?

GBDT (Gradient Boosting Decision Tree) 是机器学习中一个长盛不衰的模型,主要思想是利用弱分类器(决策树)迭代训练以得到最优模型,该模型具有训练效果好、不易过拟合等优点。

联系:LightGBM和XGBoost 都是实现 GBDT算法的框架;
LightGBM使用了基于histogram的决策树算法,XGBoost中的贪心算法和近似算法;
区别:LightGBM提出的主要原因就是为了解决GBDT在海量数据遇到的问题,让GBDT可以更好更快地用于工业实践;

LightGBM的优点【计算速度快 1~5、内存占用小 6~】
1、LightGBM采用直方图算法将遍历样本转变为遍历直方图,极大的降低了时间复杂度;
2、LightGBM在训练过程中采用单边梯度下降算法(GOSS–Gradient-based One-Side Sampling )过滤掉梯度小的样本,减少了大量的计算;
3、LightGBM采用基于leaf-wise的增长策略构建数,减少了很多不必要的计算;
4、LightGBM采用优化后的特征并行,数据并行方法加速计算,当数据量特别大的时候还可以采用投票并行的策略;
5、LightGBM对缓存也进行了优化,增加了缓存命中率;
6、XGBoost 使用预排序后需要记录特征值及其对应样本的统计值的索引,而LightGBM使用了直方图算法将特征值转换为bin值,且不需要存储特征到样本的索引,将空间复杂度降到原来的1/8;
7、LightGBM采用了直方图算法将存储特征值改为存储bin值,降低了内存损耗;
8、LightGBM在训练过程中采用互斥捆绑算法减少了特征数量,降低了内存消耗;

LightGBM的缺点:
1、可能会长出比较深的决策树,产生过拟合。因此LightGBM在Leaf-wise之上增加了一个最大深度限制,在保证高效率的同时防止过拟合;
2、Boosting族是迭代算法,每一次迭代都根据上一次迭代的预测结果对样本进行权重调整,所以随着迭代不断进行,误差会越来越小,模型的偏差(bias)会不断降低。由于LightGBM是基于偏差的算法,所以会对噪点较为敏感;
3、在寻找最优解时,依据的是最优切分变量,没有将最优解是全部特征的综合这一理念考虑进去;

你可能感兴趣的:(决策树)