首页 > 其他分享 >监督学习集成模型——LightGBM

监督学习集成模型——LightGBM

时间:2022-08-25 20:27:00浏览次数:80  
标签:集成 结点 LightGBM 特征 模型 XGBoost 直方图 算法

LightGBM的全称为Light Gradient Boosting Machine,即轻量的梯度提升机,由微软在其论文“LightGBM: A Highly Efficient Gradient Boosting Decision Tree”中提出,作为与XGBoost并驾齐驱的SOTA Boosting算法,LightGBM在各种顶级解决方案中同样屡见不鲜。LightGBM本质上仍属于GBDT算法,一种针对XGBoost缺陷的改进版本,使得GBDT算法系统更轻便、更高效,能够做到又快又准。
image

一、XGBoost可改进的点

XGBoost通过预排序(对所有特征都按照特征的数值进行排序)的算法来寻找特征的最佳分裂点,虽然预排序算法能够准确找出特征的分裂点,但该方法占用空间太大,在数据量和特征量都比较多的情况下,会严重影响算法性能。

XGBoost寻找最佳分裂点的算法复杂度可以估计为:

复杂度=特征数量×特征分裂点的数量×样本数量

既然XGBoost的复杂度是由特征数量、特征分裂点的数量和样本数量所决定的,那么LightGBM的优化自然可以从这三个方向来考虑。

二、LightGBM原理

跟XGBoost一样,LightGBM也是GBDT算法框架的一种工程实现,不过更快速、更高效。下面分别从直方图算法、单边梯度抽样、互斥特征捆绑算法以及leaf-wise生长策略等方向来解释LightGBM。

2.1 直方图算法

为了减少特征分裂点数量和更加高效地寻找最佳特征分裂点,LightGBM区别于XGBoost的预排序算法,采用直方图算法寻找最佳特征分裂点。主要思路是将连续的浮点特征值离散化为k个整数并构造一个宽度为k的直方图。对某个特征数据进行遍历的时候,将离散化后的值用为索引并作为直方图的累积统计量。遍历完一次后,直方图便可累积对应的统计量,然后根据该直方图寻找最佳分裂点。

image

直方图算法本质上是一种数据离散化和分箱(分桶)操作,虽然谈不上特别新颖的优化设计,但确实速度快性能优,计算代价和内存占用都大大减少。

直方图的另一个好处在于差加速。一个叶子结点的直方图可由其父结点的直方图与其兄弟结点的直方图作差得到,这也可以加速特征结点分裂。

image

直方图算法对应的是特征分裂点的优化。

2.2 单边梯度抽样

单边梯度抽样(gradient-based one-side sampling,GOSS)算法是LightGBM从减少样本的角度进行优化而设计的算法,是LightGBM的核心原理之一。

单边梯度抽样算法的主要思路是从减少样本的角度出发,将训练过程中大部分权重(GBDT算法体系中使用样本梯度来代替样本权重)较小的样本剔除,仅对剩余样本数据计算信息增益,它是一种在减少数据量和保证精度上平衡的算法。

GOSS的基本做法是先将需要进行分裂的特征按绝对值大小降序排序,取绝对值最大的前a%个数据,假设样本大小为n,在剩下的(1−a)%个数据中随机选择b%个数据,将这b%个数据乘以一个常数(1−a)/b,这种做法会使得算法更加关注训练不够充分的样本,并且原始的数据分布不会有太大改变。最后使用a+b个数据来计算该特征的信息增益。

GOSS算法主要从减少样本的角度对GBDT进行优化。丢弃梯度较小的样本并且在不损失太多精度的情况下提升模型的训练速度,这是LightGBM速度较快的原因之一。

GOSS对应的是样本量的算法优化。

2.3 互斥特征捆绑算法

高维度的数据往往是稀疏的,这种稀疏性启发我们设计一种无损的方法来减少特征的维度。

互斥特征捆绑(exclusive feature bundling,EFB)算法通过将两个互斥的特征捆绑为一个特征,在不丢失特征信息的前提下,减少特征数量(降维),从而加速模型训练。

所谓特征互斥,即两个特征不会同时为非零值,这一点跟分类特征的one-hot表达有点类似。互斥特征捆绑算法的关键问题有两个:一个是如何判断将哪些特征进行绑定,另一个就是如何将特征进行绑定,即绑定后的特征如何取值。

针对第一个问题,EFB算法将其转化为图着色问题(graph coloring problem)来求解。其基本思路是将所有特征看作图的各个顶点,用一条边连接不相互独立的两个特征,边的权重则表示两个相连接的特征的冲突比率,需要绑定在一起的特征就是图着色问题中要涂上同一种颜色的点(特征)。

