ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

bestPoint

基準に従った、ベイズ最適化における最良の点

構文

x = bestPoint(results)
x = bestPoint(results,Name,Value)
[x,CriterionValue] = bestPoint(___)
[x,CriterionValue,iteration] = bestPoint(___)

説明

x = bestPoint(results) は、既定の基準 'min-visited-upper-confidence-interval' に従ってベイズ モデル results における最良実行可能点を返します。

x = bestPoint(results,Name,Value) では、名前と値のペアを使用して最良の点を修正します。

[x,CriterionValue] = bestPoint(___) は、任意の前の構文において、x における基準の値も返します。

[x,CriterionValue,iteration] = bestPoint(___) は、最良の点が返された反復回数も返します。名前と値のペア Criterion'min-observed''min-visited-mean'、または既定の 'min-visited-upper-confidence-interval' である場合に適用されます。

すべて折りたたむ

この例では、最適化された分類器の最良の点を取得する方法を示します。

ionosphere データの KNN 分類器を最適化します。つまり、交差検証損失が最小になるパラメーターを求めます。1 ~ 30 の最近傍サイズと距離関数 'chebychev''euclidean' および 'minkowski' に対して最小化を行います。

再現性を得るため、乱数シードを設定し、AcquisitionFunctionName オプションを 'expected-improvement-plus' に設定します。

load ionosphere
rng default
num = optimizableVariable('n',[1,30],'Type','integer');
dst = optimizableVariable('dst',{'chebychev','euclidean','minkowski'},'Type','categorical');
c = cvpartition(351,'Kfold',5);
fun = @(x)kfoldLoss(fitcknn(X,Y,'CVPartition',c,'NumNeighbors',x.n,...
    'Distance',char(x.dst),'NSMethod','exhaustive'));
results = bayesopt(fun,[num,dst],'Verbose',0,...
    'AcquisitionFunctionName','expected-improvement-plus');

既定の基準 'min-visited-upper-confidence-interval' に従う最良の点を取得します。

x = bestPoint(results)
x=1×2 table
    n       dst   
    _    _________

    1    chebychev

推定された交差検証損失は、10 個の最近傍および 'chebychev' 距離で最小になります。

目的関数モデルのプロットを慎重に調べると、1 つの最近傍およびより小さな目的関数の値をもつ 'chebychev' 距離の点があることがわかります。別の基準を使用してこの点を求めます。

x = bestPoint(results,'Criterion','min-observed')
x=1×2 table
    n       dst   
    _    _________

    1    chebychev

また、観測された目的関数の最小値と、この値が観測された反復回数を求めます。

[x,CriterionValue,iteration] = bestPoint(results,'Criterion','min-observed')
x=1×2 table
    n       dst   
    _    _________

    1    chebychev

CriterionValue = 0.1197
iteration = 11

入力引数

すべて折りたたむ

ベイズ最適化の結果。BayesianOptimization オブジェクトを指定します。

名前と値のペアの引数

オプションの引数 Name,Value のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で閉じなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

例: x = bestPoint(results,'Criterion','min-observed')

最良の点の基準。'Criterion' と基準名から構成されるコンマ区切りのペアとして指定します。名前では大文字と小文字が区別されず、文字 - は必須ではなく、名前を一意に識別するために必要な文字のみが必須です。

基準名意味
'min-observed'x は、観測された目的関数が最小になる実行可能点です。
'min-mean'x は、目的関数モデルの平均が最小になる実行可能点です。
'min-upper-confidence-interval'x は、目的関数モデルの信頼区間の上限を最小化する実行可能点です。alpha を参照してください。
'min-visited-mean'x は、探索点内において目的関数モデルの平均が最小になる実行可能点です。
'min-visited-upper-confidence-interval'x は、探索点内において目的関数モデルの信頼区間の上限を最小化する実行可能点です。alpha を参照してください。

例: 'Criterion','min-visited-mean'

モデル化した目的関数の平均が CriterionValue を超える確率。'alpha'01 のスカラーから構成されるコンマ区切りのペアとして指定します。alpha は、Criterion の値 'min-upper-confidence-interval' および 'min-visited-upper-confidence-interval' に関連します。信頼区間の上限の定義は値 Y で、ここで

P(meanQ(fun(x)) > Y) = alpha

fun は目的関数です。平均は事後分布 Q に関して計算されます。

例: 'alpha',0.05

データ型: double

出力引数

すべて折りたたむ

最良の点。1D 列のテーブルとして返されます。D は変数の個数です。"最良" とは、Criterion に関して最良であるという意味です。

基準の値。実数スカラーとして返されます。値は名前と値のペア Criterion の設定 (既定値は 'min-visited-upper-confidence-interval') によって決まります。

基準名意味
'min-observed'観測された目的関数の最小値。
'min-mean'モデル平均の最小。
'min-upper-confidence-interval'方程式 P(meanQ(fun(x)) > Y) = alpha を満たす値 Y
'min-visited-mean'観測されたモデル平均の最小。
'min-visited-upper-confidence-interval'観測された点の中で方程式 P(meanQ(fun(x)) > Y) = alpha を満たす値 Y

最良の点を観測した反復回数。正の整数として返されます。最良の点は CriterionValue によって定義されます。

R2016b で導入