目录
- LightGBM简介
- GOSS算法介绍
- EFB算法介绍
3.1 捆绑簇生成算法
3.2 互斥特征合并算法 - LightGBM参数说明
- 补充:直方图算法介绍
- 参考文献及链接
1. LightGBM简介
LightGBM是一个基于决策树学习算法的快速的、支持分布式的、高性能的梯度提升框架。其主要具有以下优点:
- 速度快
- 基于直方图算法,直方图做差,加速2倍
- 直接支持类别特征
- bagging
- feature sub-sampling
- 带深度限制的leaf-wise的树的生长方式
- 占用内存小
- 支持分布式
- 更好的准确率
- 支持GPU并行学习
- 能够处理大规模数据
- 支持多种并行学习方式:数据并行、特征并行和投票并行
- 支持DART(drop out),避免过拟合
2. GOSS算法介绍
1)算法思想
梯度大的样本贡献更大的信息增益,因此在采样时,为了保证信息增益的精度,保留大梯度的样本,而对小梯度样本进行随机采样
2)输入
- 训练集I
- 大梯度样本采样率 a;小梯度样本采样率 b;权重更新比率
$fact=\frac{1-a}{b}$
- 损失函数 loss
- 弱学习器 L
- 学习迭代轮数 d
- 大梯度样本数topN=a*len(I); 小梯度样本数randN=b*len(I)
- 样本的权重向量 w
3)输出
- 训练好的集成模型 models
4)算法过程及注释说明
3. EFB算法介绍
3.1 捆绑簇生成算法
1) 算法思想(类比聚类思想)
冲突小的特征在同一捆绑簇中(同一条数据中很少出现两个特征值均为非零值即为冲突小)
冲突大的特征在不同的捆绑簇中
2) 输入
- 特征集合 F
- 最大冲突数阈值 K
- 图对象 G(节点表示特征,边表示冲突程度)
- 按degree排序的节点集合
$searchOrder \leftarrow G.sortByDegree()$
- 特征冲突数集合
$bundlesConflict\leftarrow$
{}
3) 输出
- 捆绑簇集合 bundles(每个元素为一个捆绑簇)
4) 算法过程及注释
3.2 互斥特征合并算法(基于直方图算法)
1) 算法思想
基于直方图算法,将不同特征的特征值离散化后,通过为特征添加一个偏置offset来区别开不同特征的特征值,从而将这些不同特征合并为一个合并特征。
2) 输入
- 训练集数据数 numData
- 一个捆绑簇的特征集合 F
- 一个捆绑簇中bins的取值范围 binRanges
- 一个合并特征的总bins数 totalBin
3) 输出
- 合并特征的特征图,具体包括 newBin和binRanges
4) 算法过程及注释