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

XGBRegressor训练耗时过长排查求助:附代码及问题详情

XGBRegressor训练耗时久、无输出的排查方案

关键问题及修复步骤

  • 无输出的直接原因:verbose=False关闭了训练日志,且print输出可能被缓冲。

    • 将verbose改为1/2,开启训练过程日志,确认模型是否在运行。
    • 给print添加flush=True参数,强制刷新输出缓冲,避免内容积压不显示。
  • 多目标循环训练的冗余耗时:每个目标单独训练模型,大数据集下叠加耗时极高。

    • 尝试用sklearn.multioutput.MultiOutputRegressor包装XGBRegressor,一次性训练多目标模型,减少重复开销。
    • 先取1%的小样本测试,验证代码逻辑和输出是否正常,排除单纯数据集过大的问题。
  • Dask与XGBoost的兼容性问题:测试集用Dask读取,但XGBoost原生不支持Dask数据输入,会导致低效处理甚至卡顿。

    • 将Dask DataFrame转换为Pandas(用.compute()),再传入模型训练/预测。
    • 若数据集过大无法装入内存,改用XGBoost的Dask分布式接口xgboost.dask.DaskXGBRegressor。
  • 模型参数优化:默认参数在大数据集下训练效率低。

    • 启用tree_method='hist'(CPU)或'gpu_hist'(GPU),大幅提升树构建速度。
    • 临时调小n_estimators(如设为20)测试训练速度,确认参数影响。
  • 特征预处理缺失:特征数值范围差异大可能拖慢收敛。

    • 用StandardScaler对特征做归一化,减少模型收敛时间。

修正后的示例代码

%%time
!pip install xgboost
import xgboost as xgb
from sklearn.model_selection import train_test_split
from sklearn.metrics import r2_score
from sklearn.preprocessing import StandardScaler
from sklearn.multioutput import MultiOutputRegressor
import dask.dataframe as dd

# 转换Dask测试集为Pandas(内存足够时)
test = dd.read_csv('/kaggle/input/leap-atmospheric-physics-ai-climsim/test.csv').compute()
sample_id = test['sample_id']
test = test.drop('sample_id', axis=1)

# 处理训练数据(假设df_train是Pandas DataFrame)
X = df_train.drop(targets + ['sample_id'], axis=1)
y = df_train[targets]

# 特征缩放
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# 拆分数据集
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, random_state=42, test_size=0.33)

# 多目标训练,开启日志,优化树构建方法
dtr = MultiOutputRegressor(xgb.XGBRegressor(verbose=1, tree_method='hist', n_estimators=50))
dtr.fit(X_train, y_train)

# 预测与评估
y_hat = dtr.predict(X_test)
submission = {'sample_id': sample_id}
for idx, target in enumerate(targets):
    submission[target] = dtr.predict(test)[:, idx]
    print(f'r2_score for {target} : {r2_score(y_hat[:, idx], y_test.iloc[:, idx])}', flush=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 21:00:19