一、有关leaf_wise tree的参数
Parameters | 含义 | 用法 |
num_leaves | 这是控制树模型复杂度的主要参数,理论上,我们可以设置num_leaves = 2^(max_depth)来获得与深度树相同数量的叶子。然而,这种简单的转换在实践中并不好。原因是,对于固定数量的叶子,叶型树通常比深度型树要深得多。无约束深度会引起过拟合。因此,当尝试优化num_leaves时,我们应该让它小于2^(max_depth)。例如,当max_depth=7时,深度树可以获得很好的精度,但是将num_leaves设置为127可能会导致过拟合,将其设置为70或80可能会获得比设置为70或80更好的精度 | 一般设在【2-70】 |
min_data_in_leaf | 这是防止叶状树过度拟合的一个非常重要的参数。它的最优值取决于训练样本的数量和num_leaves。将它设置为一个大的值可以避免树长得太深,但是可能会导致不合适。实际上,将其设置为数百或数千对大型数据集来说就足够了。叶子可能具有的最小记录数。 | |
max_depth | ||
|
二、如果为了更快的速度
Parameters | 含义 | 用法 |
bagging_fraction; bagging_freq | ||
feature_fraction | ||
max_bin | feature 将存入的bin的最大数量 | 4-100 |
三、如果为了更好的精度
Parameters | 含义 | 用法 |
1、大的max_bin,但可能会造成overfitting | ||
2、使用小的learning_rate和大的num_iteration | ||
3、使用大的num_leaves(可能导致过拟合) | 4-100 | |
4、使用更大的train data |
四、为了防止过拟合
Parameters | 含义 | 用法 |
1、较小的max_bin | ||
2、使用小的num_leaves | ||
3、使用min_data_in_leaf 和 min_sum_hessian_in_leaf | 4-100 | |
4、使用使用bagging_fraction和bagging_freq设置bagging | ||
5、通过设置feature_fraction来用特征子空间 | ||
6、大训练数据集 | ||
7、用lambda_l1 , lambda_l2和min_gain_to_split来正则化 | ||
8、通过设置 max_depth来避免长成过深的树 |