ドキュメンテーションヘルプ センター
一連の点における連結制約違反の予測
ConstraintViolations = predictConstraints(results,XTable)
[ConstraintViolations,sigma] = predictConstraints(results,XTable)
例
ConstraintViolations = predictConstraints(results,XTable) は、XTable 内の点における連結制約関数の違反を返します。
ConstraintViolations
results
XTable
[ConstraintViolations,sigma] = predictConstraints(results,XTable) は、連結制約関数の標準偏差も返します。
sigma
すべて折りたたむ
この例では、最適化された SVM モデルの連結制約を予測する方法を示します。このモデルの詳細については、bayesopt を使用した交差検証済み SVM 分類器の最適化を参照してください。
rng default grnpop = mvnrnd([1,0],eye(2),10); redpop = mvnrnd([0,1],eye(2),10); redpts = zeros(100,2); grnpts = redpts; for i = 1:100 grnpts(i,:) = mvnrnd(grnpop(randi(10),:),eye(2)*0.02); redpts(i,:) = mvnrnd(redpop(randi(10),:),eye(2)*0.02); end cdata = [grnpts;redpts]; grp = ones(200,1); grp(101:200) = -1; c = cvpartition(200,'KFold',10); sigma = optimizableVariable('sigma',[1e-5,1e5],'Transform','log'); box = optimizableVariable('box',[1e-5,1e5],'Transform','log');
目的関数は、分割 c における SVM モデルの交差検証損失です。連結制約は、モデル内のサポート ベクターの個数から 100 を減算した値です。モデルには 200 個のデータ点があるので、連結制約の値の範囲は -100 から 100 になります。正の値は、制約が満たされないことを意味します。
c
function [objective,constraint] = mysvmfun(x,cdata,grp,c) SVMModel = fitcsvm(cdata,grp,'KernelFunction','rbf',... 'BoxConstraint',x.box,... 'KernelScale',x.sigma); cvModel = crossval(SVMModel,'CVPartition',c); objective = kfoldLoss(cvModel); constraint = sum(SVMModel.IsSupportVector)-100.5;
この関数と 1 つの連結制約を使用してオプティマイザーを呼び出します。
fun = @(x)mysvmfun(x,cdata,grp,c); results = bayesopt(fun,[sigma,box],'IsObjectiveDeterministic',true,... 'NumCoupledConstraints',1,'PlotFcn',... {@plotMinObjective,@plotConstraintModels,@plotObjectiveModel},... 'AcquisitionFunctionName','expected-improvement-plus','Verbose',0);
制約モデルのプロットは、範囲内にあるパラメーターはほとんどが実行不可能であり、比較的高い値の box パラメーターおよび狭い範囲の sigma パラメーターのみが実行可能であることを示しています。制御変数 box および sigma のいくつかの値について連結制約の値を予測します。
box
sigma = logspace(-2,2,11)'; box = logspace(0,5,11)'; XTable = table(sigma,box); cons = predictConstraints(results,XTable); [XTable,table(cons)]
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
BayesianOptimization
ベイズ最適化の結果。BayesianOptimization オブジェクトを指定します。
予測点。列数が D のテーブルを指定します。D は、問題に含まれている変数の個数です。これらの点で予測が実行されます。
データ型: table
table
N
K
制約違反。N 行 K 列の行列として返されます。N は XTable の行数、K は連結制約の個数です。制約違反は、XTable 内の点における連結制約に対応するガウス過程モデルの事後平均です。
制約の標準偏差。N 行 K 列の行列として返されます。N は XTable の行数、K は連結制約の個数です。この標準偏差は、XTable 内の点における事後分布の標準偏差を表します。
BayesianOptimization | bayesopt
bayesopt
この例の変更されたバージョンがシステム上にあります。代わりにこのバージョンを開きますか?
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Contact your local office