当前位置: 首页 > news >正文

HyperOpt-quniform 范围问题

在使用 quniform 的时候,可能会出现超出指定范围的值,例如对于 GBDT 设置参数空间为 'learning_rate':hp.quniform('learning_rate',0.05,2.05,0.2),但是仍然会报错 ValueError: learning_rate must be greater than 0 but was 0.0,但我们并没有把 0 设置在范围内。

实际上,Hyperopt 对于 quniform 的处理并不是类似于 range(起始,终止,步长) ,而是另一种处理方式,这里可以查看官方文档

hp.quniform(label, low, high, q)
Returns a value like round (uniform (low, high) / q) * q
返回像 round (uniform (low, high) / q) * q 的值

Suitable for a discrete value with respect to which the objective is still somewhat “smooth”, but which should be bounded both above and below.
适用于相对取值仍然有点“平滑”,但应有上下限限制的离散值。

进一步,我们需要看一下 uniform 的定义

hp.uniform(label, low, high)
Returns a value uniformly between low and high.
返回值介于在 low 和 hight 之间

When optimizing, this variable is constrained to a two-sided interval.
在优化的时候,这个变量被限制在最大值和最小值中间

因此对于上面的报错我们就可以找到原因了。根据给出的公式
round(uniform(low,high)/q)∗qround (uniform (low, high) / q) * qround(uniform(low,high)/q)q
,我们代入任意小于 12q\frac{1}{2}q21q 的的值,该式即为
round(12q−ϵq)∗q=round(1/2−ϵ)∗q=0∗q=0\begin{aligned} &round(\frac{\frac{1}{2}q-\epsilon }{q})*q\\ =&round(1/2-\epsilon )*q\\ =&0*q\\ =&0 \end{aligned} ===round(q21qϵ)qround(1/2ϵ)q0q0
这里 ϵ\epsilonϵ 是一个很小的正数。

http://www.lryc.cn/news/13439.html

相关文章:

  • Pycharm搭建一个Django项目
  • 浅析前端工程化中的一部曲——模块化
  • 新版bing(集成ChatGPT)申请通过后在谷歌浏览器(Chrome)上的使用方法
  • Time-distributed 的理解
  • matlab 计算矩阵的Moore-Penrose 伪逆
  • 简历制作方面的经验与建议
  • C语言--static、const、volatile关键字
  • Rust学习入门--【18】Rust结构体
  • LeetCode142 环形链表Ⅱ
  • JavaScript刷LeetCode拿offer-高频链表题
  • linux系统编程2--网络编程
  • Allegro如何重命名光绘操作指导
  • [PMLR 2018] Hyperbolic entailment cones for learning hierarchical embeddings
  • 2023春季露营投影怎么选?轻薄投影极米Z6X Pro值得推荐
  • 收藏,核心期刊的投稿、审稿、出刊流程详解
  • JVM类加载子系统
  • 摄像头的镜头的几个知识点
  • 分布式-分布式存储笔记
  • 第十三届蓝桥杯国赛 C++ C 组 Java A 组 C 组 Python C 组 E 题——斐波那契数组(三语言代码AC)
  • 多因子模型(MFM)
  • django项目实战一(django+bootstrap实现增删改查)
  • graphsage解读
  • 一文带你读懂Dockerfile
  • 用python实现对AES加密的视频数据流解密
  • 网络高可用方案
  • 简单的认识 Vue(vue-cli安装、node安装、开发者工具)
  • 如何写一个 things3 client
  • 人工智能原理复习 | 命题逻辑和谓词演算
  • 前端基础面试题:如何判断对象是否具有某属性?遍历数组的方法有哪些?
  • Docker入门和安装教程