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' (категориальная переменная).

Примечание

Тип данных MATLAB обоих 'real' и 'integer' переменные являются стандартным числом плавающей точки двойной точности. Тип данных 'categorical' переменные категориальны. Так, например, чтобы считать значение категориальной переменной с именем 'colorv' в таблице переменных с именем x, используйте команду char(x.colorv). Для получения примера смотрите целевую функцию в Пользовательских выходных функциях.

Пример: 'Type','categorical'

Преобразование, примененное к переменной, задается как 'none' (без преобразования) или 'log' (логарифмическое преобразование).

Для 'log', переменная должна быть 'real' или '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.

Функции объекта

bayesoptВыберите оптимальные гиперпараметры машинного обучения с помощью байесовской оптимизации

Примеры

свернуть все

Действительная переменная от 0 до 1:

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

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

Целое число переменная от 1 до 1000 по журналу шкале:

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

         Name: 'ivar'
        Range: [1 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