このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
ベイズ最適化の結果
BayesianOptimization
オブジェクトを作成するには、関数 bayesopt
を使用するか、名前と値のペア OptimizeHyperparameters
を指定して近似関数を使用します。
ObjectiveFcn
— bayesopt
で使用した引数 ObjectiveFcn
このプロパティは読み取り専用です。
bayesopt
で使用した引数 ObjectiveFcn
。関数ハンドルとして返されます。
bayesopt
を直接呼び出した場合、ObjectiveFcn
は bayesopt
の目的関数引数です。
名前と値のペアの引数 'OptimizeHyperparameters'
が含まれる近似関数を呼び出す場合、ObjectiveFcn
は、分類の場合は誤分類率を返す関数のハンドル、回帰の場合は 5 分割交差検証で測定した交差検証損失に 1 を加算した値の対数を返す関数のハンドルです。
データ型: function_handle
VariableDescriptions
— bayesopt
で使用した引数 VariableDescriptions
optimizableVariable
オブジェクトのベクトルこのプロパティは読み取り専用です。
bayesopt
で使用した引数 VariableDescriptions
。optimizableVariable
オブジェクトのベクトルとして返されます。
bayesopt
を直接呼び出した場合、VariableDescriptions
は bayesopt
の変数説明引数になります。
名前と値のペア OptimizeHyperparameters
を使用して近似関数を呼び出した場合、VariableDescriptions
はハイパーパラメーターのベクトルになります。
Options
— bayesopt
で使用したオプションこのプロパティは読み取り専用です。
bayesopt
で使用したオプション。構造体として返されます。
bayesopt
を直接呼び出した場合、Options
は bayesopt
で使用したオプション (名前と値のペア) になります。bayesopt
の入力引数を参照してください。
名前と値のペア OptimizeHyperparameters
を使用して近似関数を呼び出した場合、Options
は既定の bayesopt
オプションを名前と値のペア HyperparameterOptimizationOptions
で修正したものになります。
Options
は、以下のフィールドが含まれている読み取り専用の構造体です。
オプション名 | 意味 |
---|---|
AcquisitionFunctionName | 獲得関数名。獲得関数のタイプを参照してください。 |
IsObjectiveDeterministic | 目的関数が確定的な場合は true 、それ以外の場合は false 。 |
ExplorationRatio | AcquisitionFunctionName が 'expected-improvement-plus' または 'expected-improvement-per-second-plus' の場合のみ使用。プラスを参照してください。 |
MaxObjectiveEvaluations | 目的関数の評価制限。 |
MaxTime | 制限時間。 |
XConstraintFcn | 変数の確定的制約。確定的制約 — XConstraintFcnを参照してください。 |
ConditionalVariableFcn | 変数の条件付き制約。条件付き制約 — ConditionalVariableFcnを参照してください。 |
NumCoupledConstraints | 連結制約の個数。連結制約を参照してください。 |
CoupledConstraintTolerances | 連結制約の許容誤差。連結制約を参照してください。 |
AreCoupledConstraintsDeterministic | 各連結制約が確定的であるかどうかを指定する logical ベクトル。 |
Verbose | コマンド ラインの表示レベル。 |
OutputFcn | 各反復後に呼び出される関数。ベイズ最適化の出力関数を参照してください。 |
SaveVariableName | 出力関数 @assignInBase の変数名。 |
SaveFileName | 出力関数 @saveToFile のファイル名。 |
PlotFcn | 各反復後に呼び出されるプロット関数。ベイズ最適化のプロット関数を参照してください。 |
InitialX | bayesopt で目的関数を評価した点。 |
InitialObjective | InitialX における目的関数の値。 |
InitialConstraintViolations | InitialX における連結制約関数の値。 |
InitialErrorValues | InitialX における誤差値。 |
InitialObjectiveEvaluationTimes | InitialX における目的関数の評価時間。 |
InitialIterationTimes | 目的関数の評価および他の計算を含む、各反復の時間。 |
データ型: struct
MinObjective
— 観測された目的関数の最小値このプロパティは読み取り専用です。
観測された目的関数の最小値。実数スカラーとして返されます。連結制約または評価誤差がある場合、この値は、最終的な制約および誤差モデルに準じて実行可能であるすべての観測点における最小値になります。
データ型: double
XAtMinObjective
— 目的関数最小値の観測点1
行 D
列のテーブルこのプロパティは読み取り専用です。
目的関数最小値の観測点。1
行 D
列のテーブルとして返されます。D
は変数の個数です。
データ型: table
MinEstimatedObjective
— 推定された目的関数の最小値このプロパティは読み取り専用です。
推定された目的関数の最小値。実数スカラーとして返されます。MinEstimatedObjective
は最終的な目的モデルを使用します。
MinEstimatedObjective
は、既定の基準における bestPoint
の CriterionValue
の結果と同じです。
データ型: double
XAtMinEstimatedObjective
— 目的関数の推定値が最小になる点1
行 D
列のテーブルこのプロパティは読み取り専用です。
目的関数の推定値が最小になる点。1
行 D
列のテーブルとして返されます。D
は変数の個数です。XAtMinEstimatedObjective
は最終的な目的モデルを使用します。
データ型: table
NumObjectiveEvaluations
— 目的関数の評価回数このプロパティは読み取り専用です。
目的関数の評価回数。正の整数として返されます。これには、事後モデルを形成するための初期評価と最適化反復時の評価が含まれます。
データ型: double
TotalElapsedTime
— 秒単位の最適化の合計経過時間このプロパティは読み取り専用です。
秒単位の最適化の合計経過時間。正のスカラーとして返されます。
データ型: double
NextPoint
— 最適化継続時の次の評価点1
行 D
列のテーブルこのプロパティは読み取り専用です。
最適化継続時の次の評価点。1
行 D
列のテーブルとして返されます。D
は変数の個数です。
データ型: table
XTrace
— 目的関数が評価された点T
行 D
列のテーブルこのプロパティは読み取り専用です。
目的関数が評価された点。T
行 D
列のテーブルとして返されます。T
は評価点の個数、D
は変数の個数です。
データ型: table
ObjectiveTrace
— 目的関数の値T
の列ベクトルこのプロパティは読み取り専用です。
目的関数の値。長さ T
の列ベクトルとして返されます。T
は評価点の個数です。ObjectiveTrace
には目的関数評価の履歴が格納されます。
データ型: double
ObjectiveEvaluationTimeTrace
— 目的関数の評価時間T
の列ベクトルこのプロパティは読み取り専用です。
目的関数の評価時間。長さ T
の列ベクトルとして返されます。T
は評価点の個数です。目的関数は連結制約を計算するので、ObjectiveEvaluationTimeTrace
には連結制約を評価する時間が含まれます。
データ型: double
IterationTimeTrace
— 反復時間T
の列ベクトルこのプロパティは読み取り専用です。
反復時間。長さ T
の列ベクトルとして返されます。T
は評価点の個数です。IterationTimeTrace
には目的関数の評価時間とその他のオーバーヘッドの両方が含まれます。
データ型: double
ConstraintsTrace
— 連結制約の値T
行 K
列の配列このプロパティは読み取り専用です。
連結制約の値。T
行 K
列の配列として返されます。T
は評価点の個数、K
は連結制約の個数です。
データ型: double
ErrorTrace
— 誤差指標-1
または 1
である長さ T
の列ベクトルこのプロパティは読み取り専用です。
誤差指標。エントリが -1
または 1
である長さ T
の列ベクトルとして返されます。T
は評価点の個数です。1
の入力はそれぞれ、XTrace
内の対応する点で目的関数がエラーになったか NaN
を返したことを示します。-1
の入力はそれぞれ、目的関数の値が計算されたことを示します。
データ型: double
FeasibilityTrace
— 実行可能性の指標T
の論理列ベクトルこのプロパティは読み取り専用です。
実行可能性の指標。長さ T
の論理列ベクトルとして返されます。T
は評価点の個数です。1
の入力はそれぞれ、XTrace
内の対応する点において最終的な制約モデルが実行可能性を予測することを示します。
データ型: logical
FeasibilityProbabilityTrace
— 評価点が実行可能である確率T
の列ベクトルこのプロパティは読み取り専用です。
評価点が実行可能である確率。長さ T
の列ベクトルとして返されます。T
は評価点の個数です。この確率は、XTrace
内の対応する点における、誤差制約モデルを含む最終的な制約モデルに由来します。
データ型: double
IndexOfMinimumTrace
— 最小実行可能目的関数を与える評価T
の列ベクトルこのプロパティは読み取り専用です。
最小実行可能目的関数を与える評価。長さ T
の整数インデックスの列ベクトルとして返されます。T
は評価点の個数です。実行可能性は、誤差制約モデルを含む、各反復で存在した制約モデルに関して決定されます。
データ型: double
ObjectiveMinimumTrace
— 観測された目的関数の最小値T
の列ベクトルこのプロパティは読み取り専用です。
観測された目的関数の最小値。整数インデックスが格納されている長さ T
の列ベクトルとして返されます。T
は評価点の個数です。
データ型: double
EstimatedObjectiveMinimumTrace
— 推定された目的関数の最小値T
の列ベクトルこのプロパティは読み取り専用です。
推定された目的関数の最小値。整数インデックスが格納されている長さ T
の列ベクトルとして返されます。T
は評価点の個数です。各反復で推定される目的関数の値は、その反復で存在した目的モデルに関して決定されます。
データ型: double
UserDataTrace
— 目的関数の補助データT
の cell 配列このプロパティは読み取り専用です。
目的関数の補助データ。長さ T
の cell 配列として返されます。T
は評価点の個数です。cell 配列の各エントリは、目的関数の 3 番目の出力で返される UserData
です。
データ型: cell
bestPoint | 基準に従った、ベイズ最適化における最良の点 |
plot | ベイズ最適化の結果のプロット |
predictConstraints | 一連の点における連結制約違反の予測 |
predictError | 一連の点における誤差値の予測 |
predictObjective | 一連の点における目的関数の予測 |
predictObjectiveEvaluationTime | 一連の点における目的関数の実行回数の予測 |
resume | ベイズ最適化を再開 |
bayesopt
の使用による BayesianOptimization
オブジェクトの作成この例では、bayesopt
を使用して交差検証損失を最小化することにより BayesianOptimization
オブジェクトを作成する方法を示します。
ionosphere
データに対し、KNN 分類器のハイパーパラメーターを最適化、つまり、交差検証損失が最小になる KNN のハイパーパラメーターを求めます。bayesopt
で次のハイパーパラメーターに対する最小化を行います。
1 ~ 30 の最近傍サイズ。
距離関数 'chebychev'
、'euclidean'
および 'minkowski'
再現性を得るため、乱数シードと分割を設定し、AcquisitionFunctionName
オプションを 'expected-improvement-plus'
に設定します。反復表示を非表示にするには 'Verbose'
を 0
に設定します。このデータを組み込む無名関数として fun
を作成して、区分 c
と近似データ X
および Y
を目的関数 fun
に渡します。関数のパラメーター化 を参照してください。
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')
results = BayesianOptimization with properties: ObjectiveFcn: [function_handle] VariableDescriptions: [1x2 optimizableVariable] Options: [1x1 struct] MinObjective: 0.1197 XAtMinObjective: [1x2 table] MinEstimatedObjective: 0.1213 XAtMinEstimatedObjective: [1x2 table] NumObjectiveEvaluations: 30 TotalElapsedTime: 83.2599 NextPoint: [1x2 table] XTrace: [30x2 table] ObjectiveTrace: [30x1 double] ConstraintsTrace: [] UserDataTrace: {30x1 cell} ObjectiveEvaluationTimeTrace: [30x1 double] IterationTimeTrace: [30x1 double] ErrorTrace: [30x1 double] FeasibilityTrace: [30x1 logical] FeasibilityProbabilityTrace: [30x1 double] IndexOfMinimumTrace: [30x1 double] ObjectiveMinimumTrace: [30x1 double] EstimatedObjectiveMinimumTrace: [30x1 double]
BayesianOptimization
オブジェクトの作成この例では、SVM 分類器のベイズ最適化を使用して ionosphere
データの交差検証損失を最小化する方法を示します。
データを読み込みます。
load ionosphere
'auto'
パラメーターを使用して分類を最適化します。
rng default % For reproducibility Mdl = fitcsvm(X,Y,'OptimizeHyperparameters','auto')
|=====================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | BoxConstraint| KernelScale | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 1 | Best | 0.21652 | 17.676 | 0.21652 | 0.21652 | 64.836 | 0.0015729 |
| 2 | Accept | 0.35897 | 0.074952 | 0.21652 | 0.22539 | 0.036335 | 5.5755 |
| 3 | Best | 0.13105 | 6.686 | 0.13105 | 0.14152 | 0.0022147 | 0.0023957 |
| 4 | Accept | 0.35897 | 0.077766 | 0.13105 | 0.13108 | 5.1259 | 98.62 |
| 5 | Best | 0.12251 | 0.08597 | 0.12251 | 0.12253 | 0.0010264 | 0.042908 |
| 6 | Accept | 0.12536 | 0.1123 | 0.12251 | 0.12242 | 0.0010276 | 0.01796 |
| 7 | Accept | 0.13105 | 1.3562 | 0.12251 | 0.12363 | 0.04548 | 0.028371 |
| 8 | Accept | 0.12821 | 0.10173 | 0.12251 | 0.1249 | 0.0010072 | 0.030413 |
| 9 | Accept | 0.1339 | 0.075746 | 0.12251 | 0.12488 | 0.0010192 | 0.074576 |
| 10 | Accept | 0.12536 | 0.14206 | 0.12251 | 0.12493 | 0.0010018 | 0.012976 |
| 11 | Accept | 0.12821 | 0.090896 | 0.12251 | 0.12596 | 0.001015 | 0.031011 |
| 12 | Accept | 0.13105 | 0.19583 | 0.12251 | 0.12568 | 0.0010129 | 0.0096616 |
| 13 | Accept | 0.12251 | 0.11303 | 0.12251 | 0.12429 | 0.0016169 | 0.030272 |
| 14 | Accept | 0.12251 | 0.12059 | 0.12251 | 0.12397 | 0.003059 | 0.028401 |
| 15 | Accept | 0.12821 | 0.1388 | 0.12251 | 0.1249 | 0.0037274 | 0.026596 |
| 16 | Accept | 0.35897 | 0.076167 | 0.12251 | 0.12487 | 1.745 | 989.98 |
| 17 | Accept | 0.35897 | 0.087111 | 0.12251 | 0.12491 | 0.0090574 | 94.849 |
| 18 | Accept | 0.34758 | 0.083236 | 0.12251 | 0.12524 | 0.001448 | 0.66381 |
| 19 | Accept | 0.13105 | 0.080728 | 0.12251 | 0.12562 | 0.001042 | 0.045914 |
| 20 | Accept | 0.12536 | 0.15038 | 0.12251 | 0.12563 | 0.0010189 | 0.020835 |
|=====================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | BoxConstraint| KernelScale | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 21 | Accept | 0.12251 | 0.12811 | 0.12251 | 0.12468 | 0.0010139 | 0.023159 |
| 22 | Accept | 0.35897 | 0.075389 | 0.12251 | 0.12473 | 0.067964 | 23.612 |
| 23 | Accept | 0.1396 | 0.074715 | 0.12251 | 0.12449 | 0.0025917 | 0.19385 |
| 24 | Accept | 0.12251 | 0.078557 | 0.12251 | 0.1245 | 0.0042252 | 0.12741 |
| 25 | Accept | 0.1339 | 0.087403 | 0.12251 | 0.1244 | 0.01429 | 0.1308 |
| 26 | Accept | 0.1396 | 0.073631 | 0.12251 | 0.12452 | 0.0010084 | 0.13288 |
| 27 | Accept | 0.13675 | 0.54766 | 0.12251 | 0.1245 | 0.0010203 | 0.0050828 |
| 28 | Accept | 0.12536 | 0.12199 | 0.12251 | 0.12465 | 0.0010316 | 0.019592 |
| 29 | Accept | 0.35897 | 0.075367 | 0.12251 | 0.12464 | 0.65819 | 320.56 |
| 30 | Accept | 0.16524 | 0.073327 | 0.12251 | 0.12268 | 0.035233 | 1.9219 |
__________________________________________________________ Optimization completed. MaxObjectiveEvaluations of 30 reached. Total function evaluations: 30 Total elapsed time: 55.0716 seconds. Total objective function evaluation time: 28.8614 Best observed feasible point: BoxConstraint KernelScale _____________ ___________ 0.0010264 0.042908 Observed objective function value = 0.12251 Estimated objective function value = 0.12743 Function evaluation time = 0.08597 Best estimated feasible point (according to models): BoxConstraint KernelScale _____________ ___________ 0.0016169 0.030272 Estimated objective function value = 0.12268 Estimated function evaluation time = 0.10537
Mdl = ClassificationSVM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'none' NumObservations: 351 HyperparameterOptimizationResults: [1×1 BayesianOptimization] Alpha: [98×1 double] Bias: -4.7988 KernelParameters: [1×1 struct] BoxConstraints: [351×1 double] ConvergenceInfo: [1×1 struct] IsSupportVector: [351×1 logical] Solver: 'SMO' Properties, Methods
このあてはめでは、既定の 5 分割交差検証について損失が約 12% になりました。
返されたモデルの HyperparameterOptimizationResults
プロパティで返された BayesianOptimization
オブジェクトを確認します。
disp(Mdl.HyperparameterOptimizationResults)
BayesianOptimization with properties: ObjectiveFcn: @createObjFcn/inMemoryObjFcn VariableDescriptions: [5×1 optimizableVariable] Options: [1×1 struct] MinObjective: 0.1225 XAtMinObjective: [1×2 table] MinEstimatedObjective: 0.1227 XAtMinEstimatedObjective: [1×2 table] NumObjectiveEvaluations: 30 TotalElapsedTime: 55.0716 NextPoint: [1×2 table] XTrace: [30×2 table] ObjectiveTrace: [30×1 double] ConstraintsTrace: [] UserDataTrace: {30×1 cell} ObjectiveEvaluationTimeTrace: [30×1 double] IterationTimeTrace: [30×1 double] ErrorTrace: [30×1 double] FeasibilityTrace: [30×1 logical] FeasibilityProbabilityTrace: [30×1 double] IndexOfMinimumTrace: [30×1 double] ObjectiveMinimumTrace: [30×1 double] EstimatedObjectiveMinimumTrace: [30×1 double]
bayesopt
| fitcdiscr
| fitcecoc
| fitcensemble
| fitcknn
| fitclinear
| fitcnb
| fitcsvm
| fitctree
| fitrensemble
| fitrgp
| fitrlinear
| fitrsvm
| fitrtree
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
Select web siteYou can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.