Байесовские результаты оптимизации
A BayesianOptimization
объект содержит результаты байесовской оптимизации. Это выход bayesopt
или функцию аппроксимации, которая принимает OptimizeHyperparameters
Пара "имя-значение", такие как fitcdiscr
. В сложение a BayesianOptimization
объект содержит данные для каждой итерации bayesopt
к которому можно получить доступ с помощью функции построения графика или выходной функции.
Создайте BayesianOptimization
использование объекта bayesopt
функция или функция аппроксимации с OptimizeHyperparameters
Пара "имя-значение".
ObjectiveFcn
— ObjectiveFcn
аргумент, используемый bayesopt
Это свойство доступно только для чтения.
ObjectiveFcn
аргумент, используемый bayesopt
, возвращается как указатель на функцию.
Если вы звоните bayesopt
непосредственно, ObjectiveFcn
является bayesopt
аргумент функции.
Если вы вызываете функцию fit, содержащую 'OptimizeHyperparameters'
аргумент пары "имя-значение", ObjectiveFcn
- указатель на функцию, который возвращает скорость неправильной классификации для классификации или возвращает логарифм единицы плюс потери перекрестной валидации для регрессии, измеренные пятикратной перекрестной валидацией.
Типы данных: function_handle
VariableDescriptions
— VariableDescriptions
аргумент, который bayesopt
б/УoptimizableVariable
объектыЭто свойство доступно только для чтения.
VariableDescriptions
аргумент, который bayesopt
используется, возвращается как вектор optimizableVariable
объекты.
Если вы позвонили bayesopt
непосредственно, VariableDescriptions
является bayesopt
аргумент описания переменной.
Если вы вызвали функцию fit с OptimizeHyperparameters
Пара "имя-значение", VariableDescriptions
- вектор гиперпараметров.
Options
- Опции, которые bayesopt
б/УЭто свойство доступно только для чтения.
Опции, которые bayesopt
используется, возвращается как структура.
Если вы позвонили bayesopt
непосредственно, Options
- опции, используемые в bayesopt
, которые являются парами "имя-значение" См. bayesopt
Входные параметры.
Если вы вызвали функцию fit с 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
- Минимальное наблюдаемое значение целевой функцииЭто свойство доступно только для чтения.
Минимальное наблюдаемое значение целевой функции, возвращаемое как действительный скаляр. Когда существуют связанные ограничения или ошибки оценки, это значение является минимальным по всем наблюдаемым точкам, которые допустимы в соответствии с конечными моделями ограничений и ошибок.
Типы данных: 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
.
Типы данных: logical
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'
. Чтобы подавить итерационное отображение, задайте 'Verbose'
на 0
. Передайте разделы c
и подбор данных X
и Y
к целевой функции fun
путем создания fun
как анонимная функция, которая включает в себя эти данные. См. Параметризация функций.
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: 85.9010 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.20513 | 21.603 | 0.20513 | 0.20513 | 64.836 | 0.0015729 | | 2 | Accept | 0.35897 | 0.39269 | 0.20513 | 0.21471 | 0.036335 | 5.5755 | | 3 | Best | 0.13105 | 11.882 | 0.13105 | 0.14133 | 0.0022147 | 0.0023957 | | 4 | Accept | 0.35897 | 0.23727 | 0.13105 | 0.13109 | 5.1259 | 98.62 | | 5 | Best | 0.12536 | 0.85649 | 0.12536 | 0.12538 | 0.0010035 | 0.022328 | | 6 | Accept | 0.13105 | 0.5998 | 0.12536 | 0.12624 | 0.0010683 | 0.010111 | | 7 | Accept | 0.1339 | 0.74139 | 0.12536 | 0.12546 | 0.0010422 | 0.0092339 | | 8 | Accept | 0.13105 | 8.3916 | 0.12536 | 0.12545 | 0.073559 | 0.013649 | | 9 | Accept | 0.12536 | 0.36602 | 0.12536 | 0.12536 | 0.004201 | 0.036641 | | 10 | Accept | 0.12536 | 0.26415 | 0.12536 | 0.1251 | 0.0010019 | 0.048774 | | 11 | Accept | 0.12821 | 0.4705 | 0.12536 | 0.12586 | 0.0010389 | 0.032236 | | 12 | Accept | 0.12536 | 0.33724 | 0.12536 | 0.12485 | 0.0088035 | 0.050804 | | 13 | Accept | 0.13105 | 0.31094 | 0.12536 | 0.12627 | 0.010612 | 0.039027 | | 14 | Best | 0.12251 | 0.32727 | 0.12251 | 0.12434 | 0.0010188 | 0.054959 | | 15 | Accept | 0.12251 | 0.50242 | 0.12251 | 0.12341 | 0.0010193 | 0.060797 | | 16 | Accept | 0.18234 | 27.658 | 0.12251 | 0.12339 | 982.41 | 0.061539 | | 17 | Accept | 0.12536 | 0.23811 | 0.12251 | 0.12387 | 0.0011921 | 0.068996 | | 18 | Accept | 0.1339 | 0.14245 | 0.12251 | 0.1238 | 0.001054 | 0.090485 | | 19 | Accept | 0.12536 | 0.23321 | 0.12251 | 0.12369 | 0.0010318 | 0.048155 | | 20 | Accept | 0.14245 | 0.16127 | 0.12251 | 0.12351 | 0.0033218 | 0.48658 | |=====================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | BoxConstraint| KernelScale | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 21 | Accept | 0.1396 | 0.1984 | 0.12251 | 0.12359 | 0.0011213 | 0.26917 | | 22 | Accept | 0.1339 | 0.19936 | 0.12251 | 0.12362 | 0.090154 | 0.31906 | | 23 | Accept | 0.35897 | 0.12703 | 0.12251 | 0.12365 | 4.7175 | 567.41 | | 24 | Accept | 0.35897 | 0.1614 | 0.12251 | 0.12374 | 4.4477 | 998.29 | | 25 | Accept | 0.13675 | 0.10585 | 0.12251 | 0.12336 | 0.026541 | 1.3348 | | 26 | Accept | 0.12251 | 0.17536 | 0.12251 | 0.12337 | 0.22207 | 0.89524 | | 27 | Accept | 0.12536 | 0.23248 | 0.12251 | 0.12338 | 3.4035 | 1.0021 | | 28 | Accept | 0.12251 | 0.38345 | 0.12251 | 0.12338 | 1.7753 | 0.75668 | | 29 | Accept | 0.12251 | 0.17042 | 0.12251 | 0.12244 | 0.40018 | 0.85004 | | 30 | Accept | 0.12536 | 0.25447 | 0.12251 | 0.12311 | 0.53182 | 0.86058 |
__________________________________________________________ Optimization completed. MaxObjectiveEvaluations of 30 reached. Total function evaluations: 30 Total elapsed time: 153.2006 seconds Total objective function evaluation time: 77.7245 Best observed feasible point: BoxConstraint KernelScale _____________ ___________ 0.0010188 0.054959 Observed objective function value = 0.12251 Estimated objective function value = 0.12338 Function evaluation time = 0.32727 Best estimated feasible point (according to models): BoxConstraint KernelScale _____________ ___________ 0.53182 0.86058 Estimated objective function value = 0.12311 Estimated function evaluation time = 0.21175
Mdl = ClassificationSVM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'none' NumObservations: 351 HyperparameterOptimizationResults: [1x1 BayesianOptimization] Alpha: [109x1 double] Bias: -3.5170 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.1225 XAtMinObjective: [1x2 table] MinEstimatedObjective: 0.1231 XAtMinEstimatedObjective: [1x2 table] NumObjectiveEvaluations: 30 TotalElapsedTime: 153.2006 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.