主要内容

贝叶斯优化的变量

用于创建优化变量的语法

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

变量=optimizableVariable(名称、范围)

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

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

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

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

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

对于“真的”或者“整数”变量,您可以指定贝耶斯波特通过设置来搜索日志缩放的空间使改变名称 - 值参数“日志”。对于此转换,请确保范围绝对是肯定的“真的”对于“整数”.

包括的变量贝耶斯波特作为第二个论点的矢量。

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

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

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.Spacevar.,…'KernelScale',x.tvar);目标=kfoldLoss(crossval(SVMModel));

优化示例的变量

从0到1的实变量:

var1=优化变量('xvar',[0 1])
VAR1 =具有属性的优化变性:名称:'XVAR'范围:[0 1]类型:“真实”变换:'无'优化:1

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

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

彩虹颜色的分类变量:

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

相关话题