lightgbm使用手册——参数篇

[复制链接]
查看741 | 回复0 | 2023-8-23 11:46:54 | 显示全部楼层 |阅读模式
记载一下lgb的参数

有缺失再增补
LGB(LightGBM)是一种高效、分布式的梯度提拔树算法,具有训练速率快、内存占用少等长处。在使用LGB时,可以设置一些参数来优化模型的性能。
一些常用的LGB参数包罗:
1.boosting_typ

LGB的boosting_type参数决定了LGB使用的boosting方法,也就是构造决策树的方式。在选择boosting_type时,一般发起先尝试默认参数,即’gbdt’。如果必要加速训练速率而且数据集不是很大,可以尝试’rf’方法;如果必要更好的准确率,可以尝试’dart’或’goss’。
详细而言,差异的boosting_type参数对应的优缺点如下:


  • boosting_type=‘gbdt’:默认参数,基于梯度提拔决策树的方法,可以用于回归和分类问题,速率较快、准确度较高;
  • boosting_type=‘rf’:随机丛林的方式构造决策树,可以用于分类和回归问题,训练速率较快,但准确率略低;
  • boosting_type=‘dart’:dropout加了加性正则化的方法,训练时间较长,但可以或许取得较好的准确率,得当细调、调优;多了dropout_rate参数可以使用
  • boosting_type=‘goss’:去掉部分梯度较小的样本,可以加速训练速率,得当处置惩罚大数据集,训练时间会更少。
boosting_type的选择应该根据详细问题和数据集的性子进行抉择。
2.max_depth

max_depth决定了树的深度,即每个叶节点所到达的最大深度。
默认设置为-1,表现不限定树的深度。然而,如许的最大深度大概导致过拟合,因此必须警惕使用。
max_depth的选择必要思量到数据量、特性维度和连续特性的数量。在大多数情况下,发起设置max_depth为20或更少。 在数据量较小的情况下,通常可以设置较低的max_depth,以制止过分拟合。别的,当连续特性的数量较多时,也大概必要淘汰max_depth,以制止过拟合。
3.num_leaves

num_leaves参数控制了每个决策树的叶子节点数,num_leaves参数默认值为 31。
num_leaves值越大,模型的复杂度越高,但也轻易出现过拟合。
num_leaves值越小,模型的复杂度越低,但也轻易出现欠拟合。
4.min_child_samples:

min_child_samples是最小叶子节点样本数。min_child_samples 参数默认值为 20。它用于控制过拟合的情况,过大的值大概导致欠拟合,过小的值大概导致过拟合。
5.min_child_weight:

min_child_weight参数默认值为1。
它是最小子节点中的全部样本权重总和,当某个子节点的样本权重和小于min_child_weight时,该节点不会继承拆分。
如果这个值太小,那么模型就会过拟合;如果这个值太大,那么模型就会欠拟合,这个参数必要根据数据进行调解。
6.feature_fraction:

该参数控制在每一次树木生长时选择多少特性。常用的取值范围是0.5到1。较小的值可以淘汰过分拟合,较大的值可以增长模型的多样性。可以使用交叉验证来确定最符合的值。
7.bagging_fraction:

这个参数控制在每次迭代中,模型将使用多少数据。0.5到1是一个常见的取值范围,值越小,模型的多样性更强,越不轻易过分拟合。但是,如果拟合不敷,准确性也大概下降。
8.bagging_freq:

bagging_freq告诉模型思量每n次迭代进行子采样。比方,如果您将其设置为5,则每5个迭代中,模型才会思量子采样。淘汰子采样的频率可以提高准确性,但会增长训练时间。默认为0。
9.objective

LGB的objective参数根据详细问题而定,可从以下两个方向入手选择:

  • 回归问题:
    如果是回归问题,可以选择以下参数:


  • mean_squared_error:均方误差,实用于连续变量。
  • mean_absolute_error:绝对值误差,实用于连续变量,可以反抗非常值。
  • huber:是在均方误差宁静均绝对误差之间取得平衡的一种鲁棒损失函数,可以缓解非常值的影响。

  • 分类问题:
    如果是分类问题,可以选择以下参数:


  • binary:二分类函数,根据标签的种别进行分类。
  • multi-class(softmax):多分类函数,可以在多个种别之间进行选择,并且每个样本只属于一种分类。
  • multi-class(ova):多分类函数,每个二分类处置惩罚来推测每个种别(样本可以属于多个分类)。
