exponenta event banner

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