Результаты байесовской оптимизации
A BayesianOptimization содержит результаты байесовской оптимизации. Это выход bayesopt или функцию аппроксимации, которая принимает OptimizeHyperparameters пара имя-значение, например fitcdiscr. Кроме того, BayesianOptimization объект содержит данные для каждой итерации bayesopt к которому можно получить доступ с помощью функции графика или функции вывода.
Создать BayesianOptimization с использованием bayesopt функцию или функцию аппроксимации с помощью OptimizeHyperparameters пара имя-значение.
ObjectiveFcn — ObjectiveFcn аргумент, используемый bayesoptЭто свойство доступно только для чтения.
ObjectiveFcn аргумент, используемый bayesopt, возвращается как дескриптор функции.
При звонке bayesopt непосредственно, ObjectiveFcn является bayesopt аргумент целевой функции.
При вызове функции посадки, содержащей 'OptimizeHyperparameters' аргумент пары имя-значение, ObjectiveFcn - дескриптор функции, который возвращает коэффициент неправильной классификации для классификации или возвращает логарифм единицы плюс потери перекрестной проверки для регрессии, измеренные пятикратной перекрестной проверкой.
Типы данных: 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 | Детерминированные ограничения для переменных. См. раздел Детерминированные ограничения - XConstringFcn. |
ConditionalVariableFcn | Ограничения условной переменной. См. раздел Условные зависимости - УсловияFcn. |
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около-D столЭто свойство доступно только для чтения.
Наблюдаемая точка с минимальным значением целевой функции, возвращаемая в виде 1около-D таблица, где D - количество переменных.
Типы данных: table
MinEstimatedObjective - Минимальное расчетное значение целевой функцииЭто свойство доступно только для чтения.
Минимальное оценочное значение целевой функции, возвращаемое как действительный скаляр. MinEstimatedObjective использует конечную целевую модель.
MinEstimatedObjective совпадает с CriterionValue результат bestPoint с критерием по умолчанию.
Типы данных: double
XAtMinEstimatedObjective - Точка с минимальным расчетным значением целевой функции1около-D столЭто свойство доступно только для чтения.
Точка с минимальным расчетным значением целевой функции, возвращаемая в виде 1около-D таблица, где D - количество переменных. XAtMinEstimatedObjective использует конечную целевую модель.
Типы данных: table
NumObjectiveEvaluations - Количество оценок целевых функцийЭто свойство доступно только для чтения.
Число оценок целевой функции, возвращаемое как положительное целое число. Это включает в себя первоначальные оценки для формирования задней модели, а также оценку во время итераций оптимизации.
Типы данных: double
TotalElapsedTime - Общее прошедшее время оптимизации в секундахЭто свойство доступно только для чтения.
Общее прошедшее время оптимизации в секундах, возвращенное как положительный скаляр.
Типы данных: double
NextPoint - Следующая точка, чтобы оценить, если оптимизация продолжается1около-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.
Типы данных: 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'.
Для воспроизводимости задайте случайное начальное число, задайте раздел и установите значение 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% потерь для пятикратной перекрестной проверки по умолчанию.
Осмотрите 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.