变量的贝叶斯优化
语法创建优化变量
在你的目标函数为每个变量,创建一个变量描述对象使用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) SVMModel = fitcsvm (grp cdata,‘KernelFunction’,‘rbf’,……“BoxConstraint”,x.spacevar,……KernelScale, x.tvar);目标= kfoldLoss (crossval (SVMModel));
为优化变量的例子
实变量从0到1:
var1 = optimizableVariable (“xvar”[0,1])
var1 = optimizableVariable属性:名称:“xvar”范围:[0 1]类型:“真实”的变换:“没有一个”优化:1
从0到1000的整数变量对数尺度:
var2 = optimizableVariable (“ivar”1000年[0],“类型”,“整数”,“转换”,“日志”)
var2 = optimizableVariable属性:名称:“ivar”范围:1000年[0]类型:“整数”转变:“日志”优化:1
分类变量的彩虹颜色:
var3 = optimizableVariable (“rvar”,{“r”“o”“y”‘g’“b”“我”“v”},“类型”,“分类”)
var3 = optimizableVariable属性:名称:“rvar”范围:{' r ' ' o ' y ' g ' ' b ' '我' ' v '}类型:“直言”转变:“没有一个”优化:1