主要内容

BayesianOptimization

贝叶斯优化结果

描述

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

创建

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

属性

全部展开

问题定义属性

此属性是只读的。

ObjectiveFcn所使用的参数bayesopt,指定为函数句柄。

  • 如果你叫bayesopt直接ObjectiveFcnbayesopt目标函数参数。

  • 的fit函数“OptimizeHyperparameters”名称-值对的论点,ObjectiveFcn是一个函数句柄,它返回分类时的误分类率,或返回1的对数加上回归时的交叉验证损失(通过五次交叉验证度量)。

数据类型:function_handle

此属性是只读的。

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

  • 如果你叫bayesopt直接VariableDescriptionsbayesopt变量描述参数。

  • 如果你用函数调用fit函数OptimizeHyperparameters名称-值对,VariableDescriptions是超参数的向量。

此属性是只读的。

选项bayesopt使用,指定为结构

  • 如果你叫bayesopt直接选项选项使用在bayesopt,它们是名值对参见bayesopt输入参数

  • 如果你用函数调用fit函数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 每次迭代的时间,包括目标函数的计算和其他计算。

数据类型:结构体

解决方案属性

此属性是只读的。

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

数据类型:

此属性是只读的。

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

数据类型:表格

此属性是只读的。

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

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

数据类型:

此属性是只读的。

在访问点中,目标函数值置信上限最小的点,用a表示1——- - - - - -D表,D是变量的个数。该软件利用最终目标模型求出访问点的置信上界。

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

数据类型:表格

此属性是只读的。

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

数据类型:

此属性是只读的。

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

数据类型:

此属性是只读的。

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

数据类型:表格

跟踪属性

此属性是只读的。

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

数据类型:表格

此属性是只读的。

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

数据类型:

此属性是只读的。

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

数据类型:

此属性是只读的。

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

数据类型:

此属性是只读的。

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

数据类型:

此属性是只读的。

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

数据类型:

此属性是只读的。

