predictConstraints
一連の点における連結制約違反の予測
構文
説明
は、ConstraintViolations = predictConstraints(results,XTable)XTable 内の点における連結制約関数の違反を返します。
[ は、連結制約関数の標準偏差も返します。ConstraintViolations,sigma] = predictConstraints(results,XTable)
例
この例では、最適化された SVM モデルの連結制約を予測する方法を示します。このモデルの詳細については、bayesopt を使用した交差検証分類器の最適化を参照してください。
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 になります。正の値は、制約が満たされないことを意味します。
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 のいくつかの値について連結制約の値を予測します。
sigma = logspace(-2,2,11)'; box = logspace(0,5,11)'; XTable = table(sigma,box); cons = predictConstraints(results,XTable); [XTable,table(cons)]
ans =
11×3 table
sigma box cons
________ ______ _______
0.01 1 99.539
0.025119 3.1623 106.74
0.063096 10 94.781
0.15849 31.623 25.242
0.39811 100 -38.79
1 316.23 -56.379
2.5119 1000 -34.247
6.3096 3162.3 4.9263
15.849 10000 39.193
39.811 31623 60.69
100 1e+05 71.82
入力引数
ベイズ最適化の結果。BayesianOptimization オブジェクトを指定します。
予測点。列数が D のテーブルを指定します。D は、問題に含まれている変数の個数です。これらの点で予測が実行されます。
データ型: table
出力引数
バージョン履歴
R2016b で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)