如何获取训练完成的XGBoost Booster模型的训练超参数?
获取XGBoost Booster模型的超参数(1.7.2版本)
针对你使用的XGBoost 1.7.2版本的xgboost.core.Booster模型,以下是获取超参数(包括objective)的正确方法:
直接访问
params属性(无需加括号)
你之前报错是因为把params属性当成了方法调用(加了()),Booster对象的params是一个字典属性,直接访问即可:# 获取所有超参数 all_params = model.params # 获取objective参数 objective_param = model.params.get('objective')通过配置解析获取完整参数
如果params里缺少部分参数,可以用save_config()导出完整配置后解析:import json # 导出配置为JSON字符串 config_str = model.save_config() # 解析为字典 config_dict = json.loads(config_str) # 提取objective参数 objective_param = config_dict['learner']['objective']['name']
说明
get_params()是XGBoost的scikit-learn接口模型(如XGBClassifier/XGBRegressor)才有的方法,原生API的Booster对象没有这个方法,所以调用会报错。- 若你是用
train()方法训练的Booster,训练时传入的params字典里的参数都会保存在model.params中。
内容的提问来源于stack exchange,提问作者mansanto
相关产品推荐
相关产品推荐

