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

Python中使用xgb.train训练模型后如何获取其超参数

xgb.train训练后查看模型超参数的解决方法

xgb.train是xgboost的底层训练API,返回的是Booster类实例。和上层sklearn封装的XGBClassifier不同,XGBClassifier在初始化时就会把所有超参数存储到对象公开属性中,所以直接打印对象就能输出参数,而底层的Booster类没有做这个封装,没有默认公开的params属性,所以直接调用bst.params无法拿到参数。可以用以下几种方法实现需求:

  • 方法1:直接读取训练前定义的超参数字典
    如果你只需要自己手动配置的超参数,直接复用训练时传入的params字典即可,xgb.train运行时不会修改该字典的内容。
  • 方法2:获取包含默认参数的完整配置
    1.3及以上版本的xgboost支持Booster实例调用save_config()方法,返回包含所有参数(含框架自动补全的默认参数)的JSON字符串,转成字典后即可提取所需内容:
    import json
    # 训练完成后执行
    config = json.loads(bst.save_config())
    # 示例:获取max_depth配置
    print(config["learner"]["gradient_booster"]["tree_train_param"]["max_depth"])
    
  • 方法3:手动绑定参数到模型实例
    如果你需要和XGBClassifier一样直接从模型对象读取参数,可以在训练完成后手动把参数字典绑定到Booster实例上:
    bst = xgb.train(params, dtrain)
    bst.params = params
    # 后续可直接调用
    print(bst.params)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:36:03