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