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)