Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

BayesianOptimization

Los resultados de optimización bayesiana

Descripción

Un objeto contiene los resultados de una optimización bayesiana.BayesianOptimization Es la salida de o una función de ajuste que acepta el par nombre-valor como.bayesoptOptimizeHyperparametersfitcdiscr Además, un objeto contiene datos para cada iteración de los que se puede acceder mediante una función de trazado o una función de salida.BayesianOptimizationbayesopt

Creación

Cree un objeto utilizando la función o una función de ajuste con el par nombre-valor.BayesianOptimizationbayesoptOptimizeHyperparameters

Propiedades

expandir todo

Propiedades de definición de problema

Esta propiedad es de solo lectura.

argumento utilizado por, devuelto como un identificador de función.ObjectiveFcnbayesopt

  • Si llama directamente, es el argumento de la función objetiva.bayesoptObjectiveFcnbayesopt

  • Si se llama a una función de ajuste que contiene el argumento de par nombre-valor, es un identificador de función que devuelve la tasa de clasificación errónea para la clasificación o devuelve el logaritmo de uno más la pérdida de validación cruzada para la regresión, medido por cinco veces validación cruzada.'OptimizeHyperparameters'ObjectiveFcn

Tipos de datos: function_handle

Esta propiedad es de solo lectura.

argumento que se usa, devuelto como un vector de objetos.VariableDescriptionsbayesoptoptimizableVariable

  • Si llama directamente, es el argumento de descripción de variable.bayesoptVariableDescriptionsbayesopt

  • Si ha llamado a una función de ajuste con el par nombre-valor, es el vector de los hiperparámetros.OptimizeHyperparametersVariableDescriptions

Esta propiedad es de solo lectura.

Opciones que se usan, devueltas como una estructura.bayesopt

  • Si ha llamado directamente, se utilizan las opciones, que son los pares nombre-valor ver.bayesoptOptionsbayesoptbayesoptArgumentos de entrada

  • Si ha llamado a una función de ajuste con el par nombre-valor, son las opciones predeterminadas, modificadas por el par nombre-valor.OptimizeHyperparametersOptionsbayesoptHyperparameterOptimizationOptions

es una estructura de solo lectura que contiene los siguientes campos.Options

Nombre de opciónSignificado
AcquisitionFunctionNameNombre de la función de adquisición. Ver.Tipos de función de adquisición
IsObjectiveDeterministicsignifica que la función objetiva es determinista, de lo contrario.truefalse
ExplorationRatioSe utiliza sólo cuando es o.AcquisitionFunctionName'expected-improvement-plus''expected-improvement-per-second-plus' Ver.Más
  
MaxObjectiveEvaluationsLímite de evaluación de funciones objetivas.
MaxTimeLímite de tiempo.
  
XConstraintFcnRestricciones deterministas en variables. Ver.Restricciones deterministas —XConstraintFcn
ConditionalVariableFcnRestricciones de variables condicionales. Ver.Restricciones condicionales —ConditionalVariableFcn
NumCoupledConstraintsNúmero de restricciones acopladas. Ver.Restricciones acopladas
CoupledConstraintTolerancesTolerancias de restricción acopladas. Ver.Restricciones acopladas
AreCoupledConstraintsDeterministicVector lógico que especifica si cada restricción acoplada es determinista.
  
VerboseNivel de visualización de línea de comandos.
OutputFcnFunción llamada después de cada iteración. Ver.Funciones de salida de optimización bayesiana
SaveVariableNameNombre de variable para la función de salida.@assignInBase
SaveFileNameNombre de archivo para la función de salida.@saveToFile
PlotFcnFunción de trazado llamada después de cada iteración. VerFunciones de trazado de optimización bayesiana
  
InitialXPuntos donde se evalúa la función objetiva.bayesopt
InitialObjectiveValores de función objetiva en.InitialX
InitialConstraintViolationsValores de función de restricción acoplados.InitialX
InitialErrorValuesValores de error en.InitialX
InitialObjectiveEvaluationTimesTiempos de evaluación de función objetiva en.InitialX
InitialIterationTimesTiempo para cada iteración, incluida la evaluación de la función objetiva y otros cálculos.

Tipos de datos: struct

Propiedades de la solución

Esta propiedad es de solo lectura.

