本文介绍了LightGBM算法相关内容。

简介

LightGBM(Light Gradient Boosting Machine)是一个基于决策树算法的分布式梯度提升框架。设计初衷是提供一个快速、高效、低内存、高准确度、支持并行和大规模数据处理的工具。LightGBM可以减小数据对内存的使用、减小通信代价以及提升多机并行时的效率,在数据计算上实现线性加速。

使用场景

LightGBM是一个算法框架,包括GBDT模型、随机森林和逻辑回归等模型。通常应用于二分类、多分类和排序等场景。

例如:在个性化商品推荐场景中,通常需要做点击预估模型。使用用户过往的行为(点击、曝光未点击、购买等)作为训练数据,来预测用户点击或购买的概率。根据用户行为和用户属性提取一些特征,包括:
  • 类别特征(Categorical Feature):字符串类型,如性别(男/女)。
  • 物品类型:服饰、玩具和电子等。
  • 数值特征(Numrical Feature):整型或浮点型,如用户活跃度或商品价格等。

参数说明

下表中的参数为创建模型CREATE MODEL语法中model_parameter参数的取值,您可以根据当前需求选择对应的参数。

参数 说明
boosting_type 弱学习器的类型。取值如下:
  • gbdt(默认):使用基于树的模型进行计算。
  • gblinear:使用线性模型进行计算。
  • rf:使用随机森林模型进行计算。
  • dart:使用dropout技术删除部分树,防止过拟合。
  • goss:使用单边梯度抽象算法进行计算。速度快,但是可能欠拟合。
说明 设置该参数值时,需要使用单引号将参数值包裹起来。例如:boosting_type='gbdt'
objective 学习任务及相应的学习目标。取值如下:
  • binary(默认):二分类。
  • regression:使用L2正则项回归模型。
  • regression_l1:使用L1正则项回归模型。
  • multiclass:多分类。
num_leaves 叶子的个数。默认为128个。
max_depth 树的最大深度。默认值为7。
说明 如果设置为-1,则表示不对树的深度做限制。但为防止过拟合,建议合理设置该值。

示例

创建模型与模型离线训练
/*polar4ai*/
CREATE MODEL airline_gbm WITH
(model_class = 'lightgbm',
x_cols = 'Airline,Flight,AirportFrom,AirportTo,DayOfWeek,Time,Length',
y_cols='Delay',model_parameter=(boosting_type='gbdt'))
AS (select * from db4ai.airlines)
模型预测
/*polar4ai*/
select Airline FROM PREDICT(MODEL airline_gbm,
select * from db4ai.airlines limit 20) WITH
(x_cols = 'Airline,Flight,AirportFrom,AirportTo,DayOfWeek,Time,Length',
 y_cols='Delay')