首页 > 其他分享 >bayesian优化demo运行

bayesian优化demo运行

时间:2023-05-17 18:24:11浏览次数:45  
标签:function optimizer demo 参数 bayesian 优化

bayesian优化demo运行

参考链接:贝叶斯优化

准备工作

在所使用的python版本下,应有一个bayes_opt目录如下:

如果没有这个目录,可以用pip install bayesian-optimization命令下载

demo代码

新建一个python文件basic_bayesian.py,其中代码如下:

def black_box_function(x, y):
    """Function with unknown internals we wish to maximize.

    This is just serving as an example, for all intents and
    purposes think of the internals of this function, i.e.: the process
    which generates its output values, as unknown.
    """
    return -x ** 2 - (y - 1) ** 2 + 1

from bayes_opt import BayesianOptimization

pbounds = {'x': (2, 4), 'y': (-3, 3)}

optimizer = BayesianOptimization(
    f=black_box_function,
    pbounds=pbounds,
    verbose=2, # verbose = 1 prints only when a maximum is observed, verbose = 0 is silent
    random_state=1,
)

optimizer.maximize(
    init_points=2,
    n_iter=3,
)

print(optimizer.max)

代码分析

  • 代码中的black_box_function函数,在例子中是已知的,但实际中不需要是一个已知表达式的函数,只需要是一个已知输入参数和输出实数的函数就可以
  • optimizer是一个实例化的BayesianOptimization对象
  • pbounds是参数的界限,也就是参数可取的上下界范围,因为贝叶斯优化是有约束的优化技术
  • maximize是主要的方法,用于找出最大值
  • init_points参数表示希望进行随机探索的次数,n_iter参数表示执行的贝叶斯优化步骤

运行结果

使用sudo python3 basic_bayesian.py命令运行代码,输出如下:

如果希望查看所有探测到的参数,以及对应的目标值,可以在代码最后添加:

for i, res in enumerate(optimizer.res):
    print("Iteration {}: \n\t{}".format(i, res))

重新运行,可以看到总共五次探索的参数和target值:

标签:function,optimizer,demo,参数,bayesian,优化
From: https://www.cnblogs.com/CCchaos/p/17409667.html

相关文章

  • 基于储能电站服务的冷热微网系统双层优化 建立考虑不同时间尺
    基于储能电站服务的冷热微网系统双层优化建立考虑不同时间尺度问题的双层规划模型上层负责求解长时间尺度的储能配置问题下层求解短时间尺度的微网优化运行问题才用KKT条件将双层转化为单层又采用大M法将模型线性化处理最后用cplex/gurobi求解器进行求解ID:94150696225026353......
  • 数据大盘加载耗时较长的优化案例
    背景:有一个数据大盘的需求,统计组织下的所有人员,优化前数据的加载耗时近30秒 优化思路:一、定位加载耗时慢的代码片段PHP里dump+die是我们经常用并且个人觉得是很好用的调试工具,利用这个特性,我们可以定位出哪些代码片段的加载是耗时最多的 二、逐个优化在优化过程中,可以将......
  • mysql 调优-sql 优化
    连接查询原理涉及到indexnested-loopjoin,blocknested-loopjoin,joinbuffersize,hashjoin(mysql8)等,感觉没必要记那么多需要知道会一次性把驱动表的数据加载到内存中(如果joinbuffersize放得下),然后循环每个驱动表去对比被驱动表的数据就好了保证被驱动表的JOIN字......
  • 【小小demo】SpringBoot+Layui登录
    easy-login基于layui注册、登录简单实现,并他通过拦截器拦截未登录请求。项目地址文章末尾登录拦截器SystemInterceptorpreHandle在Controller之前执行,因此拦截器的功能主要就是在这个部分实现:检查session中是否有user对象存在;如果存在,就返回true,那么Controller就......
  • wordpress 优化备份还原插件duplicator-pro-4_5_3_2的使用填坑
     创建备份我这边没有出错,就不说了 插件下载地址:https://www.wpjzb.com/wp-plugins/duplicator-pro/我是应的是  https://pan.baidu.com/share/init?surl=YRss-vqBVY2Twv1tBid9fQ   提取码:ibnshttps://pan.baidu.com/share/init?surl=6VSX3FUlugtfBfTPj4wLbg 提取......
  • hadoop中distcp的mapreduce任务中的task0详解及优化
    task0详解distcp是Hadoop中一个用于数据复制的工具,可用于大规模数据复制场景。在distcp执行过程中,会运行多个MapReduce任务,其中第一个任务通常被称为"task0"或"maintask"。task0主要负责以下操作:**1.解析命令行参数并生成distcp配置。**2.预处理数据源列表,对......
  • Android数据流程的优化
        第二次阶段开始,对于第一阶段的数据传输线进行优化,因为第一次数据传输入栈activity太多,导致用户使用感不好,人机分离,同时大量activity的入栈,会导致app很卡,所以进行了优化,采用的是向上一个activity/fragment回传数据(一开始以为肯定有一个简洁的方法来实现不同活动的数据共......
  • SQL优化改写案例14(OB数据库SQL优化,把你的脑袋当成CBO)
    OB一哥们找我优化条SQL,反馈在OceanBase存储过程执行时间很慢,需要626秒才能出结果,安排。--原SQL:INSERTINTOinsurance_stat_sx(id,stat_date,cal_num,underwrite_num,veh_num,effect_num,effect_money,unit_code,life_......
  • 【Cocos2d游戏开发之九】CCSpriteBatchNode与"pvr.ccz","plist"精灵优化及注意事项
     首先对于使用过精灵的童鞋很熟悉CCSpriteBatchNode,至少大家都会知道它能优化精灵,但是至于优化原理这里简单说下:      一般使用精灵CCSprite的时候,都是直接使用[CCLayer*addChild:CCSprite*];,假设我们创建一百个精灵,那么当前的CCLayer会为100个精灵单独绘制;  ......
  • resin的配置优化
    下载resin源码包:resin-3.0.18.tar.gz [path]#cpresin-3.0.18.tar.gz/usr/local/ [path]#cd/usr/local/ [path]#tar-zxvfresin-3.0.18.tar.gz [path]#cdresin-3.0.18 [path]#./configure–prefix=/usr/local/resin --with-apxs=/usr/local/apache2/bin/a......