Main Content

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(11)
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');

Figure contains an axes object. The axes object with title Objective function model contains 5 objects of type line, surface, contour. These objects represent Observed points, Model mean, Next point, Model minimum feasible.

Figure contains an axes object. The axes object with title Min objective vs. Number of function evaluations contains 2 objects of type line. These objects represent Min observed objective, Estimated min objective.

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

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

    1    chebychev

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

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

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

    2    chebychev

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

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

    2    chebychev

CriterionValue = 0.1054
iteration = 21

入力引数

すべて折りたたむ

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

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。

R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。

例: 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 で導入