Байесовы результаты оптимизации
BayesianOptimization
объект содержит результаты Байесовой оптимизации. Это - выход bayesopt
или подходящая функция, которая принимает OptimizeHyperparameters
пара "имя-значение" такой как fitcdiscr
. Кроме того, BayesianOptimization
объект содержит данные для каждой итерации bayesopt
к этому могут получить доступ функция построения графика или выходная функция.
Создайте BayesianOptimization
объект при помощи bayesopt
функционируйте или одна из следующих подходящих функций с OptimizeHyperparameters
аргумент значения имени.
Функции подгонки классификации: fitcdiscr
, fitcecoc
, fitcensemble
, fitcgam
, fitckernel
, fitcknn
, fitclinear
, fitcnb
, fitcnet
, fitcsvm
, fitctree
Функции подгонки регрессии: fitrensemble
, fitrgam
, fitrgp
, fitrkernel
, fitrlinear
, fitrnet
, fitrsvm
, fitrtree
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
вектор из гиперпараметров.
Options
— Опции, что 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
— Наблюдаемая точка с минимальным значением целевой функции
- D
таблицаЭто свойство доступно только для чтения.
Наблюдаемая точка с минимальным значением целевой функции в виде 1
- D
таблица, где D
количество переменных.
Типы данных: table
MinEstimatedObjective
— Предполагаемое значение целевой функцииЭто свойство доступно только для чтения.
Предполагаемое значение целевой функции в XAtMinEstimatedObjective
В виде действительного скаляра.
MinEstimatedObjective
среднее значение апостериорного распределения итоговой объективной модели. Программное обеспечение оценивает MinEstimatedObjective
значение путем передачи XAtMinEstimatedObjective
к объектной функции predictObjective
.
Типы данных: double
XAtMinEstimatedObjective
— Точка с минимальной верхней доверительной границей значения целевой функции
- D
таблицаЭто свойство доступно только для чтения.
Точка с минимальной верхней доверительной границей значения целевой функции среди посещаемых точек в виде 1
- D
таблица, где D
количество переменных. Программное обеспечение использует итоговую объективную модель, чтобы найти верхние доверительные границы посещаемых точек.
XAtMinEstimatedObjective
совпадает с лучшей точкой, возвращенной bestPoint
функция с критерием по умолчанию ('min-visited-upper-confidence-interval'
).
Типы данных: table
NumObjectiveEvaluations
— Количество оценок целевой функцииЭто свойство доступно только для чтения.
Количество оценок целевой функции в виде положительного целого числа. Это включает начальные оценки, чтобы сформировать следующую модель, а также оценку во время итераций оптимизации.
Типы данных: double
TotalElapsedTime
— Общее прошедшее время оптимизации в секундахЭто свойство доступно только для чтения.
Общее прошедшее время оптимизации в секундах в виде положительной скалярной величины.
Типы данных: double
NextPoint
— Следующий вопрос, чтобы оценить, если оптимизация продолжается
- D
таблицаЭто свойство доступно только для чтения.
Следующий вопрос, чтобы оценить, если оптимизация продолжается в виде 1
- D
таблица, где D
количество переменных.
Типы данных: table
XTrace
— Точки, где целевая функция была выполненаT
- D
таблицаЭто свойство доступно только для чтения.
Точки, где целевая функция была выполнена в виде T
- D
таблица, где T
количество точек оценки и D
количество переменных.
Типы данных: table
ObjectiveTrace
— Значения целевой функцииT
Это свойство доступно только для чтения.
Значения целевой функции в виде вектор-столбца длины T
, где T
количество точек оценки. ObjectiveTrace
содержит историю оценок целевой функции.
Типы данных: double
ObjectiveEvaluationTimeTrace
— Времена оценки целевой функцииT
Это свойство доступно только для чтения.
Времена оценки целевой функции в виде вектор-столбца длины T
, где T
количество точек оценки. ObjectiveEvaluationTimeTrace
включает время в оценку двойных ограничений, потому что целевая функция вычисляет эти ограничения.
Типы данных: double
IterationTimeTrace
— Времена итерацииT
Это свойство доступно только для чтения.
Времена итерации в виде вектор-столбца длины T
, где T
количество точек оценки. IterationTimeTrace
включает и время оценки целевой функции и другие издержки.
Типы данных: double
ConstraintsTrace
— Двойные ограничительные значенияT
- K
массивЭто свойство доступно только для чтения.
Двойные ограничительные значения в виде T
- 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
количество точек оценки. Предполагаемая цель в каждой итерации определяется относительно объективной модели в той итерации. В каждой итерации программное обеспечение использует объектную функцию predictObjective
оценить значение целевой функции в точке с минимальной верхней доверительной границей целевой функции среди посещаемых точек.
Типы данных: 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: 27.7297 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 | 15.886 | 0.21937 | 0.21937 | 64.836 | 0.0015729 | | 2 | Accept | 0.35897 | 0.12347 | 0.21937 | 0.22807 | 0.036335 | 5.5755 | | 3 | Best | 0.13105 | 6.5879 | 0.13105 | 0.14149 | 0.0022147 | 0.0023957 | | 4 | Accept | 0.35897 | 0.12384 | 0.13105 | 0.13108 | 5.1259 | 98.62 | | 5 | Best | 0.12536 | 0.15415 | 0.12536 | 0.12538 | 0.0010294 | 0.037239 | | 6 | Accept | 0.12536 | 0.16645 | 0.12536 | 0.12438 | 0.0010315 | 0.015779 | | 7 | Accept | 0.13105 | 0.97638 | 0.12536 | 0.12423 | 0.025736 | 0.022239 | | 8 | Accept | 0.21083 | 16.622 | 0.12536 | 0.12335 | 925.73 | 0.075659 | | 9 | Accept | 0.12536 | 0.15273 | 0.12536 | 0.1251 | 0.0010018 | 0.019314 | | 10 | Accept | 0.1396 | 0.25382 | 0.12536 | 0.12441 | 0.001062 | 0.0084719 | | 11 | Best | 0.11681 | 0.16627 | 0.11681 | 0.12048 | 0.001015 | 0.025891 | | 12 | Accept | 0.12536 | 0.16888 | 0.11681 | 0.12209 | 0.001004 | 0.027453 | | 13 | Accept | 0.12821 | 0.12926 | 0.11681 | 0.12344 | 0.0010094 | 0.028817 | | 14 | Accept | 0.33618 | 0.13133 | 0.11681 | 0.12271 | 0.0010009 | 0.51387 | | 15 | Accept | 0.35897 | 0.10759 | 0.11681 | 0.12274 | 2.252 | 631.08 | | 16 | Accept | 0.35897 | 0.099959 | 0.11681 | 0.12274 | 0.0010846 | 30.355 | | 17 | Accept | 0.35897 | 0.099714 | 0.11681 | 0.12273 | 0.0010073 | 214.99 | | 18 | Accept | 0.35897 | 0.096005 | 0.11681 | 0.12273 | 0.0010147 | 997.96 | | 19 | Accept | 0.14245 | 0.10556 | 0.11681 | 0.12347 | 0.0010042 | 0.13018 | | 20 | Accept | 0.1339 | 0.12193 | 0.11681 | 0.12308 | 0.0010072 | 0.071288 | |=====================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | BoxConstraint| KernelScale | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 21 | Accept | 0.12536 | 0.15268 | 0.11681 | 0.12354 | 0.0010259 | 0.022573 | | 22 | Accept | 0.12536 | 0.15333 | 0.11681 | 0.12378 | 0.0010247 | 0.021897 | | 23 | Accept | 0.33903 | 0.10192 | 0.11681 | 0.12377 | 1.2002 | 17.967 | | 24 | Accept | 0.35897 | 0.12071 | 0.11681 | 0.12379 | 0.0010021 | 1.8669 | | 25 | Accept | 0.35897 | 0.1189 | 0.11681 | 0.12377 | 0.0010005 | 11.471 | | 26 | Accept | 0.35897 | 0.10255 | 0.11681 | 0.12375 | 894.24 | 999.76 | | 27 | Accept | 0.14245 | 0.10639 | 0.11681 | 0.12384 | 997.61 | 272.78 | | 28 | Accept | 0.14245 | 0.10966 | 0.11681 | 0.12384 | 999.84 | 146.94 | | 29 | Accept | 0.12821 | 0.12809 | 0.11681 | 0.12384 | 0.0073473 | 0.086267 | | 30 | Accept | 0.12251 | 0.16313 | 0.11681 | 0.12386 | 0.0070132 | 0.04651 |
__________________________________________________________ Optimization completed. MaxObjectiveEvaluations of 30 reached. Total function evaluations: 30 Total elapsed time: 65.6535 seconds Total objective function evaluation time: 43.5305 Best observed feasible point: BoxConstraint KernelScale _____________ ___________ 0.001015 0.025891 Observed objective function value = 0.11681 Estimated objective function value = 0.12386 Function evaluation time = 0.16627 Best estimated feasible point (according to models): BoxConstraint KernelScale _____________ ___________ 0.001015 0.025891 Estimated objective function value = 0.12386 Estimated function evaluation time = 0.15191
Mdl = ClassificationSVM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'none' NumObservations: 351 HyperparameterOptimizationResults: [1x1 BayesianOptimization] Alpha: [100x1 double] Bias: -4.5641 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.1239 XAtMinEstimatedObjective: [1x2 table] NumObjectiveEvaluations: 30 TotalElapsedTime: 65.6535 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]
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.