首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >理解feature_parallel分布式学习算法在LightGBMClassifier中的应用

理解feature_parallel分布式学习算法在LightGBMClassifier中的应用
EN

Data Science用户
提问于 2022-01-12 14:10:00
回答 1查看 134关注 0票数 1

我想了解feature_parallelLightGBMClassifier中的算法。它描述了传统的方法,以及LightGBM打算如何改进它。

这两种方法如下(链接网站逐字):

传统Feature_parallel:

特征并行的目的是将决策树中的“发现最佳分割”并行化。传统的特征并行程序是:

  1. 垂直划分数据(不同的机器有不同的特征集)。
  2. 工作人员在本地特征集上查找本地最佳拆分点{特征、阈值}。
  3. 沟通当地最好的分裂彼此,得到最好的一个。
  4. 具有最佳拆分的员工执行拆分,然后将数据的拆分结果发送给其他员工。

Feature_parallel in LightGBM:(问题文本粗体和斜体)

由于当#data很大时,特性并行不能很好地加快速度,所以我们做了一些小小的更改:不是垂直地划分数据,而是每个工作人员都保存完整的数据。因此,LightGBM不需要为数据的拆分结果进行通信,因为每个工作人员都知道如何拆分数据

LightGBM中的特征并行程序:(问题文本粗体斜体化)

  1. 工作人员在本地特征集上查找本地最佳拆分点{特征、阈值}。(为什么叫它本地?因为它是在整个数据上找到的,这是全局最好的拆分)
  2. 沟通当地最好的分裂彼此,得到最好的一个。(但是,前面提到过,因此,LightGBM不需要为数据的拆分结果进行通信,因为每个工作人员都知道如何拆分数据)
  3. 表现最好的分裂。(我们不是已经有了最好的分手了吗?)

此外,如果每个工作人员都保留整个数据集,那么它就能够创建整个估计器本身。什么是分布式学习?

EN

回答 1

Data Science用户

发布于 2022-01-14 16:42:46

因此,如果您查看决策树是如何工作的,它会选择所有变量并对其执行拆分,以找到最佳的拆分。寻找最佳拆分的过程需要对每个变量进行迭代(假设colsubsample & rowsubsample为1),这是一个耗时的过程。

在GBM中,为每个变量找到最佳的分裂,并从每个变量中计算增益是并行的。由于每个节点都有完整的数据,因此在此过程中不进行通信,但是只计算了每一个特征增益,无论哪一个给出最佳增益值,数据都会被分割,然后再一次运行相同的进程。

然而,当#数据很大时,这种特征并行算法仍然存在“拆分”的计算开销。因此,当#数据很大时,最好使用数据并行。

这就是在大多数情况下,轻型GBM比GBM表现得更快的方式。

在传统方面:

在传统的workers.Other工作人员中,用最好的分割来执行拆分,然后根据接收到的数据将数据的分割结果发送给其他的工作人员。传统特征并行的缺点:具有计算开销,因为它不能加速“拆分”,其时间复杂度为O(#data)。因此,当#数据很大时,特性并行不能很好地加快速度。需要对拆分结果进行通信,这大约需要O(#data / 8) (一位对一个数据)。

此外,当您有大数据时,请阅读有关数据并行的内容。

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/106989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档