可行性指示,指定为长度的逻辑列向量T,在那里T是评价点的数量。每一个1入口表明最终的约束模型预测在对应点的可行性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);有趣= @ (x) kfoldLoss (fitcknn (x, Y,“CVPartition”c“NumNeighbors”x.n,...“距离”char (x.dst),“NSMethod”,“详尽”));结果= bayesopt(有趣,(num, dst),“详细”0,...“AcquisitionFunctionName”,“expected-improvement-plus”

图中包含一个axes对象。标题为目标函数模型的轴对象包含线、面、轮廓5个类型的对象。这些对象分别表示观测点、模型均值、下一个点、模型最小可行。

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

results = BayesianOptimization with properties: ObjectiveFcn: [function_handle] variabledescription: [1x2 optimizableVariable] Options: [1x1 struct] MinObjective: 0.1197 XAtMinObjective: [1x2 table] minestimatedobjobjective: 0.1213 xatminestimatedobjobjective: [1x2 table] numobjectiveevaluationevaluts30 TotalElapsedTime: 35.9996 NextPoint: [1x2 table] XTrace: [30x2 table] ObjectiveTrace: [30x1 double] ConstraintsTrace: [] UserDataTrace: {30x1 cell} ObjectiveEvaluationTimeTrace:[30x1 double] IterationTimeTrace: [30x1 double] ErrorTrace: [30x1 double]可行性追踪:[30x1 logical]可行性概率追踪:[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 | 10.656 | 0.22222 | 0.22222 | 64.836 | 0.0015729 | | 2 |接受| 0.35897 | 0.11083 | 0.22222 | 0.23074 | 0.036335 | 5.5755最好| | 3 | | 0.13105 | 4.2092 | 0.13105 | 0.14145 | 0.0022147 | 0.0023957 | | 4 |接受| 0.35897 | 0.16269 | 0.13105 | 0.13108 | 5.1259 | 98.62 | | 5 |的| 0.12821 | 0.29221 | 0.12821 | 0.12823 | 0.0010294 | 0.03159 | | 6 |接受| 0.12821 | 0.17544 | 0.12821 | 0.12682 | 0.0010607 | 0.012967 | | | 7日接受| 0.1339 | 1.0424 | 0.12821 | 0.12548 | 0.020096 | 0.014191 | | 8最好| | 0.12536 | 0.22216 | 0.12536 | 0.1265 | 0.0010012 | 0.014054 | | | 9日接受| 0.12536 | 0.38955 | 0.12536 |最好10 0.12575 | 0.0010018 | 0.019314 | | | | 0.12251 | 0.40516 | 0.12251 | 0.12486 | 0.0010611 | 0.01853 | | | 11日接受| 0.14245 | 0.39029 | 0.12251 | 0.12368 | 0.0011014 | 0.00773 | | | 12日接受| 0.15385 | 10.118 | 0.12251 | 0.12375 | 979.53 | 0.11762 | | | 13日接受| 0.14245 | 0.54742 | 0.12251 | 0.12384 | 0.0010117 | 0.15318 | | | 14日接受| 0.12821 | 0.27639 | 0.12251 | 0.12388 | 0.022074 | 0.070395 | | |接受15 | 0.1339 | 8.2951 | 0.12251 | 0.12388 | 0.00101 | 0.0010937 | | 16 |接受| 0.13105 | 0.93374 | 0.12251 | 0.12389 | 0.10385 | 0.042002 | | | 17日接受| 0.12251 | 0.14206 | 0.12251 | 0.12348 | 0.0010552 | 0.018969 | | | 18日接受| 0.12536 | 0.11093 | 0.12251 | 0.12391 | 0.0010088 | 0.019316 | | | 19日接受| 0.35897 | 0.30367 | 0.12251 | 0.12391 | 0.098754 | 23.156 | | |接受20 | 0.35897 | 0.14523 | 0.12251 | 0.12392 | 7.9637 | 712.73  | |=====================================================================================================| | Iter | Eval |目的客观| | BestSoFar | BestSoFar | BoxConstraint | KernelScale | | |结果| |运行时| | (estim(观察) .) | | | |=====================================================================================================| | 21日|接受| 0.1453 | 0.14604 | 0.12251 | 0.12386 | 0.045895 | 1.2044 | | | 22日接受| 0.12821 | 0.18017 | 0.12251 | 0.12386 | 0.0776 | 0.57356 | | | 23日接受| 0.20513 | 0.12925 | 0.12251 | 0.12368 | 0.0033578 | 0.73435 | | | 24日接受| 0.12536 | 0.14011 |0.12251 | 0.12364 | 1.5422 | 0.88903 | | | 25日接受| 0.12821 | 0.20119 | 0.12251 | 0.12366 | 1.1445 | 0.41251 | | | 26日接受| 0.12536 | 0.24591 | 0.12251 | 0.12363 | 0.27465 | 0.80507 | | | 27日接受| 0.13105 | 0.51799 | 0.12251 | 0.12366 | 30.203 | 0.83308 | | | 28日接受| 0.12536 | 0.23615 | 0.12251 | 0.12369 | 0.080054 | 0.20338 | | | 29日接受| 0.1339 | 0.539 | 0.12251 | 0.12394 | 0.0046287 | 0.024706 | | | 30日接受| 0.1396 | 0.2168 | 0.12251 | 0.12396 | 0.35132 | 0.12849 |

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

图中包含一个axes对象。标题为目标函数模型的轴对象包含线、面、轮廓5个类型的对象。这些对象分别表示观测点、模型均值、下一个点、模型最小可行。

__________________________________________________________ 优化完成。最大目标:达到30。总函数评估:30总运行时间:68.495秒总目标函数评估时间:41.4809最佳观测可行点:BoxConstraint KernelScale _____________ ___________ 0.0010611 0.01853观测目标函数值= 0.12251估计目标函数值= 0.12396函数评估时间= 0.40516最佳估计可行点(根据模型):BoxConstraint KernelScale _____________ ___________ 0.0010611 0.01853估计的目标函数值= 0.12396估计的函数评估时间= 0.23913
Mdl = ClassificationSVM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'none' NumObservations: 351 HyperparameterOptimizationResults: [1x1 BayesianOptimization] Alpha: [92x1 double] Bias: -5.6332 KernelParameters: [1x1 struct] BoxConstraints: [351x1 double] ConvergenceInfo: [1x1 struct] IsSupportVector: [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.1225 XAtMinObjective: [1x2 table] minestimatedobjobjective: 0.1240 xatminestimatedobjobjective: [1x2 table] numobjectiveevaluveevaluvevaluts30 TotalElapsedTime: 68.4950 NextPoint: [1x2 table] XTrace: [30x2 table] ObjectiveTrace: [30x1 double] ConstraintsTrace: [] UserDataTrace: {30x1 cell} ObjectiveEvaluationTimeTrace:[30x1 double] IterationTimeTrace: [30x1 double] ErrorTrace: [30x1 double]可行性追踪:[30x1 logical]可行性概率追踪:[30x1 double] IndexOfMinimumTrace: [30x1 double] objectivminimumtrace: [30x1 double] estimatedobjectivminimumtrace: [30x1 double]

版本历史

介绍了R2016b

Baidu
map