贝叶斯优化的类型错误 bayes_opt

问题描述 投票:0回答:1

我正在按照网上的一个超参数调优教程,我正在尝试使用 bayes_opt 但我得到这个错误。

---> best_params = bo.res['max']['max_params']
TypeError: list indices must be integers or slices, not str

这是我的示例代码

from bayes_opt import BayesianOptimization

bo= BayesianOptimization(xgb_evaluate, {'max_depth': (3, 7), 
                                             'gamma': (0, 1),
                                             'colsample_bytree': (0.3, 0.9)})
bo.maximize(init_points=3, n_iter=5, acq='ei')

best_params = bo.res['max']['max_params']
xgboost bayesian hyperparameters
1个回答
0
投票

很可能我使用的是较新版本的 bayes_opt 和API的变化。为了得到最好的参数,我所要做的只是搜索最大目标值,然后得到params。

params = max(xgb_bo.res, key=lambda x:x['target'])
best_params = params['params']
best_target = params['target']
best_params['max_depth'] = int(best_params['max_depth'])
print(best_target, best_params)
© www.soinside.com 2019 - 2024. All rights reserved.