Main Content

optimizableVariable

Descripción de variables para bayesopt u otros optimizadores

Descripción

Crear variables para optimizadores.

Creación

Descripción

ejemplo

variable = optimizableVariable(Name,Range) crea una variable con el nombre y el rango de valores especificados.

ejemplo

variable = optimizableVariable(Name,Range,Name,Value) establece las propiedades utilizando argumentos nombre-valor. Por ejemplo, optimizableVariable('xvar',[1 1000],'Type','integer') crea una variable de enteros de 1 a 1000. Puede especificar varios argumentos nombre-valor. Encierre cada nombre de propiedad entre comillas.

Propiedades

expandir todo

Nombre de la variable, especificado como un vector de caracteres o un escalar de cadena. El nombre debe ser único, es decir, diferente de los de otras variables en la optimización.

Nota

  • Hay dos nombres asociados a una optimizableVariable:

    • El nombre de la variable del área de trabajo de MATLAB®

    • El nombre de la variable en la optimización

    Por ejemplo:

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

    xvar es la variable del área de trabajo de MATLAB y 'spacevar' es la variable en la optimización.

    Utilice estos nombres de la siguiente manera:

    • Utilice xvar como un elemento del vector de variables que se pasan a bayesopt. Por ejemplo:

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

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

Ejemplo: 'X1'

Tipos de datos: char | string

Rango de las variables, especificado como un vector real creciente finito de 2 elementos o como un arreglo de cadenas o un arreglo de celdas de nombres de variables categóricas:

  • Para variables reales o de enteros, Range da el límite inferior y el límite superior de esa variable.

  • Para variables categóricas, Range da los valores posibles.

Ejemplo: [-10,1]

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

Tipos de datos: double | string | cell

Tipo de variable, especificado como 'real' (variable real), 'integer' (variable de enteros) o 'categorical' (variable categórica).

Nota

El tipo de datos de MATLAB tanto de las variables 'real' como de las variables 'integer' es el número estándar de punto flotante de doble precisión. El tipo de datos de las variables 'categorical' es categórico. De modo que, por ejemplo, para leer un valor de una variable categórica denominado 'colorv' en una tabla de variables denominada x, utilice el comando char(x.colorv). Para ver un ejemplo, consulte la función objetivo en Custom Output Functions.

Ejemplo: 'Type','categorical'

Transformada aplicada a una variable, especificada como 'none' (no transformada) o 'log' (transformada logarítmica).

Para 'log', la variable debe ser una variable real positiva ('Type','real') o una variable de enteros no negativa ('Type','integer'). El software busca y modela la variable en una escala logarítmica.

Ejemplo: 'Transform','log'

Indicación para utilizar una variable en la optimización, especificada como true (utilizar la variable) o false (no utilizar la variable).

Ejemplo: 'Optimize',false

Tipos de datos: logical

Nota

Puede utilizar la notación de puntos para cambiar las siguientes propiedades después de la creación.

  • Range de variables reales o de enteros. Por ejemplo:

    xvar = optimizableVariable('x',[-10,10]);
    % Modify the range:
    xvar.Range = [1,5];
  • Type entre 'integer' y 'real'. Por ejemplo:

    xvar.Type = 'integer';
  • Transform de variables reales o de enteros entre 'log' y 'none'. Por ejemplo:

    xvar.Transform = 'log';

Puede utilizar esta flexibilidad, por ejemplo, para retocar una optimización que desee continuar. Actualice el rango o la transformada utilizando la notación de puntos y, luego, llame a resume.

Funciones del objeto

bayesoptSelect optimal machine learning hyperparameters using Bayesian optimization

Ejemplos

contraer todo

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 de enteros de 0 a 1000 en una escala logarítmica:

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

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

Variable categórica de los colores del arco iris:

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

Historial de versiones

Introducido en R2016b