BayesianOptimization

Байесовы результаты оптимизации

Описание

Объект BayesianOptimization содержит результаты Байесовой оптимизации. Это - вывод bayesopt или подходящей функции, которая принимает пару "имя-значение" OptimizeHyperparameters, такую как fitcdiscr. Кроме того, объект BayesianOptimization содержит данные для каждой итерации bayesopt, к которому могут получить доступ функция построения графика или выходная функция.

Создание

Создайте объект BayesianOptimization с помощью функции bayesopt или подходящей функции с парой "имя-значение" OptimizeHyperparameters.

Свойства

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

Проблемные свойства определения

Это свойство доступно только для чтения.

Аргумент ObjectiveFcn используется bayesopt, возвращенным как указатель на функцию.

  • Если вы вызываете bayesopt непосредственно, ObjectiveFcn является аргументом целевой функции bayesopt.

  • Если вы вызываете подходящую функцию, содержащую аргумент пары "имя-значение" 'OptimizeHyperparameters', ObjectiveFcn является указателем на функцию, который возвращает misclassification уровень для классификации или возвращает логарифм одного плюс потеря перекрестной проверки для регрессии, измеренной пятикратной перекрестной проверкой.

Типы данных: function_handle

Это свойство доступно только для чтения.

Аргумент VariableDescriptions, что используемый bayesopt, возвратился как вектор объектов optimizableVariable.

  • Если вы вызвали bayesopt непосредственно, VariableDescriptions является аргументом описания переменной bayesopt.

  • Если вы вызвали подходящую функцию с парой "имя-значение" OptimizeHyperparameters, VariableDescriptions является вектором гиперпараметров.

Это свойство доступно только для чтения.

Опции, что используемый bayesopt, возвратились как структура.

  • Если вы вызвали bayesopt непосредственно, Options является опциями, используемыми в bayesopt, которые являются парами "имя-значение", Смотрите Входные параметры bayesopt.

  • Если вы вызвали подходящую функцию с парой "имя-значение" OptimizeHyperparameters, Options опции bayesopt по умолчанию, измененные парой "имя-значение" HyperparameterOptimizationOptions.

Options является структурой только для чтения, содержащей следующие поля.

Имя опцииЗначение
AcquisitionFunctionNameИмя функции приобретения. Смотрите Типы Функции Приобретения.
IsObjectiveDeterministictrue означает, что целевая функция детерминирована, false в противном случае.
ExplorationRatioИспользуемый только, когда AcquisitionFunctionName является 'expected-improvement-plus' или 'expected-improvement-per-second-plus'. Смотрите Плюс.
  
MaxObjectiveEvaluationsПредел оценки целевой функции.
MaxTimeОграничение по времени.
  
XConstraintFcnДетерминированные ограничения на переменные. Смотрите Детерминированные Ограничения — XConstraintFcn.
ConditionalVariableFcnУсловные переменные ограничения. Смотрите Условные Ограничения — ConditionalVariableFcn.
NumCoupledConstraintsКоличество двойных ограничений. Смотрите Двойные Ограничения.
CoupledConstraintTolerancesДвойные допуски ограничения. Смотрите Двойные Ограничения.
AreCoupledConstraintsDeterministicЛогический вектор, задающий, детерминировано ли каждое двойное ограничение.
  
VerboseУровень отображения командной строки.
OutputFcnФункция вызвана после каждой итерации. Смотрите Байесовы Выходные функции Оптимизации.
SaveVariableNameИмя переменной для выходной функции @assignInBase.
SaveFileNameИмя файла для выходной функции @saveToFile.
PlotFcnФункция построения графика называется после каждой итерации. Смотрите Байесовы Функции построения графика Оптимизации
  
InitialXТочки, где bayesopt выполнил целевую функцию.
InitialObjectiveЗначения целевой функции в InitialX.
InitialConstraintViolationsДвойные ограничительные значения функции в InitialX.
InitialErrorValuesОшибочные значения в InitialX.
InitialObjectiveEvaluationTimesВремена оценки целевой функции в InitialX.
InitialIterationTimesВремя для каждой итерации, включая оценку целевой функции и другие вычисления.

Типы данных: struct

Свойства решения

Это свойство доступно только для чтения.

Минимальная наблюдаемая величина целевой функции, возвращенной как действительный скаляр. Когда существуют связанные ограничения или ошибки оценки, это значение является минимумом по всем наблюдаемым точкам, которые выполнимы согласно итоговому ограничению и моделям Error.

Типы данных: double

Это свойство доступно только для чтения.

