贝叶斯优化的变量(Variables for a Bayesian Optimization)

MATLAB原文链接

1、用于创建优化变量的语法

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

variable = optimizableVariable(Name,Range)

此函数用于创建一个范围从下限范围(1)到上限范围(2)的实变量。
可以在类型名称值参数中指定三种类型的变量:

'real'–有限边界之间的连续实值。将范围作为两个元素向量[lower upper],表示下限和上限。
'integer'–有限边界之间的整数值,类似于'real'
'Categorical' --在Range参数中指定的可能值的名称的单元格数组,例如{'red''green''blue'}。
对于'real''integer'变量,可以通过将Transform name value参数设置为'log'来指定bayesopt在对数缩放空间中搜索。对于此转换,请确保范围中的下限对于'real'严格为正,对于'integer'严格为非负。
bayesopt 的变量作为向量包含在第二个参数中。

results = bayesopt(fun,[xvar,ivar,rvar])

要从优化中排除变量,请在optimizableVariable的参数中或通过点表示法将optimizableVariable设置为false
要从优化中排除变量,请在 optimizableVariablename-value参数中或通过点表示法将 Optimize 设置为 false

xvar.Optimize = false;

2、Tip

有两个名称与optimizableVariable关联:

  1. MATLAB®workspace变量名
  2. 优化中变量的名称
    例如,
xvar = optimizableVariable('spacevar',[1,100]);

xvar是MATLAB工作空间变量,'spacevar'是优化中的变量。
使用以下名称:
xvar用作传递给bayesopt的变量向量中的元素。例如,

results = bayesopt(fun,[xvar,tvar])

使用'spacevar'作为优化中变量的名称。例如,在目标函数中,

function objective = mysvmfun(x,cdata,grp)
SVMModel = fitcsvm(cdata,grp,'KernelFunction','rbf',...
    'BoxConstraint',x.spacevar,...
    'KernelScale',x.tvar);
objective = kfoldLoss(crossval(SVMModel));

3、Variables for Optimization Examples

  1. Real variable from 0 to 1:
var1 = optimizableVariable('xvar',[0 1])
var1 = 
  optimizableVariable with properties:

         Name: 'xvar'
        Range: [0 1]
         Type: 'real'
    Transform: 'none'
     Optimize: 1
  1. Integer variable from 0 to 1000 on a log scale:
var2 = optimizableVariable('ivar',[0 1000],'Type','integer','Transform','log')
var2 = 
  optimizableVariable with properties:

         Name: 'ivar'
        Range: [0 1000]
         Type: 'integer'
    Transform: 'log'
     Optimize: 1
  1. Categorical variable of rainbow colors:
var3 = optimizableVariable('rvar',{'r' 'o' 'y' 'g' 'b' 'i' 'v'},'Type','categorical')
var3 = 
  optimizableVariable with properties:

         Name: 'rvar'
        Range: {'r'  'o'  'y'  'g'  'b'  'i'  'v'}
         Type: 'categorical'
    Transform: 'none'
     Optimize: 1
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值