主要内容

贝叶斯优化的变量

创建优化变量的语法

对于目标函数中的每个变量,创建变量描述对象使用优化不变。每个变量都有一个唯一的名称和一系列值。可变创建的最小语法是

变量=可优化的Variable(名称,范围)

此函数创建一个从下限范围的真实变量范围(1)到上限范围(2)

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

  • '真实的'- 有限范围之间的持续实际值。给范围作为双元素矢量[小写大写],表示上下边界。

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

  • '分类'- 可能的值的单元名称数组,例如{'红色','green','blue'},你在这里指定范围争论。

为了'真实的''整数'变量,您可以指定该变量Bayesopt.在一个对数比例的空间中搜索转变名称 - 值参数'日志'。对于这种转变,请确保下限范围是严格肯定的'真实的'和非负面的'整数'

包括变量Bayesopt.作为第二个参数中的向量。

结果= Bayesopt(乐趣,[Xvar,Ivar,Rvar])

从优化中排除变量,设置优化错误的,无论是在名称值的参数中优化不变,或点符号:

xvar.optimize = false;

提示

  • 有两个名称关联优化不变

    • matlab.®工作区变量名称

    • 优化中变量的名称

    例如,

    XVAR =优化不变(“spacevar”,[1,100]);

    XVAR.是matlab工作区变量,“spacevar”是优化中的变量。

    使用这些名称如下:

    • XVAR.作为传递的变量向量中的一个元素Bayesopt.。例如,

      结果= 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 = optimizablevvariable with properties: Name: 'xvar' Range: [0 1] Type: 'real' Transform: 'none

对日志刻度的0到1000的整数变量:

var2 = optimizableVariable ('ivar',[0 1000],'类型''整数''转变''日志'的)
VAR2 =具有属性的优化变性:名称:'IVAR'范围:[0 1000]类型:'整数'变换:'log'优化:1

彩虹色的分类变量:

var3 =优化不变('rvar',{'r'“o”'是''G''B''一世''v'},'类型''分类'的)
VAR3 =与属性的优化变性:名称:'r''范围:{'r''''''g''b'''我''v'}类型:'分类'变换:'无'优化:1

相关的话题