Наблюдаемая точка с минимальным значением целевой функции, возвращенным как 1-by-D таблица, где D является количеством переменных.

Типы данных: table

Это свойство доступно только для чтения.

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

MinEstimatedObjective совпадает с результатом CriterionValue bestPoint с критерием по умолчанию.

Типы данных: double

Это свойство доступно только для чтения.

Точка с минимальным предполагаемым значением целевой функции, возвращенным как 1-by-D таблица, где D является количеством переменных. XAtMinEstimatedObjective использует итоговую объективную модель.

Типы данных: table

Это свойство доступно только для чтения.

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

Типы данных: double

Это свойство доступно только для чтения.

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

Типы данных: double

Это свойство доступно только для чтения.

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

Типы данных: table

Проследите свойства

Это свойство доступно только для чтения.

Точки, где целевая функция была выполнена, возвратились как T-by-D таблица, где T является количеством точек оценки, и D является количеством переменных.

Типы данных: table

Это свойство доступно только для чтения.

Значения целевой функции, возвращенные как вектор-столбец длины T, где T является количеством точек оценки. ObjectiveTrace содержит историю оценок целевой функции.

Типы данных: double

Это свойство доступно только для чтения.

Времена оценки целевой функции, возвращенные как вектор-столбец длины T, где T является количеством точек оценки. ObjectiveEvaluationTimeTrace включает время в оценку двойных ограничений, потому что целевая функция вычисляет эти ограничения.

Типы данных: double

Это свойство доступно только для чтения.

Времена итерации, возвращенные как вектор-столбец длины T, где T является количеством точек оценки. IterationTimeTrace включает и время оценки целевой функции и другие издержки.

Типы данных: double

Это свойство доступно только для чтения.

Двойные ограничительные значения, возвращенные как T-by-K массив, где T является количеством точек оценки и K, являются количеством двойных ограничений.

Типы данных: double

Это свойство доступно только для чтения.

Ошибочные признаки, возвращенные как вектор-столбец длины T -1 или записей 1, где T является количеством точек оценки. Каждая запись 1 указывает что целевая функция или возвращенный NaN с ошибками на соответствующей точке в XTrace. Каждая запись -1 указывает, что значение целевой функции было вычислено.

Типы данных: double

Это свойство доступно только для чтения.

Признаки выполнимости, возвращенные как логический вектор-столбец длины T, где T является количеством точек оценки. Каждая запись 1 указывает, что итоговая ограничительная модель предсказывает выполнимость в соответствующей точке в XTrace.

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

Это свойство доступно только для чтения.

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

Типы данных: double

Это свойство доступно только для чтения.

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

Типы данных: double

Это свойство доступно только для чтения.

Минимальная наблюдаемая цель, возвращенная как вектор-столбец целочисленных индексов длины T, где T является количеством точек оценки.

Типы данных: double

Это свойство доступно только для чтения.

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

Типы данных: double

Это свойство доступно только для чтения.

Вспомогательные данные из целевой функции, возвращенной как массив ячеек длины T, где T является количеством точек оценки. Каждой записью в массиве ячеек является UserData, возвращенный в третьем выводе целевой функции.

Типы данных: cell

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

bestPointЛучше всего укажите в Байесовой оптимизации согласно критерию
plotПостройте Байесовы результаты оптимизации
predictConstraintsПредскажите связанные ограничительные нарушения в наборе точек
predictErrorПредскажите ошибочное значение в наборе точек
predictObjectiveПредскажите целевую функцию при наборе точек
predictObjectiveEvaluationTimeПредскажите время выполнения целевой функции в наборе точек
resumeВозобновите Байесовую оптимизацию

Примеры

свернуть все

Этот пример показывает, как создать объект BayesianOptimization при помощи bayesopt, чтобы минимизировать потерю перекрестной проверки.

Оптимизируйте гиперпараметры классификатора KNN для данных ionosphere, то есть, найдите гиперпараметры KNN, которые минимизируют потерю перекрестной проверки. Имейте bayesopt, минимизируют по следующим гиперпараметрам:

  • Размеры самого близкого окружения от 1 до 30

  • Расстояние функционирует 'chebychev', 'euclidean' и 'minkowski'.

Для воспроизводимости, набор случайный seed, устанавливает раздел и устанавливает опцию AcquisitionFunctionName на 'expected-improvement-plus'. Опции набора не дают итеративного отображения.

