学习时间:2022.04.30~2022.05.1
机器学习:基于LightGBM的分类实践
尝试了一下招行的FinTech比赛,然后说是用LightGBM(lgb)的效果很好,所以临时来突击学习一下。
1. LightGBM简介
LightGBM是轻量级(Light)的梯度提升机器(GBM),是GBDT模型的另一个进化版本。它延续了XGBoost的那一套集成学习的方式,相对于xgboost, 具有训练速度快和内存占用率低的特点。
好吧,我承认,这一段里面的GBM、GBDT、XGBoost我全都不会,而且也不太知道具体是啥,但也不影响对lgb的应用,后续会继续学习机器学习补上的。
模型精度:XGBoost和LightGBM相当;
训练速度:LightGBM远快于XGBoost;
内存消耗:LightGBM远小于XGBoost;
缺失值特征:XGBoost和LightGBM都可以自动处理特征缺失值;
分类特征:XGBoost不支持类别特征,需要OneHot编码预处理。
LightGBM直接支持类别特征。对于类别型特征机器学习算法一般是通过one-hot来处理的,但对于决策树算法来说不推荐使用one-hot,因为当类别种类较多时,会使得:① 产生样本切分不平衡的问题,切分增益会非常小;② 会影响决策树的学习。
LightGBM的优缺点:
-
速度更快
- LightGBM 采用了直方图算法将遍历样本转变为遍历直方图,极大的降低了时间复杂度;
- LightGBM 在训练过程中采用单边梯度算法过滤掉梯度小的样本,减少了大量的计算;
- LightGBM 采用了基于 Leaf-wise 算法的增长策略构建树,减少了很多不必要的计算量;
- LightGBM 采用优化后的特征并行、数据并行方法加速计算,当数据量非常大的时候还可以采用投票并行的策略;
- LightGBM 对缓存也进行了优化,增加了缓存命中率;
-
内存更小
- LightGBM 采用了直方图算法将存储特征值转变为存储 bin 值,且不需要特征值到样本的索引,降低了内存消耗;
- LightGBM 在训练过程中采用互斥特征捆绑算法减少了特征数量,降低了内存消耗。
-
缺点
- 可