贝叶斯优化输出函数
什么是贝叶斯优化输出函数?
函数的每次迭代结束时调用输出函数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