贝叶斯优化目标函数
目标函数的语法
bayesopt
试图使一个目标函数最小化。相反,如果你想最大化一个函数,将目标函数设为你想最大化的函数的负数。看到最大化的功能.要在目标函数中包含额外的参数,请参见参数化功能.
bayesopt
向目标函数传递一个变量表。变量具有您声明的名称和类型;看到变量的贝叶斯优化.
目标函数具有以下特征:
(目标,coupledconstraints,用户数据)=乐趣(x)
目标函数的例子
该目标函数在与参数的支持向量机模型交叉验证拟合中返回损失盒子
而且σ
.该目标还返回一个耦合约束函数,当支持向量的数量超过100(100可行,101不可行)时,该约束函数为正(不可行)。
函数[objective,constraint] = mysvmfun(x,cdata,grp) SVMModel = fitcsvm(cdata,grp,“KernelFunction”,“rbf”,...“BoxConstraint”x.box,...“KernelScale”, x.sigma);目标= kfoldLoss (crossval (SVMModel));constraint = sum(svmmodel . supportvector) - 100.5;
使用目标函数,假设cdata
而且grp
,创建一个包含数据的匿名函数,如中所述参数化功能.
有趣= @ (x) mysvmfun (x, cdata, grp);结果= bayesopt(有趣,var)%假设vars存在
目标函数的错误
bayesopt
如果目标函数返回的不是有限实标量,则认为目标函数返回错误。例如,如果你的目标函数返回一个复值,南
,或正
,然后bayesopt
认为你的目标函数错误。如果bayesopt
遇到错误,它会继续优化,并自动更新导致错误的点的贝叶斯模型。这个贝叶斯模型是误差模型.bayesopt
将Error模型合并为一个耦合约束。看到耦合约束.
当存在错误时,您可以通过设置Error模型来绘制bayesopt
PlotFcn
名称-值参数@plotConstraintModels
.或者你可以回溯呼叫情节
贝叶斯优化的结果,并包括@plotConstraintModels
.