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