-
Note: If you use LightGBM in your GitHub projects, please add lightgbm in the requirements.txt. License This project is licensed under the terms of the MIT license. See LICENSE for additional details...
-
LightGBM
2020-11-20 11:38:33<p>I identified ways to use LightGBM with many of your tools. Let me know if it is something you would like to incorporate into your package. Maybe we can house a tutorial on the repo AIX360 that can ... -
Lightgbm
2020-12-08 18:57:22<div><p>This PR adds LightGBM support to CoreML Tools, and supports both Classifiers (Binary and Multiclass) and Regressors.</p><p>该提问来源于开源项目:apple/coremltools</p></div> -
lightGBM
2020-05-12 12:05:37LightGBM 是一个梯度 boosting 框架,使用基于学习算法的决策树。它可以说是分布式的,高效的,它有以下优势: 更快的训练效率 低内存使用 更好的准确率 支持并行学习 可处理大规模数据 lightGBM特点 ...LightGBM 是一个梯度 boosting 框架,使用基于学习算法的决策树。它可以说是分布式的,高效的,它有以下优势:
-
更快的训练效率
-
低内存使用
-
更好的准确率
-
支持并行学习
-
可处理大规模数据
lightGBM特点
以上与其说是xgboost的不足,倒不如说是lightGBM作者们构建新算法时着重瞄准的点。解决了什么问题,那么原来模型没解决就成了原模型的缺点。
概括来说,lightGBM主要有以下特点:
- 基于Histogram的决策树算法
- 带深度限制的Leaf-wise的叶子生长策略
- 直方图做差加速
- 直接支持类别特征(Categorical Feature)
- Cache命中率优化
- 基于直方图的稀疏特征优化
- 多线程优化
Histogram算法
直方图算法的基本思想:先把连续的浮点特征值离散化成k个整数,同时构造一个宽度为k的直方图。遍历数据时,根据离散化后的值作为索引在直方图中累积统计量,当遍历一次数据后,直方图累积了需要的统计量,然后根据直方图的离散值,遍历寻找最优的分割点。
带深度限制的Leaf-wise的叶子生长策略
Level-wise过一次数据可以同时分裂同一层的叶子,容易进行多线程优化,也好控制模型复杂度,不容易过拟合。但实际上Level-wise是一种低效算法,因为它不加区分的对待同一层的叶子,带来了很多没必要的开销,因为实际上很多叶子的分裂增益较低,没必要进行搜索和分裂。
Leaf-wise则是一种更为高效的策略:每次从当前所有叶子中,找到分裂增益最大的一个叶子,然后分裂,如此循环。因此同Level-wise相比,在分裂次数相同的情况下,Leaf-wise可以降低更多的误差,得到更好的精度。
Leaf-wise的缺点:可能会长出比较深的决策树,产生过拟合。因此LightGBM在Leaf-wise之上增加了一个最大深度限制,在保证高效率的同时防止过拟合。
lightGBM调参
(1)
num_leaves
LightGBM使用的是leaf-wise的算法,因此在调节树的复杂程度时,使用的是num_leaves而不是max_depth。
大致换算关系:
num_leaves = 2^(max_depth)
(2)样本分布非平衡数据集:可以
param[‘is_unbalance’]=’true’
(3)Bagging参数:bagging_fraction+bagging_freq(必须同时设置)、feature_fraction
(4)
min_data_in_leaf
、min_sum_hessian_in_leaf
## 01. train set and test set train_data = lgb.Dataset(dtrain[predictors],label=dtrain[target],feature_name=list(dtrain[predictors].columns), categorical_feature=dummies) test_data = lgb.Dataset(dtest[predictors],label=dtest[target],feature_name=list(dtest[predictors].columns), categorical_feature=dummies) ## 02. parameters param = { 'max_depth':6, 'num_leaves':64, 'learning_rate':0.03, 'scale_pos_weight':1, 'num_threads':40, 'objective':'binary', 'bagging_fraction':0.7, 'bagging_freq':1, 'min_sum_hessian_in_leaf':100 } param['is_unbalance']='true' param['metric'] = 'auc' ## 03. cv and train bst=lgb.cv(param,train_data, num_boost_round=1000, nfold=3, early_stopping_rounds=30) estimators = lgb.train(param,train_data,num_boost_round=len(bst['auc-mean'])) ## 04. test predict ypred = estimators.predict(dtest[predictors])
-
-
lightgbm
2019-10-23 23:53:30https://www.msra.cn/zh-cn/news/features/lightgbm-20170105https://www.msra.cn/zh-cn/news/features/lightgbm-20170105
-
LightGBM.jl:LightGBM.jl为Microsoft的LightGBM提供了高性能的Julia界面-源码
2021-02-04 02:10:50LightGBM.jl:LightGBM.jl为Microsoft的LightGBM提供了高性能的Julia界面 -
LightGBM 中文文档 LightGBM 是一个梯度 boosting 框架, 使用基于学习算法的决策树. 它是分布式的, 高效的, 装逼的, 它具有以下优势: 速度和内存使用的优化 减少分割增益的计算量 通过直方图的相减来进行进一步的...
-
android跳转!我的阿里春招之路分享,Android篇
-
android推送!最全的BAT大厂面试题整理,快来收藏!
-
企业培训效果评估表.doc
-
响应式编程入门与实战(Reactor、WebFlux、R2DBC)
-
阿piu传-文档批量上传客户端-原创力版
-
MMM 集群部署实现 MySQL 高可用和读写分离
-
韩国两成实体经济关门转型关门挖矿?
-
基于python的dango框架购物商城毕业设计毕设源代码使用教程
-
软件客户的需求权利与责任.mp3
-
MySQL 高可用工具 DRBD 实战部署详解
-
android点餐系统!看懂这些帮你轻松解决就业问题年薪50万不是梦!面试必问
-
三月招聘季,充电拿offer,珍贵面试资料泄露
-
智能停车场云平台(附vue+SpringBoot前后端项目源码)
-
easyexcel-2.1.1.jar
-
精益化的团队高效协作
-
老K说中台_技术领导力_老K(全网200w+阅读量文章合集).pdf
-
培训效果调查表.docx
-
三行Python代码,让数据预处理速度提高2到6倍
-
Unity ILRuntime框架设计
-
ubuntu下VS code关于ros的设置