对于目标函数中的每个变量,使用optimizableVariable
.每个变量都有一个惟一的名称和一个值范围。创建变量的最小语法是
变量= optimizableVariable(名称、范围)
这个函数创建一个从下界开始的实变量范围(1)
到上界范围(2)
.
属性中可以指定三种类型的变量类型
名称-值参数:
“真实”的
-有限界之间的连续实值。给范围
作为二元向量(低上)
,代表下限和上限。
“整数”
-有限边界之间的整数值,类似于“真实”的
.
“分类”
—单元格数组中可能值的名称,例如{“红”、“绿”、“蓝”}
,你在范围
论点。
为“真实”的
或者“整数”
变量,你可以指定bayesopt
通过设置来搜索日志缩放的空间变换
名称-值参数“日志”
.对于这个转换,确保范围
是完全正确的“真实”的
和非负“整数”
.
包括变量bayesopt
作为第二个论点的矢量。
结果= bayesopt(有趣,[xvar, ivar rvar])
要从优化中排除变量,请设置优化
来假
的名称-值参数optimizableVariable
,或用点表示法:
xvar。优化= false;
提示
有两个名字与optimizableVariable
:
MATLAB®工作空间变量名
优化中变量的名称
例如,
xvar = optimizableVariable ('spacevar'[1100]);
xvar
是MATLAB工作空间变量,和'spacevar'
为优化中的变量。
使用这些名称如下:
使用xvar
作为您传递的变量矢量的元素bayesopt
.例如,
结果= bayesopt(乐趣,xvar, tvar])
使用'spacevar'
作为优化中变量的名称。例如,在一个目标函数中,
mysvmfun(x,cdata,grp) = mysvmfun(x,cdata,grp) = mysvmfun(x,cdata,grp)“BoxConstraint”,X.Spacevar.,……KernelScale, x.tvar);目标= kfoldLoss (crossval (SVMModel));
从0到1的实变量:
var1 = optimizableVariable (“xvar”[0, 1])
var1 =与属性的优化变性:名称:'xvar'范围:[0 1]类型:'实际'变换:'无'优化:1
在对数尺度上从0到1000的整数变量:
var2 =优化不变(“ivar”1000年[0],“类型”,“整数”,“转换”,“日志”)
var2 = optimizablevvariable with properties: Name: 'ivar' Range: [0 1000] Type: 'integer' Transform: 'log
彩虹颜色的分类变量:
var3 = optimizableVariable (“rvar”, {“r”'o'“y”‘g’“b”“我”“v”},“类型”,“分类”)
var3 = optimizablevvariable with properties: Name: 'rvar' Range: {'r' ' 'o' 'y' ' 'g' 'b' 'i' ' 'v'} Type: 'categorical' Transform: 'none'最优化:1