主要内容

predictConstraints

在一组点上预测耦合约束违反

描述

例子

限制性= predictconstraints(结果,XTable返回中点处的耦合约束函数违例XTable

限制性,σ) = predictConstraints (结果,XTable还返回耦合约束函数的标准偏差。

例子

全部折叠

这个例子展示了如何预测一个优化的支持向量机模型的耦合约束。该型号的详细信息请参见利用bayesopt优化交叉验证支持向量机分类器

RNG.默认的grnpop = mvnrnd((1,0)、眼睛(2),10);redpop = mvnrnd([0, 1],眼(2),10);redpts = 0 (100 2);grnpts = redpts;i = 1:10 0 grnpts(我:)= mvnrnd (grnpop(兰迪(10):)、眼睛(2)* 0.02);redpts(我)= mvnrnd (redpop(兰迪(10):)、眼睛(2)* 0.02);结束cdata = [grnpts; redpts];grp = 1 (200 1);grp (101:200) = 1;c = cvpartition (200“KFold”10);σ= optimizableVariable (“σ”(1 e-5, 1 e5),'转换',“日志”);盒= optimizableVariable (“盒子”(1 e-5, 1 e5),'转换',“日志”);

目标函数是划分的SVM模型的交叉验证损失c.耦合约束是Modus 100中的支持向量的数量。模型具有200个数据点,因此耦合万博1manbetx约束值范围为-100至100.正值意味着约束不满足约束。

功能[目的,约束] = mysvmfun(x,cdata,grp,c)svmmodel = fitcsvm(cdata,grp,'骨箱',“rbf”,...“BoxConstraint”,x.box,...“KernelScale”,x.sigma);cvmodel = crossval(svmmodel,'cvpartition'c);目标= kfoldLoss (cvModel);约束=总和(SVMModel.IsSupportVect万博1manbetxor) -100.5;

使用此功能及其一个耦合约束调用优化器。

有趣= @ (x) mysvmfun (x, cdata, grp, c);结果= bayesopt(有趣,σ,盒子,“IsObjectiveDeterministic”,真的,...“NumCoupledConstraints”,1,“PlotFcn”,...{@plotMinObjective, @plotConstraintModels @plotObjectiveModel},...“AcquisitionFunctionName”,'预期改善加',“详细”,0);

约束模型图显示,在范围内的大多数参数是不可行的,只有相对较高的值盒子参数和小范围的σ参数。预测几个控制变量的耦合约束值盒子σ

σ= logspace (2, 2, 11) ';盒= logspace(0、5、11)';XTable =表(σ,框);缺点= predictConstraints(结果,XTable);(XTable、表(缺点))
Ans = 11x3 table sigma box cons ________ ______ _______ 0.01 1 99.443 0.025119 3.1623 106.49 0.063096 10 94.468 0.15849 31.623 25.134 0.39811 100 -38.732 1 316.23 -55.156 2.5119 1000 -34.181 6.3096 3162.3 5.0153 15.849 10000 39.465 39.811 31623 60.9 100 1e+05 71.906

输入参数

全部折叠

贝叶斯优化结果,指定为贝叶斯偏见目的。

预测点,指定为具有d列的表,其中d是问题中的变量数。该函数对这些点执行预测。

数据类型:表格

输出参数

全部折叠

约束违反,返回为N-经过-K矩阵,有的地方NXTableK耦合约束。约束违反是耦合约束的高斯过程模型在点处的后验均值XTable

约束标准偏差,作为一个返回N-经过-K矩阵,有的地方NXTableK耦合约束。标准偏差代表了这些点的后部分布XTable

另请参阅

|

介绍了R2016b