本文介绍了LightGBM算法相关内容。
简介
LightGBM(Light Gradient Boosting Machine)是一个基于决策树算法的分布式梯度提升框架。设计初衷是提供一个快速、高效、低内存、高准确度、支持并行和大规模数据处理的工具。LightGBM可以减小数据对内存的使用、减小通信代价以及提升多机并行时的效率,在数据计算上实现线性加速。
使用场景
LightGBM是一个算法框架,包括GBDT模型、随机森林和逻辑回归等模型。通常应用于二分类、多分类和排序等场景。
例如:在个性化商品推荐场景中,通常需要做点击预估模型。使用用户过往的行为(点击、曝光未点击、购买等)作为训练数据,来预测用户点击或购买的概率。根据用户行为和用户属性提取一些特征,包括:
- 类别特征(Categorical Feature):字符串类型,如性别(男/女)。
- 物品类型:服饰、玩具和电子等。
- 数值特征(Numrical Feature):整型或浮点型,如用户活跃度或商品价格等。
参数说明
下表中的参数为创建模型CREATE MODEL
语法中model_parameter
参数的取值,您可以根据当前需求选择对应的参数。
参数 | 说明 |
---|---|
boosting_type | 弱学习器的类型。取值如下:
说明 设置该参数值时,需要使用单引号将参数值包裹起来。例如:boosting_type='gbdt'
|
objective | 学习任务及相应的学习目标。取值如下:
|
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')