主要内容

BayesianOptimization

贝叶斯优化结果

描述

一个BayesianOptimization对象包含贝叶斯优化的结果。它是的输出bayesopt或者拟合函数接受OptimizeHyperparameters名称-值对,例如fitcdiscr.此外,aBayesianOptimization的每次迭代的数据bayesopt可以通过绘图函数或输出函数访问。

创建

创建一个BayesianOptimization对象,使用bayesopt函数或下列之一将函数与OptimizeHyperparameters名称-值参数。

属性

全部展开

问题定义属性

此属性是只读的。

ObjectiveFcn参数bayesopt,指定为函数句柄。

  • 如果你打电话bayesopt直接ObjectiveFcnbayesopt目标函数参数。

  • 如果调用包含“OptimizeHyperparameters”名值对参数,ObjectiveFcn是一个函数句柄,用于返回分类的误分类率,或返回1加上回归的交叉验证损失的对数,由五倍交叉验证测量。

数据类型:function_handle

此属性是只读的。

VariableDescriptions观点:bayesopt用的,指定为的向量optimizableVariable对象。

  • 如果你打电话bayesopt直接VariableDescriptionsbayesopt变量描述参数。

  • 如果你调用一个拟合函数OptimizeHyperparameters名称-值对,VariableDescriptions是超参数向量。

此属性是只读的。

选项bayesopt使用的,指定为结构的

  • 如果你打电话bayesopt直接选项选项是否在bayesopt,即名值对,参见bayesopt输入参数

  • 如果你调用一个拟合函数OptimizeHyperparameters名称-值对,选项都是默认的bayesopt选项,由HyperparameterOptimizationOptions名称-值对。

选项是包含以下字段的只读结构。

选项名称 意义
AcquisitionFunctionName 采集函数名称。看到采集函数类型
IsObjectiveDeterministic 真正的表示目标函数是确定的,否则。
ExplorationRatio 仅用于以下情况AcquisitionFunctionName“expected-improvement-plus”“expected-improvement-per-second-plus”.看到+
MaxObjectiveEvaluations 目标函数评价极限。
MaxTime 时间限制。
XConstraintFcn 变量的确定性约束。看到确定性约束- XConstraintFcn
ConditionalVariableFcn 条件变量约束。看到条件约束- ConditionalVariableFcn
NumCoupledConstraints 耦合约束的数量。看到耦合约束
CoupledConstraintTolerances 耦合约束公差。看到耦合约束
AreCoupledConstraintsDeterministic 指定每个耦合约束是否确定的逻辑向量。
详细的 命令行显示级别。
OutputFcn 函数在每次迭代后调用。看到贝叶斯优化输出函数
SaveVariableName 变量名。@assignInBase输出函数。
SaveFileName 的文件名@saveToFile输出函数。
PlotFcn 每次迭代后调用的Plot函数。看到贝叶斯优化图函数
InitialX 点,bayesopt评估目标函数。
InitialObjective 目标函数值InitialX
InitialConstraintViolations 耦合约束函数值为InitialX
InitialErrorValues 错误值为InitialX
InitialObjectiveEvaluationTimes 目标函数求值次数为InitialX
InitialIterationTimes 每次迭代的时间,包括目标函数求值等计算。

数据类型:结构体

解决方案属性

此属性是只读的。

目标函数的最小观测值,以实标量表示。当存在耦合约束或评估误差时,该值是根据最终约束和误差模型可行的所有观测点的最小值。

数据类型:

此属性是只读的。

具有最小目标函数值的观测点,用a表示1——- - - - - -D表,D是变量的数量。

数据类型:表格

此属性是只读的。

的估计目标函数值XAtMinEstimatedObjective,指定为实标量。

MinEstimatedObjective为最终目标模型的后验分布的平均值。该软件估计MinEstimatedObjective值通过传递XAtMinEstimatedObjective到对象函数predictObjective

数据类型:

此属性是只读的。

访问点中目标函数值置信上限最小的点,表示为a1——- - - - - -D表,D是变量的数量。该软件使用最终目标模型来寻找被访问点的置信上限。

XAtMinEstimatedObjective是否与返回的最佳点相同bestPoint函数使用默认条件(“min-visited-upper-confidence-interval”).