10. metric

LGB(LightGBM)作为一种机器学习算法,有许多可供选择的评价指标,差异的评价指标实用于差异的场景和使命。以下是一些常用的LGB的评价指标及实在用场景:

  • 二分类使命:


  • binary_logloss: 对数损失函数,可用于训练二分类模型,并可以计算推测概率值。
  • auc: ROC曲线下的面积,常用于评估二分类模型的效果。

  • 多分类使命:


  • multi_logloss: 多分类的对数损失函数,对于多分类问题,必要设置num_class作为种别数量。
  • multi_error: 多分类的误差率,表现分类错误的样本数占总样本数的比例。

  • 回归使命:


  • l2: 均方误差,常用于回归问题。
  • rmse: 均方根误差,对于非常值较多的情况,发起使用此指标。
必要根据详细的使命选择符合的评价指标。
11.reg_alpha

LightGBM模型中的reg_alpha参数是一个正则化参数,用于控制模型中L1正则化项的强度。L1正则化是模型训练过程中用于处罚模型的复杂度,以防止过拟归并提高模型的泛化本事。
详细来说,reg_alpha参数控制L1正则化项的权重巨细,它的值越大,对模型的束缚越强,从而更有用地控制过拟合。reg_alpha参数的取值过大也大概导致欠拟合。
取值范围:
reg_alpha参数的取值范围为[0,∞)。
12.reg_lambda

reg_lambda是正则化参数,该参数用于控制模型复杂度,防止过拟合。它在目的函数中加入L2正则化处罚项,使得大的权重被缩小,从而控制模型的复杂度。默认值为0.
取值范围:一般情况下,reg_lambda的取值范围是[0,∞),表现正则化强度的水平。如果该参数为0,则不会有任何正则化影响。如果该参数设置得太大,则大概会导致在训练集上出现欠拟合。
13.subsample

LightGBM中subsample参数的默认值为1,即默认使用全量数据进行训练。subsample参数用于控制每次迭代时用于构建树模型的样本比例,取值范围为(0,1],表现使用的样本比例。当subsample=0.5时,每次树构建时将随机抽取50%的样本用于训练,这可以有用地制止过拟合问题。对于较大的数据集,可以适当减小subsample值,以提高训练速率。而对于较小的数据集,为了包管模型的泛化性能,一般发起将subsample设置为1,纵然用全量数据进行训练。
14.随机种子


  • seed:控制数据的随机排序和划分。默认为0,即每次运行时都会产生雷同的效果。
  • bagging_seed:控制bagging操纵的随机种子,用于天生差异的训练样本。默认为0。
  • feature_fraction_seed:控制特性选择过程中的随机种子,用于天生差异的特性。默认为0。
15.学习率learning_rate

learning_rate参数的默认值是0.1。learning_rate是梯度提拔算法中控制步长的参数,也称为学习率。它是梯度下降过程中更新每个模型的权重的速率。较小的学习率会导致模型必要更多的迭代次数才华收敛,但更大的学习率大概会导致模型不收敛或过拟合。
在LightGBM中,learning_rate取值范围一般是0.001到1之间,但也取决于数据集的巨细和质量。可以先试用较大的学习率调解其他参数,末了再用较小的学习率获得更优的性能。
16.迭代次数n_estimators

LightGBM中n_estimators参数默认值为100,表现迭代的次数(即树的数量)。
n_estimators的取值范围是正整数,通常在100-1000之间进行调解。增长树的数量可以提高模型的性能,但也会增长模型的计算时间。必要根据数据量和模型复杂度进行适当调解,以到达平衡性能和服从的目的。
当设定了early_stopping_rounds参数时,n_estimators的实际值将根据早期制止的情况进行调解。

来源:https://blog.csdn.net/zzpl139/article/details/129447516
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则