贝叶斯优化的变量
创建优化变量的语法
对于目标函数中的每个变量,使用创建一个变量描述对象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