dask_lightgbm使用的完整训练集?

dask_lightgbm使用的完整训练集?,dask,lightgbm,Dask,Lightgbm,我正在阅读估计器的实现(特别是dask_lightgb.core.py中的\u train\u part函数),我没有看到如何使用整个训练集来适应最终的估计器 \u train\u part函数接受布尔参数return\u model,在train函数的实现中(使用客户端.submit对每个工作人员调用\u train\u part),只有当工作人员是“主工作人员”时,return\u model才为真(其本身似乎是随机选择的Dask工作者)。从逻辑上讲,每个工作人员都会被分派整个模型训练集中的

我正在阅读估计器的实现(特别是dask_lightgb.core.py中的
\u train\u part
函数),我没有看到如何使用整个训练集来适应最终的估计器

\u train\u part
函数接受布尔参数
return\u model
,在
train
函数的实现中(使用
客户端.submit
对每个工作人员调用
\u train\u part
),只有当工作人员是“主工作人员”时,
return\u model
才为真(其本身似乎是随机选择的Dask工作者)。从逻辑上讲,每个工作人员都会被分派整个模型训练集中的1/n块(其中n=工作人员总数),然后每个工作人员在训练集中自己的子集上训练自己的独立模型。
return\u model
参数控制每个工作人员的模型是否由
\u train\u part
返回,因此它返回None适用于除一名工人外的所有工人,因此也适用于模型

代码:

def列车零件(参数、型号、工厂、零件列表、工人地址、返回型号、本地侦听端口=12400、,
超时=120,**kwargs):
网络参数=构建网络参数(工作者地址,获取工作者().地址,本地监听端口,超时)
参数更新(网络参数)
#将多个部分连接为一个
零件=元组(zip(*零件列表))
数据=concat(部分[0])
标签=混凝土(零件[1])
如果长度(零件)=3,则重量=混凝土(零件[2]),否则无
尝试:
模型=模型工厂(**参数)
模型拟合(数据、标签、样品重量=重量)
最后:
_安全调用(_LIB.LGBM_NetworkFree())
如果返回模型,则返回模型,否则无
这不等于在训练集的1/n子样本上训练lightgbm估计器的非分布式版本吗?我是否遗漏了什么?我感觉我遗漏了一个部分,要么工人的独立模型合并成一个,要么单个估计器通过单独的工作学习到的单个树进行更新呃


谢谢!

啊,答案是肯定的-dask_lightgbm使用所有可用的培训样本。dask的责任只是在员工之间分发数据。lightgbm在其设置后处理所有分布式学习。不是每个员工都在培训自己的独立模型-lightgbm只培训一个模型-而是每个员工都将获得由于这个原因,只有被选中的工作人员返回拟合的估计器,而其他所有人都不返回