天天看点

Lightgbm调参经验

一周前开始接触Lightgbm,关于它的原理和主要思想很多地方都有,这里就不再赘述。这篇博文是我在参加天池数据挖掘比赛时的Lightgbm调参经验总结,希望对后续的工作有帮助。

1. 数据特征选择

除了数据集中的基本数据特征外,很多时候还需要从基本数据特征中通过统计或组合获得新的特征,这时候获得的新特征与原来的基本数据特征之间存在着相关性。新特征可能作为基本特征的补充更好地划分数据集,可能与原特征划分数据集的能力差不多,也可能较原特征的划分能力强,这时候我们应该根据实验结果考虑是否选择特征。

当新特征可以作为原特征的补充更好地划分数据集时,这个特征是应该保留的。其他情况则需要进行进一步的实验才能确定。

2. Lightgbm参数设置

Lightgbm是基于决策树的分布式梯度提升框架,以选取最大信息增益作为特征选择的目标。

它最主要的参数有:

objective='binary'  #目标为二分类

num_leaves = 16  # 决策树叶子节点数

(Lightgbm用决策树叶子节点数来确定树的复杂度,而XGboost用max_depth确定树的复杂度)

num_threads=8 #最大线程数

learning_rate=0.05 #学习率

subsample=0.9 # 样本子集比例

n_estimators=1000 #最大迭代数

其中,num_leaves的设置与数据集特征总数有关,num_leaves尽量小于完全二叉树的叶子节点数,否则容易过拟合。

最大迭代数不必设置过大,可以在进行一次迭代后,根据最佳迭代数设置。

3.后续的目标

学习集成方法与深度神经网络,设计求两个类别之间距离的函数。

这里发现一篇写得不错的博文可以参考(分分钟带你杀入Kaggle Top 1%)