主要内容

optimizableVariable

bayesopt 或其他优化器的变量描述

说明

为优化器创建变量。

创建对象

描述

variable = optimizableVariable(Name,Range) 创建一个具有指定名称和值范围的变量。

示例

variable = optimizableVariable(Name,Range,Name,Value) 使用名称-值参量设置属性。例如,optimizableVariable('xvar',[1 1000],'Type','integer') 创建一个从 1 到 1000 的整数变量。您可以指定多个名称-值参量。用引号将每个属性名称引起来。

示例

属性

全部展开

变量名称,指定为字符向量或字符串标量。名称必须唯一,即与优化中其他变量的名称不同。

注意

  • optimizableVariable 有两个关联的名称:

    • MATLAB® 工作区变量名称

    • 优化中变量的名称

    例如,

    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));

示例: 'X1'

数据类型: char | string

变量范围,指定为 2 元素有限递增实数向量,或指定为字符串数组或类别名称元胞数组:

  • 对于实数变量或整数变量,Range 给出该变量的下界和上界。

  • 对于分类变量,Range 给出可能的值。

示例: [-10,1]

示例: {'red','blue','black'}

数据类型: double | string | cell

变量类型,指定为 'real'(实数变量)、'integer'(整数变量)或 'categorical'(分类变量)。

注意

'real''integer' 变量的 MATLAB 数据类型是标准的双精度浮点数。'categorical' 变量的数据类型是分类数据类型。因此,假如要读取名为 x 的变量表中名为 'colorv' 的分类变量的值,请使用命令 char(x.colorv)。有关示例,请参阅Custom Output Functions中的目标函数。

示例: 'Type','categorical'

应用于变量的变换,指定为 'none'(无变换)或 'log'(对数变换)。

对于 'log',变量必须为正实数变量 ('Type','real') 或非负整数变量 ('Type','integer')。软件在对数刻度上搜索该变量并对其进行建模。

示例: 'Transform','log'

在优化中使用变量的指示,指定为 true(使用变量)或 false(不使用变量)。

示例: 'Optimize',false

数据类型: logical

注意

您可以使用圆点表示法在创建后更改以下属性。

  • 实数变量或整数变量的 Range。例如,

    xvar = optimizableVariable('x',[-10,10]);
    % Modify the range:
    xvar.Range = [1,5];
  • Type'integer''real'。例如,

    xvar.Type = 'integer';
  • 实数变量或整数变量的 Transform'log''none'。例如,

    xvar.Transform = 'log';

例如您可以使用这种灵活性调整您要继续的优化。使用圆点表示法更新范围或变换,然后调用 resume

对象函数

bayesoptSelect optimal machine learning hyperparameters using Bayesian optimization

示例

全部折叠

从 0 到 1 的实数变量:

var1 = optimizableVariable('xvar',[0 1])
var1 = 
  optimizableVariable with properties:

         Name: 'xvar'
        Range: [0 1]
         Type: 'real'
    Transform: 'none'
     Optimize: 1

对数刻度上的从 0 到 1000 的整数变量:

var2 = optimizableVariable('ivar',[0 1000],'Type','integer','Transform','log')
var2 = 
  optimizableVariable with properties:

         Name: 'ivar'
        Range: [0 1000]
         Type: 'integer'
    Transform: 'log'
     Optimize: 1

由彩虹颜色组成的分类变量:

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

版本历史记录

在 R2016b 中推出