Valor mínimo observado de la función objetiva, devuelto como un escalar real. Cuando hay restricciones acopladas o errores de evaluación, este valor es el mínimo sobre todos los puntos observados que son factibles de acuerdo con la restricción final y los modelos de error.

Tipos de datos: double

Esta propiedad es de solo lectura.

Punto observado con valor de función objetivo mínimo, devuelto como a-por-tabla, donde es el número de variables.1DD

Tipos de datos: table

Esta propiedad es de solo lectura.

Valor mínimo estimado de la función objetiva, devuelto como un escalar real. utiliza el modelo objetivo final.MinEstimatedObjective

es el mismo que el resultado de un criterio predeterminado.MinEstimatedObjectiveCriterionValuebestPoint

Tipos de datos: double

Esta propiedad es de solo lectura.

Punto con el valor de función objetivo mínimo estimado, devuelto como a-por-tabla, donde es el número de variables. utiliza el modelo objetivo final.1DDXAtMinEstimatedObjective

Tipos de datos: table

Esta propiedad es de solo lectura.

Número de evaluaciones de funciones objetivas, devueltas como un entero positivo. Esto incluye las evaluaciones iniciales para formar un modelo posterior, así como la evaluación durante las iteraciones de optimización.

Tipos de datos: double

Esta propiedad es de solo lectura.

Tiempo total transcurrido de optimización en segundos, devuelto como un escalar positivo.

Tipos de datos: double

Esta propiedad es de solo lectura.

Siguiente punto para evaluar si la optimización continúa, devuelta como una-por-tabla, donde es el número de variables.1DD

Tipos de datos: table

Propiedades de seguimiento

Esta propiedad es de solo lectura.

Puntos donde se evaluó la función objetiva, devuelta como una-por-tabla, donde está el número de puntos de evaluación y es el número de variables.TDTD

Tipos de datos: table

Esta propiedad es de solo lectura.

Valores de función objetiva, devueltos como un vector de columna de longitud, donde es el número de puntos de evaluación. contiene el historial de las evaluaciones de funciones objetivas.TTObjectiveTrace

Tipos de datos: double

Esta propiedad es de solo lectura.

Tiempos de evaluación de función objetiva, devueltos como un vector de columna de longitud, donde es el número de puntos de evaluación. incluye el tiempo de evaluación de las restricciones acopladas, ya que la función objetiva calcula estas restricciones.TTObjectiveEvaluationTimeTrace

Tipos de datos: double

Esta propiedad es de solo lectura.

Tiempos de iteración, devueltos como un vector de columna de longitud, donde es el número de puntos de evaluación. incluye tanto el tiempo de evaluación de función objetiva como otros gastos generales.TTIterationTimeTrace

Tipos de datos: double

Esta propiedad es de solo lectura.

Valores de restricción acoplados, devueltos como a-por-Array, donde es el número de puntos de evaluación y es el número de restricciones acopladas.TKTK

Tipos de datos: double

Esta propiedad es de solo lectura.

Indicaciones de error, devueltas como vector de columna de longitud o entradas, donde está el número de puntos de evaluación.T-11T Cada entrada indica que la función objetiva ha sido con errores o devuelta en el punto correspondiente.1NaNXTrace Cada entrada indica que se calculó el valor de la función objetiva.-1

Tipos de datos: double

Esta propiedad es de solo lectura.

Las indicaciones de viabilidad, devueltas como un vector de columna lógico de longitud, donde es el número de puntos de evaluación.TT Cada entrada indica que el modelo de restricción final predice la viabilidad en el punto correspondiente.1XTrace

Tipos de datos: logical

Esta propiedad es de solo lectura.

Probabilidad de que el punto de evaluación sea factible, devuelto como un vector de columna de longitud, donde es el número de puntos de evaluación.TT Las probabilidades provienen del modelo de restricción final, incluido el modelo de restricción de errores, en los puntos correspondientes.XTrace

Tipos de datos: double

Esta propiedad es de solo lectura.

Qué evaluación dio el objetivo mínimo factible, devuelto como un vector de columna de índices enteros de longitud, donde es el número de puntos de evaluación.TT La viabilidad se determina con respecto a los modelos de restricción que existían en cada iteración, incluido el modelo de restricción de errores.

