一个输出函数是一个函数,称为每一个迭代结束的bayesopt
。一个输出函数可以停止迭代。它还可以创建情节,将信息到您的工作区或保存到一个文件,或执行任何其他计算。
除了停止迭代,输出函数不能改变的贝叶斯优化。他们只是监控优化的进展。
这些内置的输出函数优化结果保存到文件或工作区。
@assignInBase
——保存你的每个迭代变量命名后的结果“BayesoptResults”
在你的工作空间。选择一个不同的名称,通过SaveVariableName
名称-值参数。
@saveToFile
——保存你的每个迭代一个文件命名后的结果“BayesoptResults.mat”
在当前文件夹。选择一个不同的名称或文件夹,通过SaveFileName
名称-值参数。
例如,每次迭代后的结果保存到工作空间变量命名“BayesIterations”
,
结果= bayesopt (var,有趣“OutputFcn”@assignInBase,…“SaveVariableName”,“BayesIterations”)
编写一个定制的输出函数签名
停止= outputfun(结果,状态)
bayesopt
通过了结果
和状态
变量的函数。你的函数返回停止
,你设置真正的
停止迭代,或假
允许继续迭代。
结果
是一个对象的类BayesianOptimization
。结果
包含可用的信息计算。
状态
可能的值:
“初始”
- - - - - -bayesopt
即将开始迭代。
“迭代”
- - - - - -bayesopt
刚刚完成一次迭代。
“完成”
- - - - - -bayesopt
刚刚完成最后的迭代。
例如,看到的贝叶斯优化输出函数。
这个例子展示了如何使用自定义输出函数与贝叶斯优化。输出功能停止时的优化目标函数,即交叉验证出错率,低于13%。输出函数还阴谋每个迭代的时间。
函数停止= outputfun(结果,状态)持续的h = false停止;开关状态情况下“初始”h =图;情况下“迭代”如果结果。MinObjective < 0.13停止= true;结束图(h)经颅磁刺激= results.IterationTimeTrace;阴谋(1:元素个数(tms),经颅磁刺激”)包含(的迭代次数)ylabel (“时间迭代”)标题(“每次迭代时间”)drawnow结束
目标函数是交叉验证资讯分类的损失电离层
数据。加载数据,再现性,设置默认随机流。
负载电离层rng默认的
优化在邻里规模从1到30,和三个距离度量。
num = optimizableVariable (“n”(1、30),“类型”,“整数”);dst = optimizableVariable (dst的,{“chebychev”,“欧几里得”,闵可夫斯基的},“类型”,“分类”);var = (num, dst);
设置交叉验证分区和目标函数。再现性,设置AcquisitionFunctionName
来“expected-improvement-plus”
。运行优化。
c = cvpartition (351“Kfold”5);有趣= @ (x) kfoldLoss (fitcknn (x, Y,“CVPartition”c“NumNeighbors”x.n,…“距离”char (x.dst),“NSMethod”,“详尽”));结果= bayesopt (var,有趣“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