记一次LightGBM-GBDT参数调整经历

简介: 记一次LightGBM-GBDT参数调整经历 调整原因:项目要从有验证集的训练方式转变为无验证集的训练方式。 问题:有验证集的训练方式可以通过验证集earlystop来控制训练的过拟合问题,换成无验证集的训练方式后,无法继续通过使用earlystop这种方式来减少过拟合了,需要增强其他的正则。

记一次LightGBM-GBDT参数调整经历

调整原因:项目要从有验证集的训练方式转变为无验证集的训练方式。

问题:有验证集的训练方式可以通过验证集earlystop来控制训练的过拟合问题,换成无验证集的训练方式后,无法继续通过使用earlystop这种方式来减少过拟合了,需要增强其他的正则。

项目使用工具包:LightGBM,树模型为GBDT

相关的原理这里不做过多的介绍,上面的文档以及网络上资源很多,这里主要涉及参数调整实录。

官方文档给的建议:

lightgbm的参数有很多:

可以针对性的看一下

over-fitting

WX20190509_195303_2x

可以看到参数有好几个可供调整,但针对不同的树,调整的参数不一样。

这里是调节GBDT树,选的参数有三个:

  • lambda_l2: l2 regularization;
  • min_data_in_leaf:minimal number of data in one leaf;
  • bagging_fraction: this will randomly select part of data without resampling;

三个参数分别控制L2正则,一个叶子中数据最少量,随机采样(相当于剪枝)

参数仿真

1.lambda_l2

lambda_value train(auc) valid(abc)
Early stop 0.0 0.7375 0.6544
0.1 0.742 0.6540
0.2 0.7249 0.6544
0.3 0.7653 0.6557
0.4 0.7883 0.6586
0.5 0.764 0.6566
0.35 0.7517 0.6565
0.38 0.7914 0.6561

2.min_data_in_leaf

min_data_in_leaf value train valid
early stop 20 0.7375 0.6544
200 0.77433 0.6592
500 0.7694 0.6628
1000 0.76372 0.6646
2000 0.75665 0.6622
3000 0.7564 0.66335
20000 0.7482 0.661

3.bagging_fraction

bagging_fraction value train valid
early stop 1.0 0.7375 0.6544
0.9 0.7375 0.6544
0.8 0.7375 0.6544

从上述实验中可以看到,lambda_l2和min_data_in_leaf有效果,而bagging_fraction无效果

合起来实验

lambda value, min data in leaf train test
0.1,1000 0.7677 0.661708
0.1,500 0.772 0.662445
0.1, 200 0.776361 0.6585
0.4,200 0.7755 0.656514
0.4,500 0.7723 0.66195
0.4, 1000 0.7679 0.66207

最终选定参数为lambda_l2=0.1min_data_in_leaf=500

总结

  • lambda_l2和min_data_in_leaf对过拟合有比较明显的效果,而bagging_fraction效果不大;
  • min_data_in_leaf的值越大,仿真越慢,一般是几百至几千;
  • lightGBM可调参数很多,可进行不断的尝试;
目录
相关文章
|
7天前
|
机器学习/深度学习 算法
R语言非参数方法:使用核回归平滑估计和K-NN(K近邻算法)分类预测心脏病数据
R语言非参数方法:使用核回归平滑估计和K-NN(K近邻算法)分类预测心脏病数据
18 0
|
7天前
R语言RStan贝叶斯示例:重复试验模型和种群竞争模型Lotka Volterra2
R语言RStan贝叶斯示例:重复试验模型和种群竞争模型Lotka Volterra
10 0
|
7天前
|
编译器 Python Windows
R语言RStan贝叶斯示例:重复试验模型和种群竞争模型Lotka Volterra1
R语言RStan贝叶斯示例:重复试验模型和种群竞争模型Lotka Volterra
16 0
|
1月前
|
机器学习/深度学习 算法 搜索推荐
Catboost算法助力乳腺癌预测:Shap值解析关键预测因素
Catboost算法助力乳腺癌预测:Shap值解析关键预测因素
58 1
|
2月前
|
机器学习/深度学习 算法 Python
探索XGBoost:参数调优与模型解释
探索XGBoost:参数调优与模型解释
73 2
|
4月前
|
机器学习/深度学习 运维 算法
高斯混合模型:GMM和期望最大化算法的理论和代码实现
高斯混合模型(gmm)是将数据表示为高斯(正态)分布的混合的统计模型。这些模型可用于识别数据集中的组,并捕获数据分布的复杂、多模态结构。
76 0
|
5月前
|
机器学习/深度学习
家用电器功率预测:基于LGB knn 随机森林 决策树 详细调参 的家用电器功率预测 完整代码+数据 可直接运行 毕业设计
家用电器功率预测:基于LGB knn 随机森林 决策树 详细调参 的家用电器功率预测 完整代码+数据 可直接运行 毕业设计
25 0
|
6月前
|
机器学习/深度学习 算法 数据挖掘
【数据科学】Scikit-learn[Scikit-learn、加载数据、训练集与测试集数据、创建模型、模型拟合、拟合数据与模型、评估模型性能、模型调整]
【数据科学】Scikit-learn[Scikit-learn、加载数据、训练集与测试集数据、创建模型、模型拟合、拟合数据与模型、评估模型性能、模型调整]
|
11月前
|
机器学习/深度学习 算法
【机器学习】分类模型评价指标(混淆矩阵、ROC)(已修改,放心看)
【机器学习】分类模型评价指标(混淆矩阵、ROC)(已修改,放心看)
146 0
|
12月前
|
传感器 Serverless
基于Bayes估计的数据融合一般步骤
基于Bayes估计的数据融合一般步骤
105 0