我使用 Hyperopt 在 Python 3.7 中选择 XGBoost 模型的参数。
作为目标,我使用返回多个值的函数,包括损失:
def objective(params, n_folds = nfold):
...
return {'loss': loss, 'params': params, 'iteration': ITERATION,
'estimators': n_estimators,
'train_time': run_time, 'status': STATUS_OK}
在我的情况下,'loss' - 不是交叉验证中的包容性参数(例如'auc'),但它是自制的指标。我希望,这将通过迭代减少,但它会继续变化,就像随机方法一样。
此外,当我看到 fmin 计算状态时(示例 - 下面)。我看到完全不同的指标正在下降。
XGB CV model report
Best test-auc-mean 98.51% (std: 0.21%)
83%|███████████████████████████████████████▏ | 25/30 [08:26<07:23, 88.64s/trial, best loss: 0.22099999999999997]
我怎么知道,Hyperopt 降低的实际指标是什么?