You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法创建DaskDMatrix:基于Dask训练XGBoost模型遇阻求助

使用Dask训练XGBoost模型的正确实现方案

问题根源

你遇到的报错核心是XGBoost与Dask的集成方式在不同版本中发生了变更:旧的独立dask_xgboost包已被弃用并合并到XGBoost官方库,低版本XGBoost不内置Dask支持,而dask_ml.xgboost也未实现DaskDMatrix。

环境要求

确保安装XGBoost 1.3.0及以上版本,无需单独安装dask_xgboost,直接用官方内置的Dask集成即可。

正确实现代码

import dask.distributed
import xgboost as xgb

# 初始化Dask分布式客户端
client = dask.distributed.Client()

# 注意:X_train、y_train、X_val、y_val必须是Dask DataFrame/Array格式
# 若为Pandas数据,可通过dask.dataframe.from_pandas转换
params = {
    'objective': 'binary:logistic', 
    'booster': 'dart', 
    'max_depth': 4,
    'learning_rate': 0.02, 
    'random_state': 42
}

# 创建Dask DMatrix(XGBoost官方内置实现)
dtrain = xgb.dask.DaskDMatrix(client, X_train, y_train)
dval = xgb.dask.DaskDMatrix(client, X_val, y_val)

eval_set = [(dtrain, 'train'), (dval, 'validation')]

# 训练模型:num_boost_round对应原参数中的n_estimators
model = xgb.dask.train(
    client,
    params,
    dtrain,
    num_boost_round=800,
    evals=eval_set,
    eval_metric=['logloss', 'aucpr'],
    verbose=True
)

# 可选:基于验证集预测
predictions = xgb.dask.predict(client, model, dval)

之前报错的原因说明

  • 第一种尝试:dask_xgboost是旧版第三方包,已被官方弃用,不再提供DaskDMatrix接口。
  • 第二种尝试:使用的XGBoost版本低于1.3.0,官方库尚未内置xgb.dask模块。
  • 第三种尝试:dask_ml.xgboost仅为轻量封装,未实现DaskDMatrix,需使用XGBoost官方的Dask集成。

内容的提问来源于stack exchange,提问作者crbl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 11:30:14