Main Content

optimizableVariable

bayesopt またはその他のオプティマイザーの変数の説明

説明

オプティマイザーの変数を作成します。

作成

説明

variable = optimizableVariable(Name,Range) は、指定された名前および値の範囲を使用して変数を作成します。

variable = optimizableVariable(Name,Range,Name,Value) は、名前と値の引数を使用してプロパティを設定します。たとえば、optimizableVariable('xvar',[1 1000],'Type','integer') は、1 ~ 1000 の整数変数を作成します。複数の名前と値の引数を指定できます。各プロパティ名は引用符で囲みます。

プロパティ

すべて展開する

変数名。文字ベクトルまたは string スカラーを指定します。名前は一意でなければなりません。つまり、最適化に含まれている他の変数の名前と異なっていなければなりません。

メモ

  • optimizableVariable には 2 つの名前が関連付けられます。

    • 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 要素の増加する有限実数ベクトル、またはカテゴリカル変数の名前の cell 配列または string 配列を指定します。

  • 実数または整数変数の場合、Range はその変数の下限と上限を与えます。

  • カテゴリカル変数の場合、Range は可能な値を与えます。

例: [-10,1]

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

データ型: double | string | cell

変数の型。'real' (実数変数)、'integer' (整数変数) または 'categorical' (カテゴリカル変数) を指定します。

メモ

'real''integer' の変数の MATLAB データ型は、どちらも標準的な倍精度浮動小数点数です。'categorical' の変数のデータ型はカテゴリカルです。したがって、たとえば、x という名前のテーブル変数に含まれている 'colorv' という名前のカテゴリカル変数の値を読み取るには、char(x.colorv) コマンドを使用します。例については、カスタム出力関数の目的関数を参照してください。

例: '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];
  • 'integer''real'Type。たとえば、以下のようにします。

    xvar.Type = 'integer';
  • 実数または整数の変数の、'log''none' の間での Transform。たとえば、以下のようにします。

    xvar.Transform = 'log';

この柔軟性により、たとえば、続行する最適化を微調整できます。ドット表記を使用して範囲または変換を更新してから resume を呼び出します。

オブジェクト関数

bayesoptベイズ最適化を使用した最適な機械学習のハイパーパラメーターの選択

すべて折りたたむ

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 で導入