数据类型:表格

此属性是只读的。

目标函数求值的个数,指定为正整数。这包括形成后验模型的初始评估,以及优化迭代过程中的评估。

数据类型:

此属性是只读的。

优化运行的总时间(以秒为单位),指定为正标量。

数据类型:

此属性是只读的。

下一个计算优化是否继续的点,指定为1——- - - - - -D表,D是变量的数量。

数据类型:表格

跟踪属性

此属性是只读的。

对目标函数进行评估的点,指定为aT——- - - - - -D表,T是多少个评价点和D是变量的数量。

数据类型:表格

此属性是只读的。

目标函数值,指定为长度的列向量T,在那里T是评价点的个数。ObjectiveTrace包含目标函数求值的历史。

数据类型:

此属性是只读的。

目标函数求值次数,指定为长度的列向量T,在那里T是评价点的个数。ObjectiveEvaluationTimeTrace包括计算耦合约束的时间,因为目标函数计算这些约束。

数据类型:

此属性是只读的。

迭代次数,指定为长度的列向量T,在那里T是评价点的个数。IterationTimeTrace包括目标函数计算时间和其他开销。

数据类型:

此属性是只读的。

耦合约束值,指定为T——- - - - - -K数组,T是多少个评价点和K是耦合约束的数量。

数据类型:

此属性是只读的。

错误指示,指定为长度的列向量T-11条目,T是评价点的个数。每一个1Entry表示目标函数出错或返回在相应的点上XTrace.每一个-1条目表示计算了目标函数值。

数据类型:

此属性是只读的。

可行性指示,指定为长度的逻辑列向量T,在那里T是评价点的个数。每一个1Entry表示最终约束模型预测在相应点的可行性XTrace

数据类型:逻辑

此属性是只读的。

计算点可行的概率,指定为长度的列向量T,在那里T是评价点的个数。概率来自于最终约束模型,包括误差约束模型,在相应的点上XTrace

数据类型:

此属性是只读的。

哪个评估给出了最小可行目标,指定为长度整数指标的列向量T,在那里T是评价点的个数。可行性是根据每个迭代中存在的约束模型来确定的,包括错误约束模型。

数据类型:

此属性是只读的。

最小观测目标,指定为长度的列向量T,在那里T是评价点的个数。

数据类型:

此属性是只读的。

估计目标,指定为长度的列向量T,在那里T是评价点的个数。每个迭代中的估计目标是根据该迭代中的目标模型确定的。在每次迭代中,软件使用对象函数predictObjective在访问点中,估计目标函数上置信界最小的点上的目标函数值。

数据类型:

此属性是只读的。

来自目标函数的辅助数据,指定为单元格数组的长度T,在那里T是评价点的个数。单元格数组中的每个条目都是用户数据在目标函数的第三个输出中返回。

数据类型:细胞

对象的功能

bestPoint 贝叶斯优化中的最佳点
情节 绘制贝叶斯优化结果图
predictConstraints 预测一组点上的耦合约束违反
predictError 预测一组点的误差值
predictObjective 在一组点上预测目标函数
predictObjectiveEvaluationTime 预测目标函数在一组点上的运行时间
重新开始 恢复贝叶斯优化

例子

全部折叠

此示例显示如何创建BayesianOptimization对象,使用bayesopt最小化交叉验证损失。

优化KNN分类器的超参数电离层数据,即找到最小交叉验证损失的KNN超参数。有bayesopt最小化以下超参数:

  • 最近邻域大小从1到30

  • 距离函数“chebychev”“欧几里得”,闵可夫斯基的

为了重现性,设置随机种子,设置分区,并设置AcquisitionFunctionName选项“expected-improvement-plus”.要抑制迭代显示,请设置“详细”0.传递分区c拟合数据X而且Y到目标函数有趣的通过创建有趣的作为一个包含此数据的匿名函数。看到参数化功能

