主要内容

贝叶斯优化的变量

用于创建优化变量的语法

对于目标函数中的每个变量,使用优化变量。每个变量都有一个唯一的名称和一系列值。创建变量的最低语法为

变量=optimizableVariable(名称、范围)

此函数用于创建一个范围为下限的实变量范围(1)上界射程(2).

可以在中指定三种类型的变量类型名称-值对:

  • “真的”-有限边界之间的连续实值。给范围作为二元向量[上下],表示下限和上限。

  • “整数”-有限边界之间的整数值,类似于“真的”.

  • “绝对的”-可能值的名称的单元格数组,例如{‘红’、‘绿’、‘蓝’},您在范围论点

对于“真的”“整数”变量,您可以指定贝耶斯波特通过设置使改变名称-值对到“日志”。对于此转换,请确保范围这是绝对肯定的。

包括的变量贝耶斯波特作为第二个参数中的向量。

结果=bayesopt(fun,[xvar,ivar,rvar])

要从优化中排除变量,请设置优化错误的,在优化变量,或通过点符号:

xvar.Optimize=false;

提示

  • 有两个名称与一个优化变量:

    • MATLAB®工作区变量名

    • 优化中变量的名称

    例如

    xvar=优化变量(“spacevar”,[1,100]);

    xvar是MATLAB工作空间变量,并且“spacevar”是优化中的变量。

    使用以下名称:

    • 使用xvar作为传递给的变量向量中的元素贝耶斯波特例如

      结果=bayesopt(有趣[xvar,tvar])
    • 使用“spacevar”作为优化中变量的名称。例如,在目标函数中,

      函数目标=mysvmfun(x,cdata,grp)SVMModel=fitcsvm(cdata,grp,'KernelFunction','rbf',…'BoxConstraint',x、 空间变量,…'KernelScale',x.tvar);目标=kfoldLoss(crossval(SVMModel));

优化示例的变量

从0到1的实变量:

var1=优化变量(“xvar”,[0 1])
var1=具有以下属性的optimizableVariable:Name:'xvar'范围:[0 1]键入:'real'转换:'none'优化:1

对数刻度上从1到1000的整数变量:

var2=优化变量(“伊瓦尔”,[1 1000],“类型”,“整数”,“转变”,“日志”)
var2=具有以下属性的optimizableVariable:名称:'ivar'范围:[1 1000]键入:'integer'转换:'log'优化:1

彩虹颜色的分类变量:

var3=优化变量(“rvar”,{“r”“哦”“是的”“g”“b”“我很高兴“v”},“类型”,“绝对的”)
var3=具有以下属性的optimizableVariable:名称:'rvar'范围:{'r''o''y''g''b''i''v'}类型:'Category'转换:'none'优化:1

相关话题