Tipos de datos: double

Esta propiedad es de solo lectura.

Objetivo mínimo observado, devuelto como un vector de columna de índices enteros de longitud, donde es el número de puntos de evaluación.TT

Tipos de datos: double

Esta propiedad es de solo lectura.

Objetivo mínimo estimado, devuelto como un vector de columna de índices enteros de longitud, donde es el número de puntos de evaluación.TT El objetivo estimado en cada iteración se determina con respecto al modelo objetivo que existía en esa iteración.

Tipos de datos: double

Esta propiedad es de solo lectura.

Los datos auxiliares de la función objetiva, devueltos como una matriz de longitud de celda, donde es el número de puntos de evaluación.TT Cada entrada en la matriz de celdas es la devuelta en la tercera salida de la función objetiva.UserData

Tipos de datos: cell

Funciones del objeto

bestPointEl mejor punto en una optimización bayesiana según un criterio
plotTrace los resultados de la optimización bayesiana
predictConstraintsPredecir infracciones de restricciones acopladas en un conjunto de puntos
predictErrorPredecir el valor de error en un conjunto de puntos
predictObjectivePredecir la función objetiva en un conjunto de puntos
predictObjectiveEvaluationTimePredecir los tiempos de ejecución de la función objetiva en un conjunto de puntos
resumeReanude una optimización bayesiana

Ejemplos

contraer todo

En este ejemplo se muestra cómo crear un objeto mediante el uso para minimizar la pérdida de validación cruzada.BayesianOptimizationbayesopt

Optimice los hiperparámetros de un clasificador KNN para los datos, es decir, encuentre los hiperparámetros KNN que minimizan la pérdida de validación cruzada.ionosphere Minimice los siguientes hiperparámetros:bayesopt

  • Los tamaños de vecindad más cercanos de 1 a 30

  • Funciones de distancia, y.'chebychev''euclidean''minkowski'

Para reproducibilidad, establezca la inicialización aleatoria, establezca la partición y establezca la opción en.AcquisitionFunctionName'expected-improvement-plus' Las opciones de conjunto no proporcionan una visualización iterativa.

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: 113.3536                          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]  

En este ejemplo se muestra cómo minimizar la pérdida de validación cruzada en los datos mediante la optimización bayesiana de un clasificador SVM.ionosphere

Cargue los datos.

load ionosphere