load ionosphere
rng default
num = optimizableVariable('n',[1,30],'Type','integer');
dst = optimizableVariable('dst',{'chebychev','euclidean','minkowski'},'Type','categorical');
c = cvpartition(351,'Kfold',5);
fun = @(x)kfoldLoss(fitcknn(X,Y,'CVPartition',c,'NumNeighbors',x.n,...
    'Distance',char(x.dst),'NSMethod','exhaustive'));
results = bayesopt(fun,[num,dst],'Verbose',0,...
    'AcquisitionFunctionName','expected-improvement-plus')

results = 
  BayesianOptimization with properties:

                      ObjectiveFcn: [function_handle]
              VariableDescriptions: [1x2 optimizableVariable]
                           Options: [1x1 struct]
                      MinObjective: 0.1197
                   XAtMinObjective: [1x2 table]
             MinEstimatedObjective: 0.1213
          XAtMinEstimatedObjective: [1x2 table]
           NumObjectiveEvaluations: 30
                  TotalElapsedTime: 58.4478
                         NextPoint: [1x2 table]
                            XTrace: [30x2 table]
                    ObjectiveTrace: [30x1 double]
                  ConstraintsTrace: []
                     UserDataTrace: {30x1 cell}
      ObjectiveEvaluationTimeTrace: [30x1 double]
                IterationTimeTrace: [30x1 double]
                        ErrorTrace: [30x1 double]
                  FeasibilityTrace: [30x1 logical]
       FeasibilityProbabilityTrace: [30x1 double]
               IndexOfMinimumTrace: [30x1 double]
             ObjectiveMinimumTrace: [30x1 double]
    EstimatedObjectiveMinimumTrace: [30x1 double]

Этот пример показывает, как минимизировать потерю перекрестной проверки в данных ionosphere с помощью Байесовой оптимизации классификатора SVM.

Загрузите данные.

load ionosphere

Оптимизируйте классификацию с помощью параметров 'auto'.

rng default % For reproducibility
Mdl = fitcsvm(X,Y,'OptimizeHyperparameters','auto')

|=====================================================================================================|
| Iter | Eval   | Objective   | Objective   | BestSoFar   | BestSoFar   | BoxConstraint|  KernelScale |
|      | result |             | runtime     | (observed)  | (estim.)    |              |              |
|=====================================================================================================|
|    1 | Best   |     0.21937 |      32.348 |     0.21937 |     0.21937 |       64.836 |    0.0015729 |
|    2 | Accept |     0.35897 |     0.46626 |     0.21937 |     0.22807 |     0.036335 |       5.5755 |
|    3 | Best   |     0.13105 |      10.508 |     0.13105 |     0.14149 |    0.0022147 |    0.0023957 |
|    4 | Accept |     0.35897 |     0.25646 |     0.13105 |     0.13108 |       5.1259 |        98.62 |
|    5 | Best   |     0.12536 |     0.37803 |     0.12536 |     0.12538 |    0.0010035 |     0.022328 |
|    6 | Accept |     0.14245 |     0.40112 |     0.12536 |      0.1313 |    0.0010361 |    0.0075842 |
|    7 | Accept |      0.1339 |      21.602 |     0.12536 |     0.13151 |    0.0010606 |    0.0010329 |
|    8 | Accept |      0.1339 |     0.51091 |     0.12536 |     0.12541 |    0.0010012 |     0.011355 |
|    9 | Accept |     0.13105 |     0.84889 |     0.12536 |     0.12553 |     0.032529 |     0.027193 |
|   10 | Best   |     0.12251 |     0.14933 |     0.12251 |     0.12273 |    0.0010019 |     0.041937 |
|   11 | Best   |     0.11966 |      0.1871 |     0.11966 |     0.12037 |    0.0036598 |     0.046052 |
|   12 | Accept |     0.12536 |     0.19759 |     0.11966 |     0.12261 |     0.002826 |     0.037397 |
|   13 | Accept |     0.12251 |     0.12606 |     0.11966 |     0.12188 |    0.0010544 |     0.057552 |
|   14 | Best   |     0.11681 |     0.18478 |     0.11681 |     0.11726 |    0.0093957 |     0.076859 |
|   15 | Accept |     0.13675 |     0.51422 |     0.11681 |     0.11823 |      0.26979 |     0.098969 |
|   16 | Accept |     0.12251 |     0.15949 |     0.11681 |     0.11836 |    0.0025598 |      0.09816 |
|   17 | Accept |     0.11681 |     0.25179 |     0.11681 |     0.11712 |    0.0074403 |     0.068932 |
|   18 | Accept |     0.12536 |     0.26686 |     0.11681 |     0.12013 |    0.0092864 |     0.069455 |
|   19 | Accept |     0.12536 |     0.20115 |     0.11681 |     0.12017 |    0.0011692 |     0.068238 |
|   20 | Accept |     0.35897 |     0.28347 |     0.11681 |     0.12028 |    0.0010034 |       132.88 |
|=====================================================================================================|
| Iter | Eval   | Objective   | Objective   | BestSoFar   | BestSoFar   | BoxConstraint|  KernelScale |
|      | result |             | runtime     | (observed)  | (estim.)    |              |              |
|=====================================================================================================|
|   21 | Accept |     0.35897 |     0.31405 |     0.11681 |     0.12029 |       983.69 |       989.67 |
|   22 | Accept |     0.35897 |     0.17467 |     0.11681 |      0.1204 |    0.0011306 |       999.57 |
|   23 | Accept |     0.13105 |      1.3161 |     0.11681 |     0.11978 |       994.95 |       3.3076 |
|   24 | Accept |     0.13675 |      21.617 |     0.11681 |     0.11974 |       949.11 |      0.64283 |
|   25 | Accept |     0.35897 |     0.19245 |     0.11681 |     0.11977 |      0.44361 |        997.9 |
|   26 | Accept |      0.1339 |     0.19391 |     0.11681 |     0.11958 |       998.03 |       78.387 |
|   27 | Accept |     0.11681 |     0.25626 |     0.11681 |     0.11959 |       992.71 |       24.411 |
|   28 | Accept |     0.13105 |     0.17073 |     0.11681 |     0.11968 |       997.54 |       32.433 |
|   29 | Accept |     0.12821 |     0.25023 |     0.11681 |      0.1197 |       975.96 |        12.37 |
|   30 | Accept |     0.12821 |     0.19848 |     0.11681 |     0.12136 |    0.0048326 |      0.06475 |

