Hyperopt调参,返回值注意事项(坑),为什么num_leaves和max_depth会显示0?Python

关于Hyperopt的使用可以参考以下几篇文章,本文不做解释:

(4条消息) Hyperopt入门_浅笑古今的博客-CSDN博客_hyperopt

使用 Hyperopt 进行参数调优(译) - 简书 (jianshu.com)

本文主要说明一下返回值的坑!

调LightGBM的时候:

fmin函数↓

 搜索空间↓

 

坑来了!最终返回结果是这样(仅做示例):

{'bagging_fraction': 4, 'feature_fraction': 2, 'max_depth': 2, 'min_child_samples': 84, 'num_leaves': 2, 'reg_alpha': 156.09791414363687, 'reg_lambda': 0.01845081695764928}

问题来了,bagging_fraction为什么会是4?feature_fraction为什么会是2?我的搜索空间里,最小的max_depth是3,返回的字典里为什么会是2?同理,trials(我转成DF保存到本地了)也奇奇怪怪,num_leaves和max_depth会显示0↓

 

最终我恍然大悟,如果你在搜索空间里设置的是枚举类型(hp.choice)那么返回的是索引而不是真实值!比如上图的'num_leaves': [0]就是我搜索空间里的【10】!bagging_fraction 返回4代表我搜索空间里的【0.9】!

其他类型也要引起注意!

所以这个返回的字典params_best是不能直接去训练后面的LightGBM模型的

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值