我想了解feature_parallel
在LightGBMClassifier中的算法。它描述了传统的方法,以及LightGBM
打算如何改进它。
这两种方法如下(链接网站逐字):
特征并行的目的是将决策树中的“发现最佳分割”并行化。传统的特征并行程序是:
Feature_parallel in LightGBM:(问题文本粗体和斜体)
由于当#data很大时,特性并行不能很好地加快速度,所以我们做了一些小小的更改:不是垂直地划分数据,而是每个工作人员都保存完整的数据。因此,LightGBM不需要为数据的拆分结果进行通信,因为每个工作人员都知道如何拆分数据
LightGBM中的特征并行程序:(问题文本粗体斜体化)
此外,如果每个工作人员都保留整个数据集,那么它就能够创建整个估计器本身。什么是分布式学习?
发布于 2022-01-14 16:42:46
因此,如果您查看决策树是如何工作的,它会选择所有变量并对其执行拆分,以找到最佳的拆分。寻找最佳拆分的过程需要对每个变量进行迭代(假设colsubsample & rowsubsample为1),这是一个耗时的过程。
在GBM中,为每个变量找到最佳的分裂,并从每个变量中计算增益是并行的。由于每个节点都有完整的数据,因此在此过程中不进行通信,但是只计算了每一个特征增益,无论哪一个给出最佳增益值,数据都会被分割,然后再一次运行相同的进程。
然而,当#数据很大时,这种特征并行算法仍然存在“拆分”的计算开销。因此,当#数据很大时,最好使用数据并行。
这就是在大多数情况下,轻型GBM比GBM表现得更快的方式。
在传统方面:
在传统的workers.Other工作人员中,用最好的分割来执行拆分,然后根据接收到的数据将数据的分割结果发送给其他的工作人员。传统特征并行的缺点:具有计算开销,因为它不能加速“拆分”,其时间复杂度为O(#data)。因此,当#数据很大时,特性并行不能很好地加快速度。需要对拆分结果进行通信,这大约需要O(#data / 8) (一位对一个数据)。
此外,当您有大数据时,请阅读有关数据并行的内容。
https://datascience.stackexchange.com/questions/106989
复制相似问题