LightGBM参数

LightGBM的优势。

  1. 更快的训练速度和更高的效率: LightGBM使用基于直方图的算法。例如,它将连续的特征值分桶(buckets)装进离散的箱子(bins),这是的训练过程中变得更快。

  2. 更低的内存占用:使用离散的箱子(bins)保存并替换连续值导致更少的内存占用。

  3. 更高的准确率(相比于其他任何提升算法) : 它通过leaf-wise分裂方法产生比level-wise分裂方法更复杂的树,这就是实现更高准确率的主要因素。然而,它有时候或导致过拟合,但是我们可以通过设置 max-depth 参数来防止过拟合的发生。

  4. 大数据处理能力: 相比于XGBoost,由于它在训练时间上的缩减,它同样能够具有处理大数据的能力。

  5. 支持并行学习

 

LightGBM的重要参数

  • task: 默认值=train,可选项=train,prediction;指定我们希望执行的任务,该任务有两种类型:训练 和 预测;

  • application: 默认值=regression,type=enum,options=options;

    • regression: 执行回归任务;

    • binary:二分类;

    • multiclass:多分类;

    • lambdarank:lambrank应用;

  • data: type=string;training data,LightGBM将从这些数据中进行训练;

  • num_iterations: 默认值为100,类型为int。表示提升迭代次数,也就是提升树的棵树;

  • num_leaves: 每个树上的叶子数,默认值为31,类型为int;

  • device: 默认值=cpu;可选项:cpu,gpu。也就是我们使用什么类型的设备去训练我们的模型。选择GPU会使得训练过程更快;

  • mindatain_leaf: 每个叶子上的最少数据;

  • feature_fraction: 默认值为1;指定每次迭代所需要的特征部分;

  • bagging_fraction: 默认值为1;指定每次迭代所需要的数据部分,并且它通常是被用来提升训练速度和避免过拟合的。

  • mingainto_split: 默认值为1;执行分裂的最小的信息增益;

  • max_bin: 最大的桶的数量,用来装数值的;

  • mindatain_bin: 每个桶内最少的数据量;

  • numthreads: 默认值为OpenMPdefault,类型为int。指定LightGBM算法运行时线程的数量;

  • label: 类型为string;指定标签列;

  • categorical_feature: 类型为string;指定我们想要进行模型训练所使用的特征类别;

  • num_class: 默认值为1,类型为int;仅仅需要在多分类的场合。

 

6.1 为了最好的拟合

  • numleaves:这个参数是用来设置组成每棵树的叶子的数量。numleaves 和 maxdepth理论上的联系是: numleaves = 2^(maxdepth)。然而,但是如果使用LightGBM的情况下,这种估计就不正确了:因为它使用了leafwise而不是depthwise分裂叶子节点。因此,numleaves必须设置为一个小于2^(maxdepth)的值。否则,他将可能会导致过拟合。LightGBM的numleave和max_depth这两个参数之间没有直接的联系。因此,我们一定不要把两者联系在一起。

  • mindatain_leaf : 它也是一个用来解决过拟合的非常重要的参数。把它的值设置的特别小可能会导致过拟合,因此,我们需要对其进行相应的设置。因此,对于大数据集来说,我们应该把它的值设置为几百到几千。

  • max_depth: 它指定了每棵树的最大深度或者它能够生长的层数上限。

6.2 为了更快的速度

  • bagging_fraction : 它被用来执行更快的结果装袋;

  • feature_fraction : 设置每一次迭代所使用的特征子集;

  • maxbin : maxbin的值越小越能够节省更多的时间:当它将特征值分桶装进不同的桶中的时候,这在计算上是很便宜的。

6.3 为了更高的准确率

  • 使用更大的训练数据集;

  • num_leaves : 把它设置得过大会使得树的深度更高、准确率也随之提升,但是这会导致过拟合。因此它的值被设置地过高不好。

  • maxbin : 该值设置地越高导致的效果和numleaves的增长效果是相似的,并且会导致我们的训练过程变得缓慢。

你可能感兴趣的:(机器学习)