__________________________________________________________
Optimization completed.
MaxObjectiveEvaluations of 30 reached.
Total function evaluations: 30
Total elapsed time: 140.7144 seconds.
Total objective function evaluation time: 94.5245

Best observed feasible point:
    BoxConstraint    KernelScale
    _____________    ___________

      0.0093957       0.076859  

Observed objective function value = 0.11681
Estimated objective function value = 0.12136
Function evaluation time = 0.18478

Best estimated feasible point (according to models):
    BoxConstraint    KernelScale
    _____________    ___________

      0.0048326        0.06475  

Estimated objective function value = 0.12136
Estimated function evaluation time = 0.20087
Mdl = 
  ClassificationSVM
                         ResponseName: 'Y'
                CategoricalPredictors: []
                           ClassNames: {'b'  'g'}
                       ScoreTransform: 'none'
                      NumObservations: 351
    HyperparameterOptimizationResults: [1x1 BayesianOptimization]
                                Alpha: [100x1 double]
                                 Bias: -4.1707
                     KernelParameters: [1x1 struct]
                       BoxConstraints: [351x1 double]
                      ConvergenceInfo: [1x1 struct]
                      IsSupportVector: [351x1 logical]
                               Solver: 'SMO'


  Properties, Methods

Подгонка достигла приблизительно 12%-й потери для 5-кратной перекрестной проверки по умолчанию.

Исследуйте объект BayesianOptimization, который возвращен в свойстве HyperparameterOptimizationResults возвращенной модели.

disp(Mdl.HyperparameterOptimizationResults)
  BayesianOptimization with properties:

                      ObjectiveFcn: @createObjFcn/inMemoryObjFcn
              VariableDescriptions: [5x1 optimizableVariable]
                           Options: [1x1 struct]
                      MinObjective: 0.1168
                   XAtMinObjective: [1x2 table]
             MinEstimatedObjective: 0.1214
          XAtMinEstimatedObjective: [1x2 table]
           NumObjectiveEvaluations: 30
                  TotalElapsedTime: 140.7144
                         NextPoint: [1x2 table]
                            XTrace: [30x2 table]
                    ObjectiveTrace: [30x1 double]
                  ConstraintsTrace: []
                     UserDataTrace: {30x1 cell}
      ObjectiveEvaluationTimeTrace: [30x1 double]
                IterationTimeTrace: [30x1 double]
                        ErrorTrace: [30x1 double]
                  FeasibilityTrace: [30x1 logical]
       FeasibilityProbabilityTrace: [30x1 double]
               IndexOfMinimumTrace: [30x1 double]
             ObjectiveMinimumTrace: [30x1 double]
    EstimatedObjectiveMinimumTrace: [30x1 double]

Введенный в R2017b

Для просмотра документации необходимо авторизоваться на сайте