第二个问题是要确定绑定后的特征如何进行取值,其关键在于能够将原始特征从合并后的特征中分离,即绑定到一个特征后,仍然可以从这个绑定的bundle里面识别出原始特征。EFB算法针对该问题尝试从直方图的角度来处理,具体做法是将不同特征值分到绑定的bundle中不同的直方图“箱子”中,通过在特征取值中加一个偏置常量来进行处理。

互斥特征捆绑算法针对的是特征的优化。

2.4 leaf-wise生长策略

LightGBM提出了区别于XGBoost的按层生长的叶子结点生长方法,即带有深度限制的按叶子结点(leaf-wise)生长的决策树生长方法

XGBoost采用按层生长的level-wise算法,好处是可以多线程优化,也方便控制模型复杂度,且不易过拟合,缺点是不加区分地对待同一层所有叶子结点,大部分结点分裂和增益计算不是必需的,产生了多余的计算开销。

LightGBM提出了按叶子结点生长的leaf-wise算法。

leaf-wise算法:每次从当前所有叶子中找到分裂增益最大(一般也是数据量最大)的一个叶子,然后分裂,如此循环。

leaf-wise精度更高且更高效,能够节约不必要的计算开销。

但可能会长出比较深的决策树,产生拟合。为防止某一结点过分生长,leaf-wise加上一个深度限制机制,能够在保证精度的同时一定程度上防止过拟合。

image

除了以上四点改进算法外,LightGBM在工程实现上也有一些改进和优化,比如可以直接支持类别特征(不需要再对类别特征进行one-hot处理)、高效并行和cache(缓存)命中率优化等。

标签:集成,结点,LightGBM,特征,模型,XGBoost,直方图,算法
From: https://www.cnblogs.com/wkfvawl/p/16625580.html

相关文章

  • 设备3D模型全景网上虚拟交互展厅强化客户合作意愿
    企业展厅是企业对外展示和品牌传播的重要平台,线下实体展厅被迫暂停后,企业品牌触达受众面大大收缩,全景网上数字虚拟展厅基于网络数字空间将企业文化、发展轨迹、产品案......
  • 虚拟人头像模型制作落地场景逐渐增多-深圳华锐视点
    随着web3.0在国外走热,以及越来越多的国内外科技巨头推出元宇宙产品,中国虚拟人产业已经从概念级转向产业级应用。,政策加持、产业链完善、用户人群增长、资本追逐,这四大......
  • KeyShot Pro for Mac(3D模型渲染软件)中文版
    KeyShotProformac是一款功能强大的3D模型渲染软件,keyshort渲染漆器帮助你更好的创建3D渲染动画。其中KeyShot的GPU模式可用于实时渲染和本地渲染输出,一键访问GPU资源,从......
  • AE三维模型插件Video Copilot Element 3D mac
    Element3DMac破解版主要用于创建运动设计和视觉FX,VideoCopilotElement3Dformac破解版提供组对称创建模式、动态组文件夹反射、哑光反射模式等强大的功能,新版本的ele......
  • BOM 浏览器对象模型
    BOM即浏览器对象模型(browserobjectmodel),其提供了一系列接口供开发者使用JavaScript与浏览器窗口进行交互。作用:BOM提供的是与浏览器窗口交互的能力,其包含了一些处理......
  • vue集成elementUI
    vue集成elementUI1.使用npm安装elementui模块:指令:npm/cnpminstallelement-ui–S2.安装按需引入的插件:指令:npminstallbabel-plugin-component-D3.设置.babe......
  • 系统集成项目管理工程师-进度管理
    一、缩短活动工期的方法  1.关键活动的调整(快速跟进);  2.非关键活动的调整;  3.投入更多的资源以加速活动进程(赶工);  4.指派经验更丰富的人去完成或帮助完成......
  • 规范:数据埋点集成使用说明
    1.获取和引入 TrackLogData SDK1.1.异步方式(推荐)引入场景:通常情况下使用。1.1.1.本地手动指定sdk版本(vue SPA项目)最新版本: //sa.a5.petrochina/stats/tld.glob......
  • 决策树与集成
    DecisionTree目录DecisionTreeClassificationTreeRegressionTreeRegularizationProsandconsAssembleMethodBaggingBoostingTakeawayGreedy,Top-down,Recurrent......
  • 盒子模型、 浮动布局、定位属性、 z-index、JavaScript基础语法
    今日内容概要盒子模型浮动布局定位属性z-indexJavaScript基础语法今日内容详细盒子模型所有的标签都可以看成是一个快递盒1.外边距(margin):指标签之间的距离(......