Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Las variables para una optimización bayesiana

Sintaxis para crear variables de optimización

Para cada variable de la función objetivo, cree un objeto de descripción de variable utilizando.optimizableVariable Cada variable tiene un nombre único y un rango de valores. La sintaxis mínima para la creación de variables es

variable = optimizableVariable(Name,Range)

Esta función crea una variable real que oscila entre el límite inferior y el límite superior.Range(1)Range(2)

Puede especificar tres tipos de variables en el par nombre-valor:Type

  • — Valores reales continuos entre límites finitos.'real' Dar como el vector de dos elementos, que representan los límites inferior y superior.Range[lower upper]

  • — Valores enteros entre límites finitos, similares a.'integer''real'

  • — Matriz de celdas de nombres de valores posibles, como, por ejemplo, que especifique en el argumento.'categorical'{'red','green','blue'}Range

Para o variables, puede especificar que las búsquedas en un espacio con escalado de registros estableciendo el par nombre-valor.'real''integer'bayesoptTransform'log' Para esta transformación, asegúrese de que el límite inferior en el es estrictamente positivo.Range

Incluya variables como vector en el segundo argumento.bayesopt

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

Para excluir una variable de una optimización, establezca en el par nombre-valor de, o por notación de puntos:OptimizefalseoptimizableVariable

xvar.Optimize = false;

Sugerencia

  • Hay dos nombres asociados con un:optimizableVariable

    • El nombre de variable del espacio de trabajoMATLAB®

    • El nombre de la variable en la optimización

    Por ejemplo,

    xvar = optimizableVariable('spacevar',[1,100]);

    es la variable de espacio de trabajo y es la variable en la optimización.xvarMATLAB'spacevar'

    Utilice estos nombres de la siguiente manera:

    • Se utiliza como un elemento en el vector de las variables a las que se pasa.xvarbayesopt Por ejemplo,

      results = bayesopt(fun,[xvar,tvar])
    • Utilice como nombre de la variable en la optimización.'spacevar' Por ejemplo, en una función objetiva,

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

Variables para ejemplos de optimización

Variable real de 0 a 1:

var1 = optimizableVariable('xvar',[0 1])
var1 =    optimizableVariable with properties:           Name: 'xvar'         Range: [0 1]          Type: 'real'     Transform: 'none'      Optimize: 1  

Variable entera de 1 a 1000 en una escala de registro:

var2 = optimizableVariable('ivar',[1 1000],'Type','integer','Transform','log')
var2 =    optimizableVariable with properties:           Name: 'ivar'         Range: [1 1000]          Type: 'integer'     Transform: 'log'      Optimize: 1  

Variable categórica de colores arcoíris:

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  

Temas relacionados