このページ最新ではありませ。をクリックし,英语のの最新版版を参照参照し。
贝叶斯
では,変数でが有限であるがますます(性质性质,,分类
変数は値限定さますますます。値または値の変数の下限と上限はは优化视价
で渡します。
贝叶斯
は,范囲使用し均または対数スケール点を抽出しします。。抽出の优化视价
で设定し。
たとえば,変数x1
を対数スケールで1E-6
と1E3
の间に制约には,のににますます。
xvar = emptimizableVariable('x1',[1E-6,1E3],'转换',,,,'日志')
贝叶斯
は端点にます。したがっ,変换されるのの下限としてててててててをををを使用使用するするはは
ヒント
対数変换変数下限としてゼロするには,をを1
に设定,目的关数ででX-1
を使用し。
Xconstraintfcn
问题がまたは明确定义されいるががが“実行可能”と呼ばの内点のみ场合がます。确定的制约制约は,点点が実行可能可能真的
を,不可能なはは错误的
を返す关数。したがって,は确率的ではありません。。また,点点のグループではなくではなく个个个々
ヒント
最适をに制限するに,确定的制约ではなく优化视价
の范囲使用方が效率的。。
确定的をするには,シグネチャを使用し。。
tf = xconstraint(x)
X
は,ががでさ任意のテーブル。。
TF
は,x(i,:)
が実行な场合にのみtf(i)= true
になる论理列です。
确定的制约は,贝叶斯
の名前とのペアXconstraintfcn
で渡しますたとえば以下のにします。
结果= bayesopt(有趣,vars,'xconstraintfcn',@xconstraint)
贝叶斯
は数のに対して的をするので制约关数をベクトル化化すると実行実行が高速ににベクトル化を参照しください。
たとえば,'x1'
および'x2'
という名前変数は,ベクトル[x1 x2]
のノルムが6
未満でx1 <= x2
のに可能とし。次制约关数これらの制约を评価评価。。。
功能tf = xconstraint(x)tf1 = sqrt(x.x1。^2 + x.x2。^2)<6;tf2 = x.x1 <= x.x2;tf = tf1&tf2;
有条件的alablefcn
2つ次のののつの条件いずれを适用する关数です。
一部の特定のの场合,のが特定の値になる。
一部のがのの场合に他の変数が南
(カテゴリカル変数のは<未定义>
)値になる。
条件付きを指定する,,贝叶斯
の名前とのペア有条件的alablefcn
を@condvariablefcn
などのハンドルに设定。。@condvariablefcn
の关数はのようになっなければなりませ。。
Xnew = condvariablefcn(x)
X
は,幅がd
で高が任意の。。
XNew
は,X
と同じおよびサイズの。。
condvariablefcn
では,X
に等しくなるにXNew
を设定ますが,さらにXNew
の各行する変数制约にかなっ値设定设定ますます。
メモ
条件付きと的制约両方がある场合,贝叶斯
は条件をに适用し。したがっ,付き制约关数关数変数を南
または<未定义>
に设定性ある,のを确定制约关数で正しく处理处理できるようににする必要がが
条件付き,変数を确実に的します。したがって,まず贝叶斯
は条件をし,れるすべてのを的なものとし。。
fitcdiscr
を使用分类最适化して名前と値のペア引数“歧视”
および'伽玛'
の両方最适してとします。“歧视”
が二タイプのかである场合,'伽玛'
が0
でないとエラー発生し。ようなでは,次の条件付き付き制约关数关数ししし
功能Xtable = fitcdiscrcvf(Xtable)%gamma必须为0,如果歧视类型是二次Xtable.gamma(ismember(Xtable.discrimtype,{“二次”,,,,...diagquadratic',,,,“伪Quadratic”}))= 0;结尾
南
に设定する付き制约FITCSVM
を使用分类最适化して名前と値のペア引数'kernelfunction'
および“多项式订单”
の両方最适してとします。'kernelfunction'
が“多项式”
ではない场合,“多项式订单”
の设定さません。の关数はこの付き制约を强制し。。
功能Xnew = condvariablefcn(x)xnew = x;Xnew.polynomialorder(Xnew.KernElfunction〜 = =“多项式”)= nan;
次のに,コードの行数少なくすることができます。
功能x = condvariablefcn(x)x.polynomialorder(xnew.kernelfunction〜 = =“多项式”)= nan;
さらに,“多项式订单”
の値が南
である场合名前とのペアの引数“多项式订单”
をFITCSVM
に渡さない关数を定义。。
fun = @(x)mysvmfun(x,预测变量,响应,c)功能objective = mysvmfun(x,预测变量,响应,c)...'cvpartition',C,...'kernelfunction',X.KernElfunction};如果〜isnan(x.polynomialorder)args = [args,{“多项式订单”,x.polynomialorder}];结尾objective = kfoldloss(fitCSVM(args {:}));结尾
“连结”は目的呼び出すことのみ评価评価できるですこのこの确率确率确率的ににににも确定的的的ににもももするすることができことができことができますこれらこれら2ベイズ最化の目的关数を参照しください。
1つずつ制约制约についてについてについて制约つずつつずつがある连结连结制约ベクトルベクトルををを返し返し返しますますます。各各エントリエントリで,,,,负负负のの値はは制约制约制约が満たさ(値は満たされこと(実行不)を示します。
贝叶斯
は,とれる连结制约を実行的ににしします。。この制约により,,目的关数关数关数のの贝叶斯
でモデルできます详细については,目的关数のエラーと前环
を参照しください。
エラー制约加え连结制约がある,,
贝叶斯
の呼び出し,名前とペアペアnumCoupledconstraints
を(必须)。。数エラーは含めないで。。
いずれか连结确率的である场合名前と値のペアArecoupledconstraintsdeterministic
を使用,确率的についてについて错误的
を渡します。
各反复连结の値确认するには,贝叶斯
の名前とのペア冗长
を1
または2
に设定し。
メモ
连结制约场合反复表示プロットは次ような直観的ではない结果をを与える可能可能ありありあり
“最小”のプロットがする。
最适以前に可能点れたでも,问题问题が実行不可能可能であると宣言宣言さささ。
このようは,点実行実行か判断判断が最适化の进行にに応じて変化変化する可能可能可能性性贝叶斯
は制约关し実行可能性をますが,このはは贝叶斯
点をとします。したがって,最小点后からからから実行実行不不不可能可能とと判断されれたははははは最最最最最小目的目的目的目的目的目的目的目的プロットプロットプロットがが増加しし可能点表示れる可能があります。
たとえば,连结制约あるベイズ最适化を参照しください。
连结制约目的评価评価することのみのみ评価できる制约ですこのケースケースケースケースでではははははは,关数はははははははははははははははモデルモデルモデルモデルモデルモデルモデルモデルモデルモデルモデルモデルの交差交差検证検证の详细について,贝叶斯を使用た交差検证済み済み済み分类分类の化化化を参照しください。
分类用データを作成。。
RNG默认grnpop = mvnrnd([1,0],眼睛(2),10);redpop = mvnrnd([0,1],眼睛(2),10);redpts =零(100,2);grnpts = redpts;为了i = 1:100个grnpts(i,:) = mvnrnd(grnpop(randi(10),:),eye(2)*0.02);redpts(i,:) = mvnrnd(redpop(randi(10),:),eye(2)*0.02);结尾cdata = [grnpts; redpts];grp =一个(200,1);GRP(101:200)= -1;c = cvPartition(200,'kfold',10);sigma = emptimizableVariable('Sigma',[1E-5,1E5],'转换',,,,'日志');box = emptimizableVariable('盒子',[1E-5,1E5],'转换',,,,'日志');
目的关数は分割C
svm svmモデル交差损失损失です。连结制约は,,サポートベクターからからからからからからからからからからからからからからからからからからをををををを减算减算减算値値値ですですです。。。このこのこのこのようようににするするするとととととと,,,,,,,,,,,のの个个个サポートサポートサポートでででででででででで200个200个200个个个データががあるあるのでので连结连结制约制约ののの値値値値范囲范囲范囲范囲范囲-99.5(1少なくとも少なくとも少なくとものの値値値値の制约制约なりなりににににににに连结连结连结のでのでのでのでのでのでのでのでのでのでのでのでされことを意味。。
功能[objective,约束] = mysvmfun(x,cdata,grp,c)svmmodel = fitcsvm(cdata,grp,'kernelfunction',,,,'rbf',,,,...'boxconstraint',x.box,...“内核”,X.Sigma);cvmodel = crossVal(svmmodel,'cvpartition',C);Objective = Kfoldloss(CVModel);约束= sum(svmmodel.issupportVe金宝appctor)-100.5;
このデータ组み込む无名关数として乐趣
を作成し,区分C
と近似データCDATA
およびgrp
を目的关数乐趣
に渡します。关数のパラメーター化を参照しください。
fun = @(x)mysvmfun(x,cdata,grp,c);
连结制约あるオプティマイザーが认识ようにするため,numCoupledconstraints
を1
に设定。モデルをプロットするオプションを设定し。。
结果= bayesopt(娱乐,[Sigma,box],'iSobjectiveDeterministic',真的,...'numCoupledConstraints',1,'plotfcn',,,,...{@plotminobjective,@plotconstraintmodels},...“ AccelitionFunctionName”,,,,“预期改造加”,,,,“冗长”,0);
ほとんどのでが実行不可能数になります。