负载电离层rng默认的num = optimizableVariable(“n”(1、30),“类型”“整数”);dst = optimizableVariable(dst的, {“chebychev”“欧几里得”闵可夫斯基的},“类型”“分类”);C = cvpartition(351,“Kfold”5);fun = @(x)kfoldLoss(fitcknn(x,Y,“CVPartition”c“NumNeighbors”x.n,...“距离”char (x.dst),“NSMethod”“详尽”));结果= bayesopt(fun,[num,dst],“详细”,0,...“AcquisitionFunctionName”“expected-improvement-plus”

图中包含一个轴对象。标题为目标函数模型的轴对象包含线、面、等高线类型的5个对象。这些对象代表观测点,模型均值,下一个点,模型最小可行。

图中包含一个轴对象。标题为Min objective vs. Number of function的axis对象包含2个类型为line的对象。这些对象代表最小观测目标,估计最小目标。

results = BayesianOptimization with properties: ObjectiveFcn: [function_handle] variabledescription: [1x2 optimizableVariable] Options: [1x1 struct] MinObjective: 0.1197 XAtMinObjective: [1x2 table] MinEstimatedObjective: 0.1213 XAtMinEstimatedObjective: [1x2 table] numobjectiveevaluation: 30 TotalElapsedTime: 29.7824 NextPoint: [1x2 table] XTrace: [30x2 table] ObjectiveTrace: [30x1 double] ConstraintsTrace: [] UserDataTrace: {30x1 cell} ObjectiveEvaluationTimeTrace:[30x1 double] IterationTimeTrace: [30x1 double] ErrorTrace: [30x1 double]可行性trace: [30x1 logical]可行性probabilitytrace: [30x1 double] IndexOfMinimumTrace: [30x1 double] objectivminimumtrace: [30x1 double] estimatedobjectivminimumtrace: [30x1 double]

实例中如何最小化交叉验证损失电离层数据的贝叶斯优化SVM分类器。

加载数据。

负载电离层

类优化分类“汽车”参数。

rng默认的%用于再现性Mdl = fitcsvm(X,Y,“OptimizeHyperparameters”“汽车”
|=====================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar | BoxConstraint | KernelScale | | |结果| |运行时| | (estim(观察) .) | | | |=====================================================================================================| | 最好1 | | 0.22222 | 9.7944 | 0.22222 | 0.22222 | 64.836 | 0.0015729 | | 2 |接受| 0.35897 | 0.073885 | 0.22222 | 0.23074 | 0.036335 | 5.5755| | 3 | Best | 0.13105 | 3.9262 | 0.13105 | 0.14145 | 0.0022147 | 0.0023957 | | 4 | Accept | 0.35897 | 0.089783 | 0.13105 | 0.13108 | 5.1259 | 98.62 | | 5 | Best | 0.12536 | 0.21521 | 0.12536 | 0.12538 | 0.0010294 | 0.037239 | | 6 | Accept | 0.12821 | 0.15008 | 0.12536 | 0.12502 | 0.0010316 | 0.014375 | | 7 | Accept | 0.1339 | 0.68533 | 0.12536 | 0.12424 | 0.025081 | 0.016111 | | 8 | Accept | 0.12536 | 0.14609 | 0.12536 | 0.12631 | 0.0010618 | 0.016299 | | 9 | Best | 0.11681 | 0.22373 | 0.11681 | 0.12174 | 0.001133 | 0.02714 | | 10 | Accept | 0.12251 | 0.29918 | 0.11681 | 0.12148 | 0.001008 | 0.026832 | | 11 | Accept | 0.12536 | 0.18019 | 0.11681 | 0.12261 | 0.0010061 | 0.028162 | | 12 | Accept | 0.14245 | 0.58455 | 0.11681 | 0.11764 | 733.87 | 5.6856 | | 13 | Accept | 0.1396 | 0.22235 | 0.11681 | 0.12257 | 0.004017 | 0.016529 | | 14 | Accept | 0.1339 | 8.3508 | 0.11681 | 0.12287 | 974.87 | 0.49411 | | 15 | Accept | 0.1396 | 0.17699 | 0.11681 | 0.12324 | 985.69 | 119.34 | | 16 | Accept | 0.35897 | 0.29536 | 0.11681 | 0.12301 | 0.0010027 | 8.6693 | | 17 | Accept | 0.35897 | 0.15066 | 0.11681 | 0.12197 | 984.97 | 967.71 | | 18 | Accept | 0.12536 | 0.40566 | 0.11681 | 0.12202 | 996.7 | 37.438 | | 19 | Accept | 0.13105 | 0.1635 | 0.11681 | 0.12219 | 0.034548 | 0.07008 | | 20 | Accept | 0.13105 | 0.75845 | 0.11681 | 0.12241 | 0.59807 | 0.073309 | |=====================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | BoxConstraint| KernelScale | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 21 | Accept | 0.14245 | 0.1707 | 0.11681 | 0.1227 | 0.0011223 | 0.13671 | | 22 | Accept | 0.12251 | 0.17267 | 0.11681 | 0.12248 | 0.0011076 | 0.043248 | | 23 | Accept | 0.12251 | 0.12665 | 0.11681 | 0.12232 | 0.0010439 | 0.042774 | | 24 | Accept | 0.13105 | 0.83651 | 0.11681 | 0.12235 | 0.15094 | 0.035846 | | 25 | Accept | 0.12251 | 0.52615 | 0.11681 | 0.12234 | 997.65 | 56.317 | | 26 | Accept | 0.35897 | 0.20878 | 0.11681 | 0.12217 | 0.55688 | 823.33 | | 27 | Accept | 0.1339 | 0.34271 | 0.11681 | 0.12214 | 1.4203 | 0.34163 | | 28 | Accept | 0.1339 | 0.77884 | 0.11681 | 0.12215 | 8.2318 | 0.28112 | | 29 | Accept | 0.12251 | 0.2529 | 0.11681 | 0.12206 | 0.10082 | 0.18816 | | 30 | Accept | 0.13105 | 0.154 | 0.11681 | 0.1221 | 0.23533 | 0.16241 |

图中包含一个轴对象。标题为Min objective vs. Number of function的axis对象包含2个类型为line的对象。这些对象代表最小观测目标,估计最小目标。

图中包含一个轴对象。标题为目标函数模型的轴对象包含线、面、等高线类型的5个对象。这些对象代表观测点,模型均值,下一个点,模型最小可行。

__________________________________________________________ 优化完成。最大目标达到30个。总函数评估:30总运行时间:55.4351秒总目标函数评估时间:30.4624最佳观测可行点:BoxConstraint KernelScale _____________ ___________ 0.001133 0.02714观测目标函数值= 0.11681估计目标函数值= 0.12305函数评估时间= 0.22373最佳估计可行点(根据模型):BoxConstraint KernelScale _____________ ___________ 0.0010061 0.028162估计的目标函数值= 0.1221估计的函数评估时间= 0.17879
Mdl = ClassificationSVM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'none' NumObservations: 351 HyperparameterOptimizationResults: [1x1 bayesioptimization] Alpha: [99x1 double] Bias: -4.2973 KernelParameters: [1x1 struct] BoxConstraints: [351x1 double] ConvergenceInfo: [1x1 struct] IsSu金宝apppportVector: [351x1 logical] Solver: 'SMO' Properties, Methods

在缺省的5倍交叉验证中,拟合损失约12%。

检查BayesianOptimization对象中返回的HyperparameterOptimizationResults返回模型的属性。

disp (Mdl.HyperparameterOptimizationResults)
BayesianOptimization with properties: ObjectiveFcn: @createObjFcn/inMemoryObjFcn variabledescription: [5x1 optimizableVariable] Options: [1x1 struct] MinObjective: 0.1168 XAtMinObjective: [1x2 table] MinEstimatedObjective: 0.1221 XAtMinEstimatedObjective: [1x2 table] numobjectiveevaluation: 30 TotalElapsedTime: 55.4351 NextPoint: [1x2 table] XTrace: [30x2 table] ObjectiveTrace: [30x1 double] ConstraintsTrace: [] UserDataTrace: {30x1 cell} ObjectiveEvaluationTimeTrace:[30x1 double] IterationTimeTrace: [30x1 double] ErrorTrace: [30x1 double]可行性trace: [30x1 logical]可行性probabilitytrace: [30x1 double] IndexOfMinimumTrace: [30x1 double] objectivminimumtrace: [30x1 double] estimatedobjectivminimumtrace: [30x1 double]

版本历史

在R2016b中引入

另请参阅