基于遗传算法改进LightGBM
背景介绍
LightGBM作为新流绍行起来的算法模型,其发布时间短,相对前沿,且LightGBM模型较复杂,国内对LightGBM的研究尚处于应用阶段,而针对LightGBM进行改进的相关工作较少。由于参数对模型性能表现有着决定性的影响,加之LightGBM模型参数众多,因此优化LightGBM预测模型的参数对于提升其在景区产品销量预估的表现尤为重要。但模型参数的调整往往依赖于人工经验和迭代试错,且LightGBM的参数众多、意义多样(如表4-7),使得调整参数工作就显得尤为繁琐和庞大,极可能落入局部最优的调参范围,事倍功半,精度提升不高。此外,最优参数组极大程度依赖于训练样本数据,噪声的存在会影响模型学习和演算进程,降低训练模型的泛化能力和稳定性。
LightGBM部分参数情况
参数 |
默认取值 |
取值范围 |
说明 |
num_boost_round |
-- | [10, +] |
训练迭代次数
|
learning_rate |
0.01 | (0, 1) |
学习步长 |
max_depth |
5 | [2, +] |
树的最大深度 |
min_child_weight |
5 | [1, +] | 最小样本权重和 |
bagging_fraction |
1 | (0, 1] |
创建树的样本采样比例 |
feature_fraction |
1 | (0, 1] |
创建树时特征采样比例 |
early_stopping_round |
-- | [10, +] | 提早终止训练,防止过拟合 |
lambda |
0 | {0 , 1} |
指定L2正则化 |
alpha |
0 | {0 , 1} |
指定L1正则化 |
... |
... | ... | ... |
然而利用遗传算法GA的优势可以很好改善这一不足。遗传算法(Genetic Algorithm, GA)是基于进化理论和种群遗传理论,通过计算机模拟生物界自然选择和遗传的机制,利用遗传复制、交叉变异的思想,进化得到适应于指定环境下的最优成果,具有随机性、并行性和全局性,能自动的积攒全局范围内的空间信息,自适应的达到逼近最优值的状态。遗传仿生算法的出现,使其迅速在各领域如目标优化、调度方案、模式识别、机器学习等得到广泛的应用,成为了一种鲁棒性强、效率高的优化方法,
其基本算法流程如图: