Py之lightgbm:lightgbm的简介、安装、使用方法之详细攻略(一)

简介: Py之lightgbm:lightgbm的简介、安装、使用方法之详细攻略

lightgbm的简介


LightGBM 是一个梯度 boosting 框架, 使用基于学习算法的决策树. 它是分布式的, 高效的, 装逼的, 它具有以下优势:


速度和内存使用的优化

减少分割增益的计算量

通过直方图的相减来进行进一步的加速

减少内存的使用 减少并行学习的通信代价

稀疏优化

准确率的优化

Leaf-wise (Best-first) 的决策树生长策略

类别特征值的最优分割

网络通信的优化

并行学习的优化

特征并行

数据并行

投票并行

GPU 支持可处理大规模数据

1、效率


为了比较效率, 我们只运行没有任何测试或者度量输出的训练进程,并且我们不计算 IO 的时间。如下是耗时的对比表格:


Data xgboost xgboost_hist LightGBM

Higgs 3794.34 s 551.898 s 238.505513 s

Yahoo LTR 674.322 s 265.302 s 150.18644 s

MS LTR 1251.27 s 385.201 s 215.320316 s

Expo 1607.35 s 588.253 s 138.504179 s

Allstate 2867.22 s 1355.71 s 348.084475 s

我们发现在所有数据集上 LightGBM 都比 xgboost 快。


2、准确率


为了比较准确率, 我们使用数据集测试集部分的准确率进行公平比较。


Data Metric xgboost xgboost_hist LightGBM

Higgs AUC 0.839593 0.845605 0.845154

Yahoo LTR NDCG<sub>1</sub> 0.719748 0.720223 0.732466

NDCG<sub>3</sub> 0.717813 0.721519 0.738048  

NDCG<sub>5</sub> 0.737849 0.739904 0.756548  

NDCG<sub>10</sub> 0.78089 0.783013 0.796818  

MS LTR NDCG<sub>1</sub> 0.483956 0.488649 0.524255

NDCG<sub>3</sub> 0.467951 0.473184 0.505327  

NDCG<sub>5</sub> 0.472476 0.477438 0.510007  

NDCG<sub>10</sub> 0.492429 0.496967 0.527371  

Expo AUC 0.756713 0.777777 0.777543

Allstate

3、内存消耗


我们在运行训练任务时监视 RES,并在 LightGBM 中设置 two_round=true (将增加数据载入时间,但会减少峰值内存使用量,不影响训练速度和准确性)以减少峰值内存使用量。


Data xgboost xgboost_hist LightGBM

Higgs 4.853GB 3.784GB 0.868GB

Yahoo LTR 1.907GB 1.468GB 0.831GB

MS LTR 5.469GB 3.654GB 0.886GB

Expo 1.553GB 1.393GB 0.543GB

Allstate 6.237GB 4.990GB

4、综述


      LightGBM是个快速的,分布式的,高性能的基于决策树算法的梯度提升框架。可用于排序,分类,回归以及很多其他的机器学习任务中。


      Gbdt是受欢迎的机器学习算法,当特征维度很高或数据量很大时,有效性和可拓展性没法满足。lightgbm提出GOSS(Gradient-based One-Side Sampling)和EFB(Exclusive Feature Bundling)进行改进。lightgbm与传统的gbdt在达到相同的精确度时,快20倍。


      在竞赛题中,我们知道XGBoost算法非常热门,它是一种优秀的拉动框架,但是在使用过程中,其训练耗时很长,内存占用比较大。在2017年年1月微软在GitHub的上开源了一个新的升压工具--LightGBM。在不降低准确率的前提下,速度提升了10倍左右,占用内存下降了3倍左右。因为他是基于决策树算法的,它采用最优的叶明智策略分裂叶子节点,然而其它的提升算法分裂树一般采用的是深度方向或者水平明智而不是叶,明智的。因此,在LightGBM算法中,当增长到相同的叶子节点,叶明智算法比水平-wise算法减少更多的损失。因此导致更高的精度,而其他的任何已存在的提升算法都不能够达。与此同时,它的速度也让人感到震惊,这就是该算法名字  灯的原因。


LightGBM 中文文档:http://lightgbm.apachecn.org/#/


lightgbm github:https://github.com/Microsoft/LightGBM

lightgbm pypi:https://pypi.org/project/lightgbm/



lightgbm的安装


pip install lightgbm


image.png


相关文章
|
搜索推荐 数据挖掘 PyTorch
Py之albumentations:albumentations库函数的简介、安装、使用方法之详细攻略续篇
Py之albumentations:albumentations库函数的简介、安装、使用方法之详细攻略续篇
Py之albumentations:albumentations库函数的简介、安装、使用方法之详细攻略续篇
|
机器学习/深度学习 算法 大数据
Dataset之CASIA-WebFace:CASIA-WebFace 数据集的简介、安装、使用方法之详细攻略
Dataset之CASIA-WebFace:CASIA-WebFace 数据集的简介、安装、使用方法之详细攻略
Dataset之CASIA-WebFace:CASIA-WebFace 数据集的简介、安装、使用方法之详细攻略
|
数据采集 机器学习/深度学习 算法
Logistic模型原理详解以及Python项目实现(2)
Logistic模型原理详解以及Python项目实现(2)
258 0
Logistic模型原理详解以及Python项目实现(2)
|
机器学习/深度学习 算法 Python
Logistic模型原理详解以及Python项目实现(1)
Logistic模型原理详解以及Python项目实现
308 0
Logistic模型原理详解以及Python项目实现(1)
|
机器学习/深度学习 Dart 算法
ML之lightgbm.sklearn:LGBMClassifier函数的简介、具体案例、调参技巧之详细攻略
ML之lightgbm.sklearn:LGBMClassifier函数的简介、具体案例、调参技巧之详细攻略
|
机器学习/深度学习 算法 TensorFlow
Py之imblearn:imblearn/imbalanced-learn库的简介、安装、使用方法之详细攻略
Py之imblearn:imblearn/imbalanced-learn库的简介、安装、使用方法之详细攻略
Py之imblearn:imblearn/imbalanced-learn库的简介、安装、使用方法之详细攻略
|
API 索引 Python
ML之catboost:catboost的CatBoostRegressor函数源代码简介、解读之详细攻略
ML之catboost:catboost的CatBoostRegressor函数源代码简介、解读之详细攻略
|
机器学习/深度学习 存储 测试技术
Python之 sklearn:sklearn中的RobustScaler 函数的简介及使用方法之详细攻略
Python之 sklearn:sklearn中的RobustScaler 函数的简介及使用方法之详细攻略
Python之sklearn-pmml:sklearn-pmml的简介、安装、使用方法之详细攻略
Python之sklearn-pmml:sklearn-pmml的简介、安装、使用方法之详细攻略
Python之sklearn-pmml:sklearn-pmml的简介、安装、使用方法之详细攻略
|
机器学习/深度学习 Python
Python之sklearn2pmml:sklearn2pmml库函数的简介、安装、使用方法之详细攻略
Python之sklearn2pmml:sklearn2pmml库函数的简介、安装、使用方法之详细攻略
Python之sklearn2pmml:sklearn2pmml库函数的简介、安装、使用方法之详细攻略