Optimice la clasificación utilizando los parámetros.'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.23362 |       60.71 |     0.23362 |     0.23362 |       64.836 |    0.0015729 | |    2 | Accept |     0.35897 |     0.41042 |     0.23362 |     0.24142 |     0.036335 |       5.5755 | |    3 | Best   |     0.13105 |      25.733 |     0.13105 |     0.14119 |    0.0022147 |    0.0023957 | |    4 | Accept |     0.35897 |     0.38267 |     0.13105 |     0.13108 |       5.1259 |        98.62 | |    5 | Best   |     0.12536 |      0.8146 |     0.12536 |     0.12538 |    0.0010294 |     0.037239 | |    6 | Accept |     0.12821 |     0.63773 |     0.12536 |     0.12534 |    0.0010316 |     0.014375 | |    7 | Accept |     0.13105 |      6.1715 |     0.12536 |     0.12404 |     0.020078 |     0.017312 | |    8 | Best   |     0.12251 |     0.37918 |     0.12251 |     0.12371 |    0.0010149 |     0.023067 | |    9 | Accept |     0.16809 |      60.912 |     0.12251 |     0.12355 |       958.26 |     0.080075 | |   10 | Accept |     0.12251 |     0.30643 |     0.12251 |     0.12253 |     0.001008 |     0.026832 | |   11 | Accept |     0.12536 |     0.47632 |     0.12251 |     0.12332 |    0.0016633 |     0.026667 | |   12 | Best   |     0.11681 |     0.80859 |     0.11681 |     0.12229 |    0.0010107 |     0.024507 | |   13 | Accept |     0.35897 |     0.20649 |     0.11681 |     0.12237 |       3.0475 |       655.54 | |   14 | Accept |     0.35897 |     0.22537 |     0.11681 |     0.12234 |    0.0036916 |       112.09 | |   15 | Accept |     0.34473 |     0.21112 |     0.11681 |     0.12173 |    0.0010032 |      0.54787 | |   16 | Accept |     0.35897 |     0.24323 |     0.11681 |     0.12176 |    0.0010063 |       22.548 | |   17 | Accept |     0.35897 |     0.22203 |     0.11681 |     0.12178 |     0.001019 |       997.51 | |   18 | Accept |     0.14245 |     0.51106 |     0.11681 |     0.12145 |    0.0010046 |      0.15151 | |   19 | Accept |      0.1339 |     0.32041 |     0.11681 |     0.12139 |    0.0010021 |      0.08582 | |   20 | Accept |      0.1339 |      2.4262 |     0.11681 |     0.12128 |    0.0010425 |    0.0052036 | |=====================================================================================================| | Iter | Eval   | Objective   | Objective   | BestSoFar   | BestSoFar   | BoxConstraint|  KernelScale | |      | result |             | runtime     | (observed)  | (estim.)    |              |              | |=====================================================================================================| |   21 | Accept |     0.12536 |      1.1474 |     0.11681 |     0.12211 |    0.0010899 |     0.022372 | |   22 | Accept |     0.35897 |     0.31522 |     0.11681 |      0.1221 |    0.0010029 |       1.9368 | |   23 | Accept |     0.35897 |     0.28971 |     0.11681 |     0.12211 |    0.0047926 |       316.09 | |   24 | Accept |     0.35897 |     0.20769 |     0.11681 |     0.12212 |    0.0010277 |       50.109 | |   25 | Accept |     0.35897 |     0.22381 |     0.11681 |     0.12211 |       117.57 |       999.81 | |   26 | Accept |     0.15385 |     0.25338 |     0.11681 |     0.12186 |       863.58 |        285.7 | |   27 | Accept |     0.12821 |     0.26309 |     0.11681 |     0.12197 |     0.012106 |      0.10858 | |   28 | Accept |      0.1339 |       0.518 |     0.11681 |     0.12197 |      0.02977 |     0.059989 | |   29 | Accept |     0.13105 |     0.78058 |     0.11681 |     0.12198 |      0.16487 |      0.12027 | |   30 | Accept |     0.35897 |     0.18329 |     0.11681 |     0.12198 |       1.1531 |       25.406 |  __________________________________________________________ Optimization completed. MaxObjectiveEvaluations of 30 reached. Total function evaluations: 30 Total elapsed time: 275.6663 seconds. Total objective function evaluation time: 166.2911  Best observed feasible point:     BoxConstraint    KernelScale     _____________    ___________        0.0010107       0.024507    Observed objective function value = 0.11681 Estimated objective function value = 0.12198 Function evaluation time = 0.80859  Best estimated feasible point (according to models):     BoxConstraint    KernelScale     _____________    ___________        0.0010107       0.024507    Estimated objective function value = 0.12198 Estimated function evaluation time = 0.66188 
Mdl =    ClassificationSVM                          ResponseName: 'Y'                 CategoricalPredictors: []                            ClassNames: {'b'  'g'}                        ScoreTransform: 'none'                       NumObservations: 351     HyperparameterOptimizationResults: [1x1 BayesianOptimization]                                 Alpha: [100x1 double]                                  Bias: -4.7037                      KernelParameters: [1x1 struct]                        BoxConstraints: [351x1 double]                       ConvergenceInfo: [1x1 struct]                       IsSupportVector: [351x1 logical]                                Solver: 'SMO'     Properties, Methods  

El ajuste logró aproximadamente un 12% de pérdida para la validación cruzada por defecto de 5 veces.

Examine el objeto que se devuelve en la propiedad del modelo devuelto.BayesianOptimizationHyperparameterOptimizationResults

disp(Mdl.HyperparameterOptimizationResults)
  BayesianOptimization with properties:                        ObjectiveFcn: @createObjFcn/inMemoryObjFcn               VariableDescriptions: [5x1 optimizableVariable]                            Options: [1x1 struct]                       MinObjective: 0.1168                    XAtMinObjective: [1x2 table]              MinEstimatedObjective: 0.1220           XAtMinEstimatedObjective: [1x2 table]            NumObjectiveEvaluations: 30                   TotalElapsedTime: 275.6663                          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] 

Introducido en R2016b