主要内容

贝叶斯优化的变量

创建优化变量的语法

对于目标函数中的每个变量,使用创建一个变量描述对象optimizableVariable.每个变量都有唯一的名称和值范围。创建变量的最小语法是

变量= optimizableVariable(名称,范围)

这个函数创建一个从下界开始的实变量范围(1)到上界范围(2)

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

  • “真实”的-有限边界之间的连续实值。给范围作为两元向量(低上),分别表示下界和上界。

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

  • “分类”-单元格数组的可能值的名称,如{“红”、“绿”、“蓝”}中指定的范围论点。

“真实”的“整数”变量,你可以指定bayesopt属性在对数比例空间中搜索变换参数的名称-值“日志”.对于此转换,确保中的下界范围严格来说是积极的“真实”的对于非负的“整数”

包括以下变量bayesopt作为第二个参数中的向量。

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

若要从优化中排除变量,请设置优化的名称-值参数optimizableVariable,或用点表示:

xvar。优化= false;

提示

  • 有两个名称与optimizableVariable

    • MATLAB®工作空间变量名

    • 优化中的变量名称

    例如,

    xvar = optimizableVariable(“spacevar”[1100]);

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

    使用这些名称如下:

    • 使用xvar作为你传递给的变量向量中的一个元素bayesopt.例如,

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

      mysvmfun(x,cdata,grp) SVMModel = fitcsvm(cdata,grp,'KernelFunction','rbf',…“BoxConstraint”,x.spacevar,……KernelScale, x.tvar);objective = kfoldLoss(crossval(SVMModel));

优化变量示例

0到1的实变量:

var1 = optimizableVariable(“xvar”[0, 1])
var1 = optimizableVariable带有属性:名称:'xvar'范围:[0 1]类型:'real'转换:'none'优化:1 .使用实例

从0到1000的整数变量:

var2 = optimizableVariable(“ivar”1000年[0],“类型”“整数”“转换”“日志”
var2 = optimizableVariable带属性:名称:'ivar'范围:[0 1000]类型:'integer'变换:'log'优化:1 .使用实例

彩虹颜色的分类变量:

var3 = optimizableVariable(“rvar”, {“r”“o”“y”‘g’“b”“我”“v”},“类型”“分类”
var3 = optimizableVariable与属性:名称:'rvar'范围:{'r' 'o' 'y' 'g' 'b' 'i' 'v'}类型:'categorical'转换:'none'优化:1

相关的话题