主要内容

贝叶斯优化输出函数

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

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

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

内置的输出函数

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

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

  • @savetofile.- 将每次迭代到命名的文件后保存结果'Bayesoptresults.mat'在您当前的文件夹中。选择不同的名称或文件夹,通过savefilename.名称-值参数。

例如,要在每个迭代到名为的工作空间变量后将结果保存到'贝叶森'

结果= bayesopt (var,有趣'outputfcn'@assignInBase,......'savevariablename''贝叶森'的)

自定义输出功能

用签名写一个自定义输出函数

停止= outputfun(结果,状态)

Bayesopt.通过了结果状态函数的变量。你的函数返回停止,你设置为真正的停止迭代,或者错误的允许迭代继续。

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

状态有可能的价值观:

  • '最初的'-Bayesopt.即将开始迭代。

  • '迭代'-Bayesopt.刚刚完成了迭代。

  • “完成”-Bayesopt.刚完成最终迭代。

例如,请参见贝叶斯优化输出功能

贝叶斯优化输出功能

此示例显示如何使用贝叶斯优化的自定义输出功能。输出函数在目标函数是交叉验证错误率下降的低于13%时停止优化。输出函数也绘制每个迭代的时间。

函数停止= outputfun(结果,状态)执着的h stop = false;开关状态情况下'最初的'h =图;情况下'迭代'如果结果.MInjective <0.13停止=真;结尾图(h)tms = equest.IritationTimetrace;绘图(1:Numel(TMS),TMS')XLabel('迭代号') ylabel ('迭代的时间')标题(“每次迭代的时间”) drawnow结尾

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

加载电离层rng默认

优化邻域大小从1到30,以及三个距离指标。

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

设置交叉验证分区和目标函数。为了再现性,请设置获取功能名称“expected-improvement-plus”.运行优化。

c = cvpartition(351,“Kfold”5);fun = @(x)kfoldloss(fitcknn(x,y,“CVPartition”c“NumNeighbors”,x.n,......“距离”char (x.dst),“NSMethod”“详尽”));结果= bayesopt (var,有趣'outputfcn',@ outputfun,......'获取功能名称'“expected-improvement-plus”);
| ===================================================================================================== ||磨练|eval |目标|目标|Bestsofar |Bestsofar |n |DST | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 1 | Best | 0.19943 | 0.31225 | 0.19943 | 0.19943 | 24 | chebychev | | 2 | Best | 0.16809 | 0.23873 | 0.16809 | 0.1747 | 9 | euclidean | | 3 | Best | 0.12536 | 0.2603 | 0.12536 | 0.12861 | 3 | chebychev | __________________________________________________________ Optimization completed. Total function evaluations: 3 Total elapsed time: 6.8981 seconds Total objective function evaluation time: 0.81127 Best observed feasible point: n dst _ _________ 3 chebychev Observed objective function value = 0.12536 Estimated objective function value = 0.12861 Function evaluation time = 0.2603 Best estimated feasible point (according to models): n dst _ _________ 3 chebychev Estimated objective function value = 0.12861 Estimated function evaluation time = 0.26869

相关的话题