Machine learning num_在LightGBM中留下选择?

Machine learning num_在LightGBM中留下选择?,machine-learning,hyperparameters,lightgbm,Machine Learning,Hyperparameters,Lightgbm,是否有任何经验法则来初始化lightgbm中的num\u leaves参数。例如,对于1000特色数据集,我们知道使用10的tree depth,它可以覆盖整个数据集,因此我们可以相应地选择它,用于调优的搜索空间也会受到限制 但是在lightgbm中,我们如何粗略地猜测这些参数,否则在使用网格搜索方法时,它的搜索空间将相当大 任何关于选择此参数的直觉都会很有帮助。我遇到的最佳建议是在lightgbm github上。一如既往,这在很大程度上取决于您的数据 基于有限的kaggle经验,我个人的经验

是否有任何经验法则来初始化
lightgbm
中的
num\u leaves
参数。例如,对于
1000
特色数据集,我们知道使用
10
tree depth
,它可以覆盖整个数据集,因此我们可以相应地选择它,用于调优的搜索空间也会受到限制

但是在
lightgbm
中,我们如何粗略地猜测这些参数,否则在使用网格搜索方法时,它的搜索空间将相当大


任何关于选择此参数的直觉都会很有帮助。

我遇到的最佳建议是在lightgbm github上。一如既往,这在很大程度上取决于您的数据


基于有限的kaggle经验,我个人的经验法则是首先尝试
[10100]
范围内的值。但是如果你有一个很好的选择树深度的启发式方法,你总是可以使用它,并将
num_leaves
设置为
2^tree_depth-1
为什么
-1
,为什么不仅仅是
2^tree_depth
?深度一的树有一个叶/节点,深度二-(1+2)叶,深度三-(1+2+4)。剩下的你认为叶子应该是指终端节点,所以深度为n的树可以有2^n个叶子/终端节点,和2^n-1个非终端节点。证实了我的理解。但是我不确定2^n-1 num_叶子背后的直觉。我看不出页面在哪里证实了叶子是终端节点的假设。树的第n层中的叶子数是2^(n-1),但这与
num_叶子
Ah无关,我认为它们在该声明中没有明确说明。您可以在该段末尾看到,他们实际上引用了2**7-1作为示例。在整个文档中,您将看到最大值是奇数而不是偶数。另一个例子是Laurae的参数docs:->
最大叶数
:“在LightGBM上,最大叶数必须与最大深度一起调整。要获得xgboost行为,请将最大叶数设置为2^depth-1。”您可以通过构建深度为1的树并绘制来验证您的假设