今天在学习的时候由Datawhale 推荐一篇LightGBM的模型介绍博客写得非常棒。加之我今天的笔记也没有更好的内容来记录,所以就索性转载一波优秀的博客!!
声明: 本文内容转载自白话机器学习算法理论+实战番外篇之LightGBM
LightGBM, 2017年由微软提出,是GBDT模型的另一个进化版本, 主要用于解决GBDT在海量数据中遇到的问题,以便更好更快的用于工业实践中。从 LightGBM 名字我们可以看出其是轻量级(Light)的梯度提升机器(GBM), 所以面对大规模数据集,它依然非常淡定,跑起来更加轻盈。
谈到竞赛中的神器,我们难免又想到了xgboost, 同是神器, 既然有了一个xgboost, 为啥还要出个Lightgbm呢?所谓既生瑜何生亮, 难道Lightgbm相对于xgboost会有什么优势吗? 那是当然, LightGBM在xgboost的基础上进行了很多的优化, 可以看成是XGBoost的升级加强版,它延续了xgboost的那一套集成学习的方式,但是它更加关注模型的训练速度,相对于xgboost, 具有训练速度快和内存占用率低的特点。对于Lightgbm, 重点就是两个字:要快,快,还是快! 基于这些优势,lightGBM现在不管是在工业界和竞赛界,都混的越来越风生水起,名头大震, 那么LightGBM到底是如何做到更快的训练速度和更低的内存使用的呢? 在xgboost上做出了哪些优化策略呢? LightGBM和xgboost到底有何不同呢? LightGBM又是如何来解决实际问题的呢? 下面就拿好板凳,听我娓娓道来吧 😉
当然既然是基于xgboost进行的优化版本,所以这篇文章依然会看到xgboost的身影,以对比的方式进行学习,有利于加深对算法的理解。 由于这个算法我也是刚接触,可能有些地方会理解不当或者有些细节描述不到,欢迎留言指出,这篇文章只是抛砖引玉,明白基本原理之后建议去读原文。
大纲如下:
LightGBM? 我们还得先从xgboost说起(看看xgboost存在的问题以及可以改进的地方)
LightGBM的直方图算法(确实和xgboost的不一样)
LightGBM的两大先进技术(单边梯度抽样GOSS和互斥特征捆绑EFB)
LightGBM的生长策略(基于最大深度的Leaf-wise)
LightGBM的工程优化(类别特征支持与并行化)
LightGBM的实战应用(分为基础使用和调参)
OK, Let’s go!