Байесовы результаты оптимизации
Объект BayesianOptimization
содержит результаты Байесовой оптимизации. Это - вывод bayesopt
или подходящей функции, которая принимает пару "имя-значение" OptimizeHyperparameters
, такую как fitcdiscr
. Кроме того, объект BayesianOptimization
содержит данные для каждой итерации bayesopt
, к которому могут получить доступ функция построения графика или выходная функция.
Создайте объект BayesianOptimization
с помощью функции bayesopt
или подходящей функции с парой "имя-значение" OptimizeHyperparameters
.
ObjectiveFcn
— ObjectiveFcn
используется bayesopt
Это свойство доступно только для чтения.
Аргумент ObjectiveFcn
используется bayesopt
, возвращенным как указатель на функцию.
Если вы вызываете bayesopt
непосредственно, ObjectiveFcn
является аргументом целевой функции bayesopt
.
Если вы вызываете подходящую функцию, содержащую аргумент пары "имя-значение" 'OptimizeHyperparameters'
, ObjectiveFcn
является указателем на функцию, который возвращает misclassification уровень для классификации или возвращает логарифм одного плюс потеря перекрестной проверки для регрессии, измеренной пятикратной перекрестной проверкой.
Типы данных: function_handle
VariableDescriptions
— VariableDescriptions
, что bayesopt
используетсяoptimizableVariable
Это свойство доступно только для чтения.
Аргумент VariableDescriptions
, что используемый bayesopt
, возвратился как вектор объектов optimizableVariable
.
Если вы вызвали bayesopt
непосредственно, VariableDescriptions
является аргументом описания переменной bayesopt
.
Если вы вызвали подходящую функцию с парой "имя-значение" OptimizeHyperparameters
, VariableDescriptions
является вектором гиперпараметров.
Опции
Опции, что bayesopt
используетсяЭто свойство доступно только для чтения.
Опции, что используемый bayesopt
, возвратились как структура.
Если вы вызвали bayesopt
непосредственно, Options
является опциями, используемыми в bayesopt
, которые являются парами "имя-значение", Смотрите
Входные параметры bayesopt
.
Если вы вызвали подходящую функцию с парой "имя-значение" OptimizeHyperparameters
, Options
опции bayesopt
по умолчанию, измененные парой "имя-значение" HyperparameterOptimizationOptions
.
Options
является структурой только для чтения, содержащей следующие поля.
Имя опции | Значение |
---|---|
AcquisitionFunctionName | Имя функции приобретения. Смотрите Типы Функции Приобретения. |
IsObjectiveDeterministic | true означает, что целевая функция детерминирована, 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
MinObjective
— Минимальная наблюдаемая величина целевой функцииЭто свойство доступно только для чтения.
Минимальная наблюдаемая величина целевой функции, возвращенной как действительный скаляр. Когда существуют связанные ограничения или ошибки оценки, это значение является минимумом по всем наблюдаемым точкам, которые выполнимы согласно итоговому ограничению и моделям Error.
Типы данных: double
XAtMinObjective
— Наблюдаемая точка с минимальным значением целевой функции1
-by-D
таблицаЭто свойство доступно только для чтения.
Наблюдаемая точка с минимальным значением целевой функции, возвращенным как 1
-by-D
таблица, где D
является количеством переменных.
Типы данных: table
MinEstimatedObjective
— Минимальная ориентировочная стоимость целевой функцииЭто свойство доступно только для чтения.
Минимальная ориентировочная стоимость целевой функции, возвращенной как действительный скаляр. MinEstimatedObjective
использует итоговую объективную модель.
MinEstimatedObjective
совпадает с результатом CriterionValue
bestPoint
с критерием по умолчанию.
Типы данных: double
XAtMinEstimatedObjective
— Точка с минимальным предполагаемым значением целевой функции1
-by-D
таблицаЭто свойство доступно только для чтения.
Точка с минимальным предполагаемым значением целевой функции, возвращенным как 1
-by-D
таблица, где D
является количеством переменных. XAtMinEstimatedObjective
использует итоговую объективную модель.
Типы данных: table
NumObjectiveEvaluations
— Количество оценок целевой функцииЭто свойство доступно только для чтения.
Количество оценок целевой функции, возвращенных как положительное целое число. Это включает начальные оценки, чтобы сформировать следующую модель, а также оценку во время итераций оптимизации.
Типы данных: double
TotalElapsedTime
— Общее прошедшее время оптимизации в секундахЭто свойство доступно только для чтения.
Общее прошедшее время оптимизации в секундах, возвращенных как положительная скалярная величина.
Типы данных: double
NextPoint
— Следующий вопрос, чтобы оценить, если оптимизация продолжается1
-by-D
таблицаЭто свойство доступно только для чтения.
Следующий вопрос, чтобы оценить, если оптимизация продолжается, возвратился как 1
-by-D
таблица, где D
является количеством переменных.
Типы данных: table
XTrace
— Точки, где целевая функция была выполненаT
-by-D
таблицаЭто свойство доступно только для чтения.
Точки, где целевая функция была выполнена, возвратились как T
-by-D
таблица, где T
является количеством точек оценки, и D
является количеством переменных.
Типы данных: table
ObjectiveTrace
— Значения целевой функцииT
Это свойство доступно только для чтения.
Значения целевой функции, возвращенные как вектор-столбец длины T
, где T
является количеством точек оценки. ObjectiveTrace
содержит историю оценок целевой функции.
Типы данных: double
ObjectiveEvaluationTimeTrace
— Времена оценки целевой функцииT
Это свойство доступно только для чтения.
Времена оценки целевой функции, возвращенные как вектор-столбец длины T
, где T
является количеством точек оценки. ObjectiveEvaluationTimeTrace
включает время в оценку двойных ограничений, потому что целевая функция вычисляет эти ограничения.
Типы данных: double
IterationTimeTrace
— Времена итерацииT
Это свойство доступно только для чтения.
Времена итерации, возвращенные как вектор-столбец длины T
, где T
является количеством точек оценки. IterationTimeTrace
включает и время оценки целевой функции и другие издержки.
Типы данных: double
ConstraintsTrace
— Двойные ограничительные значенияT
-by-K
массивЭто свойство доступно только для чтения.
Двойные ограничительные значения, возвращенные как T
-by-K
массив, где T
является количеством точек оценки и K
, являются количеством двойных ограничений.
Типы данных: double
ErrorTrace
— Ошибочные признакиT
-1
или записей 1
Это свойство доступно только для чтения.
Ошибочные признаки, возвращенные как вектор-столбец длины T
-1
или записей 1
, где T
является количеством точек оценки. Каждая запись 1
указывает что целевая функция или возвращенный NaN
с ошибками на соответствующей точке в XTrace
. Каждая запись -1
указывает, что значение целевой функции было вычислено.
Типы данных: double
FeasibilityTrace
— Признаки выполнимостиT
Это свойство доступно только для чтения.
Признаки выполнимости, возвращенные как логический вектор-столбец длины T
, где T
является количеством точек оценки. Каждая запись 1
указывает, что итоговая ограничительная модель предсказывает выполнимость в соответствующей точке в XTrace
.
Типы данных: логический
FeasibilityProbabilityTrace
— Вероятность, что точка оценки выполнимаT
Это свойство доступно только для чтения.
Вероятность, что точка оценки выполнима, возвратилась как вектор-столбец длины T
, где T
является количеством точек оценки. Вероятности прибывают из итоговой ограничительной модели, включая ошибочную ограничительную модель, на соответствующих точках в XTrace
.
Типы данных: double
IndexOfMinimumTrace
— Какая оценка дала минимальную выполнимую цельT
Это свойство доступно только для чтения.
То, которое оценка дала минимальной выполнимой цели, возвратилось как вектор-столбец целочисленных индексов длины T
, где T
является количеством точек оценки. Выполнимость определяется относительно ограничительных моделей, которые существовали в каждой итерации, включая ошибочную ограничительную модель.
Типы данных: double
ObjectiveMinimumTrace
— Минимальная наблюдаемая цельT
Это свойство доступно только для чтения.
Минимальная наблюдаемая цель, возвращенная как вектор-столбец целочисленных индексов длины T
, где T
является количеством точек оценки.
Типы данных: double
EstimatedObjectiveMinimumTrace
— Минимальная предполагаемая цельT
Это свойство доступно только для чтения.
Минимальная предполагаемая цель, возвращенная как вектор-столбец целочисленных индексов длины T
, где T
является количеством точек оценки. Предполагаемая цель в каждой итерации определяется относительно объективной модели, которая существовала в той итерации.
Типы данных: double
UserDataTrace
— Вспомогательные данные из целевой функцииT
Это свойство доступно только для чтения.
Вспомогательные данные из целевой функции, возвращенной как массив ячеек длины T
, где T
является количеством точек оценки. Каждой записью в массиве ячеек является UserData
, возвращенный в третьем выводе целевой функции.
Типы данных: cell
bestPoint | Лучше всего укажите в Байесовой оптимизации согласно критерию |
plot | Постройте Байесовы результаты оптимизации |
predictConstraints | Предскажите связанные ограничительные нарушения в наборе точек |
predictError | Предскажите ошибочное значение в наборе точек |
predictObjective | Предскажите целевую функцию при наборе точек |
predictObjectiveEvaluationTime | Предскажите время выполнения целевой функции в наборе точек |
resume | Возобновите Байесовую оптимизацию |
BayesianOptimization
Используя bayesopt
Этот пример показывает, как создать объект 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]
BayesianOptimization
Используя подходящую функциюЭтот пример показывает, как минимизировать потерю перекрестной проверки в данных 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]
bayesopt
| fitcdiscr
| fitcecoc
| fitcensemble
| fitcknn
| fitclinear
| fitcnb
| fitcsvm
| fitctree
| fitrensemble
| fitrgp
| fitrlinear
| fitrsvm
| fitrtree
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.