主要内容

贝叶斯优化输出函数

什么是贝叶斯优化输出函数?

函数的每次迭代结束时调用输出函数bayesopt.输出函数可以停止迭代。它还可以创建绘图,将信息保存到您的工作区或文件中,或执行您喜欢的任何其他计算。

除了停止迭代之外,输出函数不能改变贝叶斯优化的过程。它们只是监视优化的进程。

内置输出函数

这些内置输出函数将优化结果保存到文件或工作空间中。

  • @assignInBase-每次迭代后保存您的结果到一个名为“BayesoptResults”在你的工作空间。要选择不同的名称,请传递SaveVariableName名称-值参数。

  • @saveToFile-每次迭代后保存您的结果到一个名为“BayesoptResults.mat”在当前文件夹中。若要选择不同的名称或文件夹,请传入SaveFileName名称-值参数。

例如,将每次迭代后的结果保存到名为“BayesIterations”,

结果= bayesopt(fun,vars,“OutputFcn”@assignInBase,“SaveVariableName”,“BayesIterations”)

自定义输出函数

编写带有签名的自定义输出函数

Stop = outputfun(结果,状态)

bayesopt通过了结果而且状态函数的变量。函数返回停止,设置为真正的停止迭代,或停止允许迭代继续进行。

结果是类的对象吗BayesianOptimization结果包含到目前为止计算的可用信息。

状态可能的值:

  • “初始”- - - - - -bayesopt就要开始迭代了。

  • “迭代”- - - - - -bayesopt刚刚完成一次迭代。

  • “完成”- - - - - -bayesopt刚刚完成最后的迭代。

有关示例,请参见贝叶斯优化输出函数

贝叶斯优化输出函数

这个例子展示了如何使用贝叶斯优化的自定义输出函数。当目标函数,即交叉验证错误率,下降到13%以下时,输出函数停止优化。输出函数还绘制了每次迭代的时间。

函数Stop = outputfun(结果,状态)持续的H stop = false;开关状态情况下“初始”H =数字;情况下“迭代”如果结果。MinObjective < 0.13 stop = true;结束图(h) tms = results.IterationTimeTrace;阴谋(1:元素个数(tms),经颅磁刺激”)包含(的迭代次数) ylabel (“迭代的时间”)标题(“每次迭代的时间”) drawnow结束

目标函数为KNN分类的交叉验证损失电离层数据。加载数据,为了重现性,设置默认的随机流。

负载电离层rng默认的

优化从1到30的社区大小,以及三个距离指标。

num = optimizableVariable(“n”(1、30),“类型”,“整数”);dst = optimizableVariable(dst的, {“chebychev”,“欧几里得”,闵可夫斯基的},“类型”,“分类”);Vars = [num,dst];

设置交叉验证分区和目标函数。对于再现性,设置AcquisitionFunctionName“expected-improvement-plus”.运行优化。

C = cvpartition(351,“Kfold”5);fun = @(x)kfoldLoss(fitcknn(x,Y,“CVPartition”c“NumNeighbors”x.n,“距离”char (x.dst),“NSMethod”,“详尽”));结果= bayesopt(fun,vars,“OutputFcn”@outputfun,“AcquisitionFunctionName”,“expected-improvement-plus”);
|=====================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar n | | dst | | |结果| |运行时| | (estim(观察) .) | | | |=====================================================================================================| | 最好1 | | 0.19943 | 0.31225 | 0.19943 | 0.19943 | 24 | chebychev | | 2 |最好| 0.16809 | 0.23873 | 0.16809 | 0.1747 | 9 |欧几里得| | 3 | | 0.12536 |最好0.2603 | 0.12536 | 0.12861 | 3 | chebychev  | __________________________________________________________ 优化完成。总函数评估:3总运行时间:6.8981秒总目标函数评估时间:0.81127最佳观测可行点:n dst _ _________ 3 chebychev观测目标函数值= 0.12536估计目标函数值= 0.12861函数评估时间= 0.2603最佳估计可行点(根据模型):n dst _ _________ 3 chebychev估计目标函数值= 0.12861估计函数评估时间= 0.26869

相关的话题