optimizableVariable

Описание переменной для bayesopt или другие оптимизаторы

Описание

Создайте переменные для оптимизаторов.

Создание

Описание

пример

variable = optimizableVariable(Name,Range) создает переменную с указанным именем и областью значений значений.

пример

variable = optimizableVariable(Name,Range,Name,Value) аргументы пары "имя-значение" использования свойств наборов. Например, optimizableVariable('xvar',[1 1000],'Type','integer') создает целочисленную переменную от 1 до 1 000. Можно задать несколько аргументов пары "имя-значение". Заключите каждое имя свойства в кавычки.

Свойства

развернуть все

Имя переменной в виде вектора символов или строкового скаляра. Имя должно быть уникальным, означая отличающийся от тех из других переменных в оптимизации.

Примечание

  • Существует два имени, сопоставленные с 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

Типы данных: логический

Примечание

Можно использовать запись через точку, чтобы изменить следующие свойства после создания.

  • 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 до 1 000 на логарифмической шкале:

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

Введенный в R2017b