python - 如何从 hyperopt hp.choice 中提取选定的超参数?
问题描述
我hyperopt
用来寻找catboost
回归量的最佳超参数。我正在遵循本指南。相关部分是:
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]
吗?有没有更好的提取方法?
解决方案
from hyperopt import space_eval
print(space_eval(ctb_para, fmin_result))
推荐阅读
- r - 将数据框加载到 R 中并使用 setDT
- javascript - 如何在 Chrome 扩展中使用 Google People API 来获取我的联系人姓名、电子邮件、电话号码和组织
- reactjs - WebpackError:ReferenceError:文档未定义 - netlify 构建
- vb.net - GUI 没有正确移动
- mysql - 如何使用 dockerfile 运行 SQL 服务器
- android - 如何将房间中的对象保存在数据库中。Kotlin 安卓
- javascript - 使用前端技术在用户浏览器的 Javascript 脚本标签上设置 paypal 客户端 ID。安全吗
- json - 移动应用程序 - json 验证 - 具有不同应用程序版本的字符串
- javascript - 如何将字符串日期转换为特定格式?
- reactjs - .NET 5.0 + 反应 + 谷歌身份验证