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 查看散列)
关闭
dask-xgboost-0.2.0.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 6d9c491dc4099f74a0df66c4d439d296c0f1fba97009fe93e21b2350f295b4ca |
|
MD5 | 5ead54141baa7215b086b1448b866613 |
|
BLAKE2b-256 | 74a337471a21f7e13ba23823eb837cee62fd31ba77f489ebe381cd9a6ed764e3 |
关闭
dask_xgboost-0.2.0-py2.py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 47b7d96e981d8d7aa81bd15578f470d80ee92ae5aac122adc3bc7e1c9f941682 |
|
MD5 | d9d8e5757ad693d10763307767f5b432 |
|
BLAKE2b-256 | 0d3390fec71df94921d9e604c1f3812b7bb9573ce93aec0637df8a319a7ea42b |