【问题标题】:how to extract selected hyperparameter from hyperopt hp.choice?如何从 hyperopt hp.choice 中提取选定的超参数?
【发布时间】:2020-05-09 13:26:24
【问题描述】:

我正在使用hyperopt 来找到catboost 回归量的最佳超参数。 我正在关注这个guide。 相关部分是:


ctb_reg_params = {
    'learning_rate':     hp.choice('learning_rate',     np.arange(0.05, 0.31, 0.05)),
}
ctb_fit_params = {
    'verbose': False
}
ctb_para = dict()
ctb_para['reg_params'] = ctb_reg_params
ctb_para['fit_params'] = ctb_fit_params
ctb_para['loss_func' ] = lambda y, pred: np.sqrt(mean_squared_error(y, pred))

def ctb_reg(self, para):
    reg = ctb.CatBoostRegressor(**para['reg_params'])
    reg.fit(x_train, y_train, **para['fit_params'])
    pred = reg.predict(x_test)
    loss = para['loss_func'](y_test, pred)
    return {'loss': loss, 'status': STATUS_OK}

fmin(fn=ctb_reg, space=ctb_para, algo=tpe.suggest, max_evals=100, trials=Trials())

几分钟后我得到了这个:

{'learning_rate': 4}

如何提取最佳学习率?是np.arange(0.05, 0.31, 0.05)[4]吗?有没有更好的提取方法?

【问题讨论】:

  • 您好,请问您在这里的“para”参数使用什么?我试图逐字使用您的代码,因为我无法访问 Medium 文章。谢谢!

标签: python hyperparameters catboost hyperopt


【解决方案1】:
from hyperopt import space_eval
print(space_eval(ctb_para, fmin_result))

【讨论】:

  • 感谢您提供此代码 sn-p,它可能会提供一些有限的即时帮助。 proper explanation 将通过展示为什么这是解决问题的好方法,并使其对有其他类似问题的未来读者更有用,从而大大提高其长期价值。请edit您的回答添加一些解释,包括您所做的假设。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-03
  • 2020-09-10
  • 2016-08-10
  • 1970-01-01
  • 2019-06-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多