跳转到主要内容

Dask与XGBoost之间的交互

项目描述

使用 XGBoost 和 Dask.distributed 进行分布式训练

此存储库提供了一个选项,可以在 Dask.array 和 Dask.dataframe 集合上使用 XGBoost 进行分布式训练。

pip install dask-xgboost

请注意,XGBoost 现在已将其 Dask API 作为其官方 Python 包的一部分。该 API 与 dask-xgboost 无关,现在推荐使用它来使用 Dask 和 XGBoost。有关新 API 的更多详细信息,请参阅 此处 xgb.dask 文档 https://xgboost.readthedocs.io/en/latest/tutorials/dask.html

示例

from dask.distributed import Client
client = Client('scheduler-address:8786')  # connect to cluster

import dask.dataframe as dd
df = dd.read_csv('...')  # use dask.dataframe to load and
df_train = ...           # preprocess data
labels_train = ...

import dask_xgboost as dxgb
params = {'objective': 'binary:logistic', ...}  # use normal xgboost params
bst = dxgb.train(client, params, df_train, labels_train)

>>> bst  # Get back normal XGBoost result
<xgboost.core.Booster at ... >

predictions = dxgb.predict(client, bst, data_test)

这是如何工作的

有关使用 Dask.dataframe 进行预处理的更多信息,请参阅 Dask.dataframe 文档

一旦创建了合适的数据和标签,我们就可以使用XGBoost进行分布式训练了。每个Dask工作进程都会设置一个XGBoost从属进程,并给予它们足够的信息以便找到彼此。然后,Dask工作进程将它们的内存中的Pandas数据框交给XGBoost(一个Dask数据框实际上是分散在多台机器内存中的多个Pandas数据框)。XGBoost独立处理分布式训练,不干扰Dask。然后XGBoost返回一个单独的xgboost.Booster结果对象。

更大型示例

对于更复杂的示例,请参阅

历史

开发期间的对话发生在 dmlc/xgboost #2032

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源分布

dask-xgboost-0.2.0.tar.gz (18.0 kB 查看散列)

上传时间

构建分布

dask_xgboost-0.2.0-py2.py3-none-any.whl (14.1 kB 查看散列)

上传时间 Python 2 Python 3

支持者

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF 赞助商 PingdomPingdom 监控 SentrySentry 错误日志 StatusPageStatusPage 状态页面