Main Content

fitrauto

最適化されたハイパーパラメーターをもつ回帰モデルの自動選択

R2020b 以降

説明

fitrauto は、指定した予測子と応答データに基づいて、さまざまなハイパーパラメーターの値をもつ回帰モデルのタイプの選択を自動的に試します。既定では、この関数は、ベイズ最適化を使用してモデルとそのハイパーパラメーターの値を選択し、各モデルについて log(1 + valLoss) を計算します。ここで、valLoss は交差検証の平均二乗誤差 (MSE) です。最適化が完了すると、fitrauto は、データ セット全体で学習済みの、新しいデータについての応答が最も優れているとされるモデルを返します。返されたモデルのオブジェクト関数 predictloss を使用して、新しいデータの予測、およびテスト セット MSE の計算をそれぞれ行うことができます。

データに最適なモデルのタイプがわからない場合は、fitrauto を使用します。回帰モデルのハイパーパラメーターを調整するための代替方法については、代替機能を参照してください。

データに含まれる観測値が 10,000 を超える場合は、fitrauto を実行するとき、ベイズ最適化の代わりに非同期連続半減アルゴリズム (ASHA) の使用を検討してください。データ セットの観測値が多いと、多くの場合、ベイズ最適化よりも ASHA 最適化の方が優れた解を速く見つけます。

Mdl = fitrauto(Tbl,ResponseVarName) は、調整されたハイパーパラメーターをもつ回帰モデル Mdl を返します。テーブル Tbl には予測子変数と応答変数を格納します。ResponseVarName は応答変数の名前です。

Mdl = fitrauto(Tbl,formula) は、formula を使用して、Tbl に含まれる変数から検討対象とする応答変数と予測子変数を指定します。

Mdl = fitrauto(Tbl,Y) は、テーブル Tbl 内の予測子変数とベクトル Y 内の応答値を使用します。

Mdl = fitrauto(X,Y) は、行列 X 内の予測子変数とベクトル Y 内の応答値を使用します。

Mdl = fitrauto(___,Name,Value) では、前の構文におけるいずれかの入力引数の組み合わせに加えて、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、名前と値の引数 HyperparameterOptimizationOptions を使用して、ベイズ最適化 (既定) または非同期連続半減アルゴリズム (ASHA) を使用するかどうかを指定します。ASHA 最適化を使用するには、"HyperparameterOptimizationOptions",struct("Optimizer","asha") を指定します。この構造体に追加フィールドを含めて、その他の最適化の側面を制御できます。

[Mdl,OptimizationResults] = fitrauto(___) は、OptimizationResults も返します。これには、モデル選択とハイパーパラメーター調整のプロセスの結果が含まれます。この出力は、ベイズ最適化を使用している場合は BayesianOptimization オブジェクトで、ASHA 最適化を使用している場合は table です。

すべて折りたたむ

fitrauto を使用し、table に保存されている予測子データと応答データに基づいて、最適化されたハイパーパラメーターをもつ回帰モデルを自動的に選択します。

データの読み込み

carbig データ セットを読み込みます。このデータ セットには、1970 年代と 1980 年代初期に製造された自動車の測定値が格納されています。

load carbig

AccelerationDisplacement などの予測子変数と応答変数 MPG が格納された table を作成します。

cars = table(Acceleration,Displacement,Horsepower, ...
    Model_Year,Origin,Weight,MPG);

cars から table に欠損値がある行を削除します。

cars = rmmissing(cars);

米国製かどうかに基づいて、自動車を分類します。

cars.Origin = categorical(cellstr(cars.Origin));
cars.Origin = mergecats(cars.Origin,["France","Japan",...
    "Germany","Sweden","Italy","England"],"NotUSA");

データの分割

データを学習セットとテスト セットに分割します。モデル選択とハイパーパラメーター調整のプロセスに観測値の約 80% を使用し、fitrauto によって返された最終モデルのパフォーマンスのテストに観測値の 20% を使用します。cvpartition を使用してデータを分割します。

rng("default") % For reproducibility of the data partition
c = cvpartition(height(cars),"Holdout",0.2);
trainingIdx = training(c); % Training set indices
carsTrain = cars(trainingIdx,:);
testIdx = test(c); % Test set indices
carsTest = cars(testIdx,:);

fitrauto の実行

学習データを fitrauto に渡します。既定では、fitrauto は、試行する適切なモデルのタイプを決定し、ベイズ最適化を使用して適切なハイパーパラメーター値を求め、パフォーマンスが最大となることが期待される学習済みモデル Mdl を返します。さらに、fitrauto は、最適化のプロット、および最適化の結果の反復表示を提供します。これらの結果を解釈する方法の詳細については、Verbose の表示を参照してください。

このプロセスにいくらか時間がかかることを見込んでください。Parallel Computing Toolbox™ のライセンスがある場合、最適化を並列で実行し、最適化プロセスを高速化することを検討してください。これを行うには、名前と値の引数 "HyperparameterOptimizationOptions",struct("UseParallel",true)fitrauto に渡します。

Mdl = fitrauto(carsTrain,"MPG");
Learner types to explore: ensemble, svm, tree
Total iterations (MaxObjectiveEvaluations): 90
Total time (MaxTime): Inf

|================================================================================================================================================|
| Iter | Eval   | log(1+valLoss)| Time for training | Observed min    | Estimated min   | Learner      | Hyperparameter:                 Value   |
|      | result |               | & validation (sec)| validation loss | validation loss |              |                                         |
|================================================================================================================================================|
|    1 | Best   |        3.3416 |            0.1617 |          3.3416 |          3.3416 |         tree | MinLeafSize:                        118 |
|    2 | Accept |        4.1303 |           0.10689 |          3.3416 |          3.3416 |          svm | BoxConstraint:                   16.579 |
|      |        |               |                   |                 |                 |              | KernelScale:                  0.0045538 |
|      |        |               |                   |                 |                 |              | Epsilon:                         657.79 |
|    3 | Best   |        2.5197 |          0.077313 |          2.5197 |          2.6121 |         tree | MinLeafSize:                          2 |
|    4 | Best   |        2.3335 |            4.6922 |          2.3335 |          2.3335 |     ensemble | Method:                             Bag |
|      |        |               |                   |                 |                 |              | NumLearningCycles:                  291 |
|      |        |               |                   |                 |                 |              | MinLeafSize:                          9 |
|    5 | Accept |        2.3398 |            3.1524 |          2.3335 |          2.3366 |     ensemble | Method:                             Bag |
|      |        |               |                   |                 |                 |              | NumLearningCycles:                  206 |
|      |        |               |                   |                 |                 |              | MinLeafSize:                         13 |
|    6 | Best   |         2.204 |            4.9207 |           2.204 |          2.2049 |     ensemble | Method:                         LSBoost |
|      |        |               |                   |                 |                 |              | NumLearningCycles:                  256 |
|      |        |               |                   |                 |                 |              | MinLeafSize:                         12 |
|    7 | Accept |        4.1303 |          0.055823 |           2.204 |          2.2049 |          svm | BoxConstraint:                0.0048178 |
|      |        |               |                   |                 |                 |              | KernelScale:                   0.011576 |
|      |        |               |                   |                 |                 |              | Epsilon:                         441.39 |
|    8 | Accept |        2.4787 |          0.060431 |           2.204 |          2.2049 |         tree | MinLeafSize:                          9 |
|    9 | Accept |        4.1303 |           0.03731 |           2.204 |          2.2049 |          svm | BoxConstraint:                    8.581 |
|      |        |               |                   |                 |                 |              | KernelScale:                     61.095 |
|      |        |               |                   |                 |                 |              | Epsilon:                         296.69 |
|   10 | Accept |        4.1303 |          0.035203 |           2.204 |          2.2049 |          svm | BoxConstraint:                   140.96 |
|      |        |               |                   |                 |                 |              | KernelScale:                   0.012197 |
|      |        |               |                   |                 |                 |              | Epsilon:                         69.002 |
|   11 | Accept |        2.9157 |          0.035004 |           2.204 |          2.2049 |         tree | MinLeafSize:                         32 |
|   12 | Accept |        3.2199 |          0.033218 |           2.204 |          2.2049 |         tree | MinLeafSize:                         64 |
|   13 | Accept |        2.4157 |          0.038466 |           2.204 |          2.2049 |         tree | MinLeafSize:                          4 |
|   14 | Accept |        4.1303 |          0.039282 |           2.204 |          2.2049 |          svm | BoxConstraint:                   1.3859 |
|      |        |               |                   |                 |                 |              | KernelScale:                     71.061 |
|      |        |               |                   |                 |                 |              | Epsilon:                         181.44 |
|   15 | Accept |        3.4156 |          0.032522 |           2.204 |          2.2049 |         tree | MinLeafSize:                        102 |
|   16 | Accept |        2.5197 |          0.042514 |           2.204 |          2.2049 |         tree | MinLeafSize:                          2 |
|   17 | Accept |        5.4306 |            23.255 |           2.204 |          2.2049 |          svm | BoxConstraint:                0.0018102 |
|      |        |               |                   |                 |                 |              | KernelScale:                   0.016815 |
|      |        |               |                   |                 |                 |              | Epsilon:                         8.1687 |
|   18 | Accept |        3.1121 |            4.0538 |           2.204 |          2.2042 |     ensemble | Method:                             Bag |
|      |        |               |                   |                 |                 |              | NumLearningCycles:                  288 |
|      |        |               |                   |                 |                 |              | MinLeafSize:                        106 |
|   19 | Best   |        2.1971 |            4.4769 |          2.1971 |          2.1972 |     ensemble | Method:                         LSBoost |
|      |        |               |                   |                 |                 |              | NumLearningCycles:                  227 |
|      |        |               |                   |                 |                 |              | MinLeafSize:                          2 |
|   20 | Best   |        2.1971 |            4.1893 |          2.1971 |          2.1972 |     ensemble | Method:                         LSBoost |
|      |        |               |                   |                 |                 |              | NumLearningCycles:                  223 |
|      |        |               |                   |                 |                 |              | MinLeafSize:                          2 |
|================================================================================================================================================|
| Iter | Eval   | log(1+valLoss)| Time for training | Observed min    | Estimated min   | Learner      | Hyperparameter:                 Value   |
|      | result |               | & validation (sec)| validation loss | validation loss |              |                                         |
|================================================================================================================================================|
|   21 | Accept |        2.2314 |            5.0182 |          2.1971 |          2.1972 |     ensemble | Method:                         LSBoost |
|      |        |               |                   |                 |                 |              | NumLearningCycles:                  262 |
|      |        |               |                   |                 |                 |              | MinLeafSize:                          5 |
|   22 | Accept |        2.5925 |            4.2399 |          2.1971 |          2.1972 |     ensemble | Method:                             Bag |
|      |        |               |                   |                 |                 |              | NumLearningCycles:                  283 |
|      |        |               |                   |                 |                 |              | MinLeafSize:                         39 |
|   23 | Accept |        2.1971 |             5.466 |          2.1971 |          2.1972 |     ensemble | Method:                         LSBoost |
|      |        |               |                   |                 |                 |              | NumLearningCycles:                  285 |
|      |        |               |                   |                 |                 |              | MinLeafSize:                          2 |
|   24 | Accept |        2.3352 |            1.6689 |          2.1971 |          2.1972 |          svm | BoxConstraint:                   2.2648 |
|      |        |               |                   |                 |                 |              | KernelScale:                    0.92531 |
|      |        |               |                   |                 |                 |              | Epsilon:                        0.51865 |
|   25 | Accept |        2.9882 |            3.4342 |          2.1971 |          2.1971 |     ensemble | Method:                             Bag |
|      |        |               |                   |                 |                 |              | NumLearningCycles:                  247 |
|      |        |               |                   |                 |                 |              | MinLeafSize:                         73 |
|   26 | Accept |        2.3583 |            3.7169 |          2.1971 |          2.1971 |     ensemble | Method:                             Bag |
|      |        |               |                   |                 |                 |              | NumLearningCycles:                  255 |
|      |        |               |                   |                 |                 |              | MinLeafSize:                         12 |
|   27 | Accept |        2.6476 |          0.052651 |          2.1971 |          2.1971 |         tree | MinLeafSize:                         28 |
|   28 | Accept |        2.4016 |          0.045653 |          2.1971 |          2.1971 |         tree | MinLeafSize:                          6 |
|   29 | Accept |        3.7573 |          0.054446 |          2.1971 |          2.1971 |          svm | BoxConstraint:                   9.4057 |
|      |        |               |                   |                 |                 |              | KernelScale:                     100.66 |
|      |        |               |                   |                 |                 |              | Epsilon:                        0.24447 |
|   30 | Accept |        2.6046 |          0.038702 |          2.1971 |          2.1971 |         tree | MinLeafSize:                         24 |
|   31 | Accept |        2.4157 |          0.038974 |          2.1971 |          2.1971 |         tree | MinLeafSize:                          4 |
|   32 | Accept |        4.1303 |          0.034693 |          2.1971 |          2.1971 |          svm | BoxConstraint:                   303.85 |
|      |        |               |                   |                 |                 |              | KernelScale:                  0.0083624 |
|      |        |               |                   |                 |                 |              | Epsilon:                          39.54 |
|   33 | Accept |         4.146 |          0.039632 |          2.1971 |          2.1971 |          svm | BoxConstraint:                  0.16546 |
|      |        |               |                   |                 |                 |              | KernelScale:                     248.79 |
|      |        |               |                   |                 |                 |              | Epsilon:                         1.1182 |
|   34 | Accept |        3.0466 |          0.035622 |          2.1971 |          2.1971 |         tree | MinLeafSize:                         46 |
|   35 | Accept |        2.3417 |            3.6854 |          2.1971 |          2.1971 |     ensemble | Method:                             Bag |
|      |        |               |                   |                 |                 |              | NumLearningCycles:                  246 |
|      |        |               |                   |                 |                 |              | MinLeafSize:                         12 |
|   36 | Accept |        2.7264 |             5.237 |          2.1971 |          2.1972 |     ensemble | Method:                         LSBoost |
|      |        |               |                   |                 |                 |              | NumLearningCycles:                  274 |
|      |        |               |                   |                 |                 |              | MinLeafSize:                        105 |
|   37 | Accept |        2.5457 |             3.608 |          2.1971 |          2.1972 |     ensemble | Method:                             Bag |
|      |        |               |                   |                 |                 |              | NumLearningCycles:                  257 |
|      |        |               |                   |                 |                 |              | MinLeafSize:                         33 |
|   38 | Accept |        2.6603 |          0.057475 |          2.1971 |          2.1972 |         tree | MinLeafSize:                          1 |
|   39 | Accept |        2.3589 |            2.9631 |          2.1971 |          2.1972 |          svm | BoxConstraint:                   56.509 |
|      |        |               |                   |                 |                 |              | KernelScale:                      1.509 |
|      |        |               |                   |                 |                 |              | Epsilon:                         0.5604 |
|   40 | Accept |        4.1303 |          0.037567 |          2.1971 |          2.1972 |          svm | BoxConstraint:                 0.001484 |
|      |        |               |                   |                 |                 |              | KernelScale:                  0.0032176 |
|      |        |               |                   |                 |                 |              | Epsilon:                         22.445 |
|================================================================================================================================================|
| Iter | Eval   | log(1+valLoss)| Time for training | Observed min    | Estimated min   | Learner      | Hyperparameter:                 Value   |
|      | result |               | & validation (sec)| validation loss | validation loss |              |                                         |
|================================================================================================================================================|
|   41 | Accept |        2.5507 |          0.045858 |          2.1971 |          2.1972 |         tree | MinLeafSize:                         15 |
|   42 | Best   |        2.1945 |            5.5104 |          2.1945 |          2.1966 |     ensemble | Method:                         LSBoost |
|      |        |               |                   |                 |                 |              | NumLearningCycles:                  289 |
|      |        |               |                   |                 |                 |              | MinLeafSize:                          6 |
|   43 | Accept |        3.9788 |          0.050732 |          2.1945 |          2.1966 |          svm | BoxConstraint:                   31.423 |
|      |        |               |                   |                 |                 |              | KernelScale:                    0.16609 |
|      |        |               |                   |                 |                 |              | Epsilon:                         14.619 |
|   44 | Accept |        4.0639 |          0.040411 |          2.1945 |          2.1966 |          svm | BoxConstraint:                   42.958 |
|      |        |               |                   |                 |                 |              | KernelScale:                     459.03 |
|      |        |               |                   |                 |                 |              | Epsilon:                        0.98679 |
|   45 | Accept |        2.5392 |          0.037327 |          2.1945 |          2.1966 |          svm | BoxConstraint:                   32.844 |
|      |        |               |                   |                 |                 |              | KernelScale:                     24.244 |
|      |        |               |                   |                 |                 |              | Epsilon:                         2.8938 |
|   46 | Accept |        4.1222 |          0.039989 |          2.1945 |          2.1966 |          svm | BoxConstraint:                 0.001348 |
|      |        |               |                   |                 |                 |              | KernelScale:                     5.1158 |
|      |        |               |                   |                 |                 |              | Epsilon:                         2.4534 |
|   47 | Best   |        2.1523 |          0.054429 |          2.1523 |          2.1525 |          svm | BoxConstraint:                    145.8 |
|      |        |               |                   |                 |                 |              | KernelScale:                     6.9661 |
|      |        |               |                   |                 |                 |              | Epsilon:                          1.692 |
|   48 | Best   |        2.0991 |          0.043964 |          2.0991 |          2.0991 |          svm | BoxConstraint:                   11.118 |
|      |        |               |                   |                 |                 |              | KernelScale:                     4.5614 |
|      |        |               |                   |                 |                 |              | Epsilon:                         0.6909 |
|   49 | Accept |        2.1321 |          0.048682 |          2.0991 |          2.0991 |          svm | BoxConstraint:                   12.625 |
|      |        |               |                   |                 |                 |              | KernelScale:                     3.7951 |
|      |        |               |                   |                 |                 |              | Epsilon:                         1.9243 |
|   50 | Accept |        2.1155 |          0.065734 |          2.0991 |          2.0988 |          svm | BoxConstraint:                   2.9811 |
|      |        |               |                   |                 |                 |              | KernelScale:                     2.2304 |
|      |        |               |                   |                 |                 |              | Epsilon:                        0.11742 |
|   51 | Accept |        2.1127 |          0.061163 |          2.0991 |          2.0991 |          svm | BoxConstraint:                   4.6122 |
|      |        |               |                   |                 |                 |              | KernelScale:                     2.5002 |
|      |        |               |                   |                 |                 |              | Epsilon:                        0.24122 |
|   52 | Accept |        2.3111 |             2.183 |          2.0991 |           2.099 |          svm | BoxConstraint:                   13.002 |
|      |        |               |                   |                 |                 |              | KernelScale:                     1.2194 |
|      |        |               |                   |                 |                 |              | Epsilon:                      0.0097793 |
|   53 | Accept |        2.1329 |          0.060156 |          2.0991 |          2.0987 |          svm | BoxConstraint:                   81.429 |
|      |        |               |                   |                 |                 |              | KernelScale:                     5.9963 |
|      |        |               |                   |                 |                 |              | Epsilon:                       0.040814 |
|   54 | Accept |        2.1395 |          0.046864 |          2.0991 |          2.0991 |          svm | BoxConstraint:                   43.058 |
|      |        |               |                   |                 |                 |              | KernelScale:                     8.8124 |
|      |        |               |                   |                 |                 |              | Epsilon:                        0.31232 |
|   55 | Accept |        2.1268 |          0.070321 |          2.0991 |          2.0993 |          svm | BoxConstraint:                   18.909 |
|      |        |               |                   |                 |                 |              | KernelScale:                     3.2821 |
|      |        |               |                   |                 |                 |              | Epsilon:                       0.049352 |
|   56 | Accept |        2.2052 |            5.7654 |          2.0991 |          2.0993 |     ensemble | Method:                         LSBoost |
|      |        |               |                   |                 |                 |              | NumLearningCycles:                  299 |
|      |        |               |                   |                 |                 |              | MinLeafSize:                          1 |
|   57 | Accept |        2.1528 |           0.15163 |          2.0991 |          2.0994 |          svm | BoxConstraint:                   930.08 |
|      |        |               |                   |                 |                 |              | KernelScale:                     7.7684 |
|      |        |               |                   |                 |                 |              | Epsilon:                        0.15953 |
|   58 | Accept |        2.1402 |          0.075441 |          2.0991 |          2.0998 |          svm | BoxConstraint:                   90.458 |
|      |        |               |                   |                 |                 |              | KernelScale:                     4.8465 |
|      |        |               |                   |                 |                 |              | Epsilon:                        0.16486 |
|   59 | Accept |         2.169 |           0.33792 |          2.0991 |          2.0998 |          svm | BoxConstraint:                   838.56 |
|      |        |               |                   |                 |                 |              | KernelScale:                     4.9126 |
|      |        |               |                   |                 |                 |              | Epsilon:                       0.010297 |
|   60 | Accept |        2.1441 |            0.1108 |          2.0991 |             2.1 |          svm | BoxConstraint:                   977.44 |
|      |        |               |                   |                 |                 |              | KernelScale:                     9.5442 |
|      |        |               |                   |                 |                 |              | Epsilon:                      0.0096251 |
|================================================================================================================================================|
| Iter | Eval   | log(1+valLoss)| Time for training | Observed min    | Estimated min   | Learner      | Hyperparameter:                 Value   |
|      | result |               | & validation (sec)| validation loss | validation loss |              |                                         |
|================================================================================================================================================|
|   61 | Accept |        2.3548 |            3.0057 |          2.0991 |             2.1 |     ensemble | Method:                             Bag |
|      |        |               |                   |                 |                 |              | NumLearningCycles:                  201 |
|      |        |               |                   |                 |                 |              | MinLeafSize:                          1 |
|   62 | Accept |         2.134 |          0.051302 |          2.0991 |             2.1 |          svm | BoxConstraint:                   7.3349 |
|      |        |               |                   |                 |                 |              | KernelScale:                     4.5654 |
|      |        |               |                   |                 |                 |              | Epsilon:                       0.010146 |
|   63 | Accept |        2.1198 |          0.042744 |          2.0991 |          2.1015 |          svm | BoxConstraint:                   9.5959 |
|      |        |               |                   |                 |                 |              | KernelScale:                     4.8771 |
|      |        |               |                   |                 |                 |              | Epsilon:                        0.19667 |
|   64 | Accept |        2.1389 |          0.058507 |          2.0991 |          2.1014 |          svm | BoxConstraint:                   948.83 |
|      |        |               |                   |                 |                 |              | KernelScale:                     16.462 |
|      |        |               |                   |                 |                 |              | Epsilon:                        0.47562 |
|   65 | Accept |        2.1122 |          0.062182 |          2.0991 |          2.1017 |          svm | BoxConstraint:                   1.8061 |
|      |        |               |                   |                 |                 |              | KernelScale:                     2.0447 |
|      |        |               |                   |                 |                 |              | Epsilon:                       0.010408 |
|   66 | Accept |        2.1239 |          0.053398 |          2.0991 |           2.102 |          svm | BoxConstraint:                   3.1375 |
|      |        |               |                   |                 |                 |              | KernelScale:                     2.5109 |
|      |        |               |                   |                 |                 |              | Epsilon:                       0.012724 |
|   67 | Accept |        2.1168 |          0.051692 |          2.0991 |           2.104 |          svm | BoxConstraint:                   15.336 |
|      |        |               |                   |                 |                 |              | KernelScale:                     3.8639 |
|      |        |               |                   |                 |                 |              | Epsilon:                        0.35151 |
|   68 | Accept |        2.1262 |          0.060441 |          2.0991 |          2.1042 |          svm | BoxConstraint:                   619.86 |
|      |        |               |                   |                 |                 |              | KernelScale:                     12.746 |
|      |        |               |                   |                 |                 |              | Epsilon:                        0.12944 |
|   69 | Accept |        2.1288 |          0.041367 |          2.0991 |          2.1087 |          svm | BoxConstraint:                   14.346 |
|      |        |               |                   |                 |                 |              | KernelScale:                     5.6377 |
|      |        |               |                   |                 |                 |              | Epsilon:                         1.1115 |
|   70 | Accept |        2.1075 |          0.046906 |          2.0991 |          2.1073 |          svm | BoxConstraint:                   6.3065 |
|      |        |               |                   |                 |                 |              | KernelScale:                     3.3652 |
|      |        |               |                   |                 |                 |              | Epsilon:                        0.37711 |
|   71 | Accept |        2.1122 |          0.058036 |          2.0991 |          2.1071 |          svm | BoxConstraint:                  0.21669 |
|      |        |               |                   |                 |                 |              | KernelScale:                     1.3771 |
|      |        |               |                   |                 |                 |              | Epsilon:                       0.010668 |
|   72 | Accept |        2.1086 |          0.057236 |          2.0991 |          2.1072 |          svm | BoxConstraint:                   0.6199 |
|      |        |               |                   |                 |                 |              | KernelScale:                     1.6673 |
|      |        |               |                   |                 |                 |              | Epsilon:                        0.02609 |
|   73 | Accept |        2.2008 |           0.20609 |          2.0991 |           2.107 |          svm | BoxConstraint:                  0.74478 |
|      |        |               |                   |                 |                 |              | KernelScale:                     1.1364 |
|      |        |               |                   |                 |                 |              | Epsilon:                      0.0097464 |
|   74 | Accept |        2.1274 |          0.045525 |          2.0991 |          2.1075 |          svm | BoxConstraint:                  0.24664 |
|      |        |               |                   |                 |                 |              | KernelScale:                     1.9581 |
|      |        |               |                   |                 |                 |              | Epsilon:                      0.0095196 |
|   75 | Accept |        2.1194 |          0.062398 |          2.0991 |          2.1076 |          svm | BoxConstraint:                  0.84673 |
|      |        |               |                   |                 |                 |              | KernelScale:                     1.6712 |
|      |        |               |                   |                 |                 |              | Epsilon:                        0.38722 |
|   76 | Accept |         2.339 |            3.0245 |          2.0991 |          2.1076 |     ensemble | Method:                             Bag |
|      |        |               |                   |                 |                 |              | NumLearningCycles:                  204 |
|      |        |               |                   |                 |                 |              | MinLeafSize:                          3 |
|   77 | Accept |        4.1303 |          0.045681 |          2.0991 |          2.1046 |          svm | BoxConstraint:                   3.6938 |
|      |        |               |                   |                 |                 |              | KernelScale:                     1.3489 |
|      |        |               |                   |                 |                 |              | Epsilon:                         883.83 |
|   78 | Accept |        2.1418 |          0.063846 |          2.0991 |           2.105 |          svm | BoxConstraint:                   53.966 |
|      |        |               |                   |                 |                 |              | KernelScale:                     4.7398 |
|      |        |               |                   |                 |                 |              | Epsilon:                      0.0098142 |
|   79 | Accept |        2.1226 |          0.068867 |          2.0991 |          2.1052 |          svm | BoxConstraint:                  0.21684 |
|      |        |               |                   |                 |                 |              | KernelScale:                     1.2724 |
|      |        |               |                   |                 |                 |              | Epsilon:                       0.067508 |
|   80 | Accept |        2.1215 |          0.071022 |          2.0991 |          2.1054 |          svm | BoxConstraint:                  0.89132 |
|      |        |               |                   |                 |                 |              | KernelScale:                     1.6131 |
|      |        |               |                   |                 |                 |              | Epsilon:                       0.080329 |
|================================================================================================================================================|
| Iter | Eval   | log(1+valLoss)| Time for training | Observed min    | Estimated min   | Learner      | Hyperparameter:                 Value   |
|      | result |               | & validation (sec)| validation loss | validation loss |              |                                         |
|================================================================================================================================================|
|   81 | Accept |        2.1109 |          0.049506 |          2.0991 |          2.1055 |          svm | BoxConstraint:                   1.8778 |
|      |        |               |                   |                 |                 |              | KernelScale:                     2.3249 |
|      |        |               |                   |                 |                 |              | Epsilon:                        0.40345 |
|   82 | Accept |        2.1894 |          0.047319 |          2.0991 |          2.1052 |          svm | BoxConstraint:                0.0080677 |
|      |        |               |                   |                 |                 |              | KernelScale:                    0.98345 |
|      |        |               |                   |                 |                 |              | Epsilon:                      0.0098795 |
|   83 | Accept |        2.1159 |          0.055132 |          2.0991 |          2.1053 |          svm | BoxConstraint:                 0.097667 |
|      |        |               |                   |                 |                 |              | KernelScale:                     1.4607 |
|      |        |               |                   |                 |                 |              | Epsilon:                       0.029531 |
|   84 | Accept |        2.1106 |          0.047832 |          2.0991 |          2.1064 |          svm | BoxConstraint:                   9.7081 |
|      |        |               |                   |                 |                 |              | KernelScale:                     3.5404 |
|      |        |               |                   |                 |                 |              | Epsilon:                        0.77633 |
|   85 | Accept |        2.1338 |          0.052769 |          2.0991 |          2.1065 |          svm | BoxConstraint:                   328.02 |
|      |        |               |                   |                 |                 |              | KernelScale:                     11.996 |
|      |        |               |                   |                 |                 |              | Epsilon:                        0.63786 |
|   86 | Accept |        2.1017 |          0.046959 |          2.0991 |          2.1033 |          svm | BoxConstraint:                   15.397 |
|      |        |               |                   |                 |                 |              | KernelScale:                     4.4256 |
|      |        |               |                   |                 |                 |              | Epsilon:                         0.7265 |
|   87 | Accept |        4.1303 |          0.036522 |          2.0991 |          2.1033 |          svm | BoxConstraint:                   434.58 |
|      |        |               |                   |                 |                 |              | KernelScale:                  0.0010827 |
|      |        |               |                   |                 |                 |              | Epsilon:                       0.011393 |
|   88 | Accept |        2.0996 |          0.046978 |          2.0991 |          2.1017 |          svm | BoxConstraint:                   24.978 |
|      |        |               |                   |                 |                 |              | KernelScale:                     4.7899 |
|      |        |               |                   |                 |                 |              | Epsilon:                        0.72324 |
|   89 | Accept |        2.1053 |          0.046511 |          2.0991 |          2.1025 |          svm | BoxConstraint:                   18.777 |
|      |        |               |                   |                 |                 |              | KernelScale:                     4.5251 |
|      |        |               |                   |                 |                 |              | Epsilon:                        0.76878 |
|   90 | Accept |        2.1034 |          0.047849 |          2.0991 |          2.1026 |          svm | BoxConstraint:                   19.098 |
|      |        |               |                   |                 |                 |              | KernelScale:                     4.5336 |
|      |        |               |                   |                 |                 |              | Epsilon:                        0.75174 |

__________________________________________________________
Optimization completed.
Total iterations: 90
Total elapsed time: 136.2822 seconds
Total time for training and validation: 111.4242 seconds

Best observed learner is an svm model with:
	Learner:                   svm
	BoxConstraint:          11.118
	KernelScale:            4.5614
	Epsilon:                0.6909
Observed log(1 + valLoss): 2.0991
Time for training and validation: 0.043964 seconds

Best estimated learner (returned model) is an svm model with:
	Learner:                   svm
	BoxConstraint:          15.397
	KernelScale:            4.4256
	Epsilon:                0.7265
Estimated log(1 + valLoss): 2.1026
Estimated time for training and validation: 0.046399 seconds

Documentation for fitrauto display

Figure contains an axes object. The axes object with title Optimization Progress, xlabel Iteration, ylabel log(1 + valLoss) contains 2 objects of type line. These objects represent Observed min, Estimated min.

fitrauto によって返される最終的なモデルが、最適な推定学習器となります。モデルを返す前に、関数は学習データ全体 (carsTrain)、リストされている Learner (またはモデル) のタイプ、および表示されたハイパーパラメーター値を使用して、モデルの再学習を行います。

テスト セットのパフォーマンスの評価

テスト セットに対するモデルのパフォーマンスを評価します。testError は、テスト セットの平均二乗誤差 (MSE) に基づきます。MSE の値が小さいほど、パフォーマンスが優れていることを示します。

testMSE = loss(Mdl,carsTest,"MPG");
testError = log(1 + testMSE)
testError = 2.2000

fitrauto を使用し、個別の変数に保存されている予測子データと応答データに基づいて、最適化されたハイパーパラメーターをもつ回帰モデルを自動的に選択します。

データの読み込み

carbig データ セットを読み込みます。このデータ セットには、1970 年代と 1980 年代初期に製造された自動車の測定値が格納されています。

load carbig

予測子変数 AccelerationCylinders などが含まれている行列 X を作成します。応答変数 MPG を変数 Y に保存します。

X = [Acceleration Cylinders Displacement Weight];
Y = MPG;

X および Y からいずれかの配列に欠損値がある行を削除します。

R = rmmissing([X Y]);
X = R(:,1:end-1);
Y = R(:,end);

カテゴリカルな予測子を示す変数を作成します。CylindersX 内で唯一のカテゴリカル変数です。

categoricalVars = [false true false false];

データの分割

データを学習セットとテスト セットに分割します。モデル選択とハイパーパラメーター調整のプロセスに観測値の約 80% を使用し、fitrauto によって返された最終モデルのパフォーマンスのテストに観測値の 20% を使用します。cvpartition を使用してデータを分割します。

rng("default") % For reproducibility of the partition
c = cvpartition(length(Y),"Holdout",0.20);
trainingIdx = training(c); % Indices for the training set
XTrain = X(trainingIdx,:);
YTrain = Y(trainingIdx);
testIdx = test(c); % Indices for the test set
XTest = X(testIdx,:);
YTest = Y(testIdx);

fitrauto の実行

学習データを fitrauto に渡します。既定では、fitrauto は、試行する適切なモデル (学習器) のタイプを決定し、ベイズ最適化を使用してこれらのモデルの適切なハイパーパラメーター値を求め、パフォーマンスが最大となることが期待される学習済みモデル Mdl を返します。カテゴリカル予測子を指定し、最適化を並列実行します (Parallel Computing Toolbox™ が必要)。ベイズ最適化の詳細が格納された 2 番目の出力 OptimizationResults を返します。

このプロセスにいくらか時間がかかることを見込んでください。既定の設定では、fitrauto は、最適化のプロット、および最適化の結果の反復表示を提供します。これらの結果を解釈する方法の詳細については、Verbose の表示を参照してください。

options = struct("UseParallel",true);
[Mdl,OptimizationResults] = fitrauto(XTrain,YTrain, ...
    "CategoricalPredictors",categoricalVars, ...
    "HyperparameterOptimizationOptions",options);
Starting parallel pool (parpool) using the 'Processes' profile ...
Connected to parallel pool with 8 workers.
Copying objective function to workers...
Done copying objective function to workers.
Learner types to explore: ensemble, svm, tree
Total iterations (MaxObjectiveEvaluations): 90
Total time (MaxTime): Inf

|==========================================================================================================================================================|
| Iter | Active  | Eval   | log(1+valLoss)| Time for training | Observed min    | Estimated min   | Learner      | Hyperparameter:                 Value   |
|      | workers | result |               | & validation (sec)| validation loss | validation loss |              |                                         |
|==========================================================================================================================================================|
|    1 |       6 | Best   |        3.1329 |            1.9788 |          3.1329 |          3.1329 |         tree | MinLeafSize:                          5 |
|    2 |       6 | Accept |        3.1329 |             1.985 |          3.1329 |          3.1329 |         tree | MinLeafSize:                          5 |
|    3 |       6 | Accept |        3.1539 |            1.9764 |          3.1329 |          3.1329 |         tree | MinLeafSize:                          9 |
|    4 |       6 | Accept |        4.1701 |            2.1518 |          3.1329 |          3.1329 |          svm | BoxConstraint:                 0.033502 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     153.38 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                       0.095234 |
|    5 |       8 | Accept |        3.1684 |           0.72622 |          3.1329 |           3.147 |         tree | MinLeafSize:                          4 |
|    6 |       8 | Best   |        3.0322 |           0.20501 |          3.0322 |          3.0528 |          svm | BoxConstraint:                 0.010812 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     1.2015 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                       0.034779 |
|    7 |       8 | Accept |        3.2871 |           0.23632 |          3.0322 |          3.0528 |         tree | MinLeafSize:                          2 |
|    8 |       8 | Accept |        4.1645 |             7.601 |          3.0322 |          3.0528 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  257 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                        154 |
|    9 |       8 | Accept |        3.2871 |           0.50364 |          3.0322 |          3.0528 |         tree | MinLeafSize:                          2 |
|   10 |       8 | Best   |        2.9469 |            10.828 |          2.9469 |          2.9628 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  287 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          1 |
|   11 |       8 | Best   |        2.9388 |            10.949 |          2.9388 |          2.9413 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  288 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          3 |
|   12 |       8 | Accept |        2.9581 |             10.32 |          2.9388 |          2.9404 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  287 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         62 |
|   13 |       7 | Accept |        2.9581 |            10.584 |          2.9388 |          2.9403 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  287 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         62 |
|   14 |       7 | Accept |        2.9581 |            10.626 |          2.9388 |          2.9403 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  287 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         62 |
|   15 |       8 | Accept |        3.6004 |           0.36596 |          2.9388 |          2.9403 |         tree | MinLeafSize:                        120 |
|   16 |       8 | Accept |        3.6004 |           0.41888 |          2.9388 |          2.9403 |         tree | MinLeafSize:                        120 |
|   17 |       8 | Accept |        3.1539 |           0.14494 |          2.9388 |          2.9403 |         tree | MinLeafSize:                          9 |
|   18 |       7 | Best   |        2.9287 |            11.356 |          2.9287 |          2.9403 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  283 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         16 |
|   19 |       7 | Accept |        4.1645 |            1.9545 |          2.9287 |          2.9403 |          svm | BoxConstraint:                   159.44 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     34.732 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                          412.2 |
|   20 |       7 | Accept |        4.1862 |            0.1901 |          2.9287 |          2.9403 |          svm | BoxConstraint:                    7.487 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     81.753 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         12.782 |
|==========================================================================================================================================================|
| Iter | Active  | Eval   | log(1+valLoss)| Time for training | Observed min    | Estimated min   | Learner      | Hyperparameter:                 Value   |
|      | workers | result |               | & validation (sec)| validation loss | validation loss |              |                                         |
|==========================================================================================================================================================|
|   21 |       7 | Accept |        4.1645 |           0.19246 |          2.9287 |          2.9403 |          svm | BoxConstraint:                   2.1296 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     3.2623 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         609.61 |
|   22 |       6 | Accept |        3.9011 |            1.5706 |          2.9287 |          2.9403 |          svm | BoxConstraint:                   9.4057 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     100.66 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         0.2386 |
|   23 |       6 | Accept |        3.1593 |           0.18031 |          2.9287 |          2.9403 |         tree | MinLeafSize:                          8 |
|   24 |       7 | Accept |        2.9494 |            0.3265 |          2.9287 |          2.9403 |          svm | BoxConstraint:                   746.54 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     5.6788 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         1.0177 |
|   25 |       7 | Accept |        2.9494 |           0.26551 |          2.9287 |          2.9403 |          svm | BoxConstraint:                   746.54 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     5.6788 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         1.0177 |
|   26 |       7 | Accept |        9.5074 |            20.334 |          2.9287 |          2.9403 |          svm | BoxConstraint:                   336.91 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                  0.0018275 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                        0.10919 |
|   27 |       7 | Accept |        2.9494 |           0.79583 |          2.9287 |          2.9403 |          svm | BoxConstraint:                   746.54 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     5.6788 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         1.0177 |
|   28 |       6 | Best   |        2.9287 |            11.352 |          2.9287 |          2.9403 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  262 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          5 |
|   29 |       6 | Accept |        3.6021 |           0.45991 |          2.9287 |          2.9403 |         tree | MinLeafSize:                          1 |
|   30 |       5 | Accept |        3.1697 |            8.5532 |          2.9287 |          2.9403 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  247 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         74 |
|   31 |       5 | Accept |        3.1014 |            1.3678 |          2.9287 |          2.9403 |         tree | MinLeafSize:                         13 |
|   32 |       8 | Accept |        2.9806 |           0.26062 |          2.9287 |          2.9403 |          svm | BoxConstraint:                   5.2568 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     10.811 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                       0.074584 |
|   33 |       8 | Accept |         4.165 |           0.13934 |          2.9287 |          2.9403 |          svm | BoxConstraint:                  0.18243 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     128.12 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         5.0924 |
|   34 |       8 | Accept |        2.9351 |            11.473 |          2.9287 |          2.9288 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  282 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          2 |
|   35 |       7 | Accept |        2.9423 |            5.5429 |          2.9287 |          2.9288 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  202 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         50 |
|   36 |       7 | Accept |        3.4421 |           0.51292 |          2.9287 |          2.9288 |         tree | MinLeafSize:                         76 |
|   37 |       8 | Accept |        2.9423 |            6.4536 |          2.9287 |           2.927 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  239 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         50 |
|   38 |       4 | Accept |        3.1708 |            10.551 |          2.8874 |          2.8928 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  274 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                        106 |
|   39 |       4 | Accept |        2.9338 |            9.5391 |          2.8874 |          2.8928 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  280 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         45 |
|   40 |       4 | Accept |        2.9351 |            6.3776 |          2.8874 |          2.8928 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  233 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          2 |
|==========================================================================================================================================================|
| Iter | Active  | Eval   | log(1+valLoss)| Time for training | Observed min    | Estimated min   | Learner      | Hyperparameter:                 Value   |
|      | workers | result |               | & validation (sec)| validation loss | validation loss |              |                                         |
|==========================================================================================================================================================|
|   41 |       4 | Best   |        2.8874 |            6.3082 |          2.8874 |          2.8928 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  271 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          1 |
|   42 |       4 | Accept |        2.8981 |            7.7345 |          2.8874 |          2.8928 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  271 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          1 |
|   43 |       8 | Accept |        3.2678 |           0.19997 |          2.8874 |          2.8928 |         tree | MinLeafSize:                         65 |
|   44 |       5 | Best   |        2.8796 |            4.3397 |          2.8796 |          2.8796 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  209 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          4 |
|   45 |       5 | Accept |        2.8803 |             5.559 |          2.8796 |          2.8796 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  250 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         10 |
|   46 |       5 | Accept |        3.2871 |           0.40833 |          2.8796 |          2.8796 |         tree | MinLeafSize:                          2 |
|   47 |       5 | Accept |        2.9099 |            5.7828 |          2.8796 |          2.8796 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  213 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         10 |
|   48 |       8 | Accept |        2.9351 |             7.025 |          2.8796 |          2.8796 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  265 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          2 |
|   49 |       6 | Accept |        5.4316 |            20.005 |          2.8796 |          2.8796 |          svm | BoxConstraint:                   28.808 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     0.3219 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                        0.13762 |
|   50 |       6 | Accept |        3.1177 |           0.68844 |          2.8796 |          2.8796 |          svm | BoxConstraint:                   127.48 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                        105 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                        0.58941 |
|   51 |       6 | Accept |        7.8524 |           0.68066 |          2.8796 |          2.8796 |          svm | BoxConstraint:                   3.2128 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                  0.0015524 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                        0.11513 |
|   52 |       7 | Accept |        3.1329 |          0.068468 |          2.8796 |          2.8796 |         tree | MinLeafSize:                          5 |
|   53 |       7 | Accept |        2.9597 |          0.088717 |          2.8796 |          2.8796 |          svm | BoxConstraint:                   990.41 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     29.533 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                       0.015011 |
|   54 |       8 | Accept |        2.9076 |            5.4054 |          2.8796 |          2.8796 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  248 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         13 |
|   55 |       8 | Accept |        4.1645 |           0.07993 |          2.8796 |          2.8796 |          svm | BoxConstraint:                    1.246 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                   0.048145 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         337.42 |
|   56 |       4 | Accept |        4.8948 |            27.255 |          2.8796 |          2.8796 |          svm | BoxConstraint:                 0.093799 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                  0.0053728 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         17.621 |
|   57 |       4 | Accept |        2.9227 |            8.5858 |          2.8796 |          2.8796 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  360 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          9 |
|   58 |       4 | Accept |        2.8934 |            5.1523 |          2.8796 |          2.8796 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  298 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          2 |
|   59 |       4 | Accept |        2.8877 |            5.7141 |          2.8796 |          2.8796 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  299 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          2 |
|   60 |       4 | Accept |        2.8982 |            5.5545 |          2.8796 |          2.8796 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  320 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          1 |
|==========================================================================================================================================================|
| Iter | Active  | Eval   | log(1+valLoss)| Time for training | Observed min    | Estimated min   | Learner      | Hyperparameter:                 Value   |
|      | workers | result |               | & validation (sec)| validation loss | validation loss |              |                                         |
|==========================================================================================================================================================|
|   61 |       8 | Accept |        3.0945 |          0.065636 |          2.8796 |          2.8796 |         tree | MinLeafSize:                         11 |
|   62 |       6 | Accept |        2.8818 |            5.1985 |          2.8796 |          2.8796 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  298 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          2 |
|   63 |       6 | Accept |        4.1645 |           0.17235 |          2.8796 |          2.8796 |          svm | BoxConstraint:                0.0010273 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                    0.24074 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         280.24 |
|   64 |       6 | Accept |        4.1645 |          0.069883 |          2.8796 |          2.8796 |          svm | BoxConstraint:                   2.4541 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     5.0059 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         29.021 |
|   65 |       6 | Best   |        2.8788 |            3.2047 |          2.8788 |          2.8785 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  223 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          5 |
|   66 |       6 | Accept |        3.1966 |            4.5298 |          2.8788 |          2.8785 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  243 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                        109 |
|   67 |       6 | Accept |        4.2278 |          0.075829 |          2.8788 |          2.8785 |          svm | BoxConstraint:                  0.49855 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     822.57 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         13.604 |
|   68 |       7 | Accept |        3.4183 |          0.040748 |          2.8788 |          2.8785 |         tree | MinLeafSize:                         93 |
|   69 |       7 | Accept |        2.9682 |          0.089978 |          2.8788 |          2.8785 |          svm | BoxConstraint:                   990.82 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     32.258 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                        0.65013 |
|   70 |       7 | Accept |        17.606 |             16.61 |          2.8788 |          2.8785 |          svm | BoxConstraint:                   244.81 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                   0.029911 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         1.3663 |
|   71 |       7 | Accept |        3.2871 |           0.12707 |          2.8788 |          2.8785 |         tree | MinLeafSize:                          2 |
|   72 |       6 | Accept |        2.8957 |            2.8051 |          2.8788 |          2.8785 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  203 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         21 |
|   73 |       6 | Accept |        4.1645 |          0.049095 |          2.8788 |          2.8785 |          svm | BoxConstraint:                0.0023954 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                  0.0017894 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         779.82 |
|   74 |       7 | Accept |        4.1645 |          0.073002 |          2.8788 |          2.8785 |          svm | BoxConstraint:                0.0022454 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     1.2218 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         1223.3 |
|   75 |       6 | Accept |        3.0324 |            7.4797 |          2.8788 |           2.878 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  386 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         74 |
|   76 |       6 | Accept |        2.8964 |            3.1304 |          2.8788 |           2.878 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  222 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         21 |
|   77 |       6 | Accept |        3.1637 |          0.054723 |          2.8788 |           2.878 |         tree | MinLeafSize:                          6 |
|   78 |       5 | Accept |        2.8986 |            2.8386 |          2.8788 |           2.878 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  204 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         21 |
|   79 |       5 | Accept |        4.1645 |           0.04896 |          2.8788 |           2.878 |          svm | BoxConstraint:                0.0012664 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                  0.0010838 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         54.909 |
|   80 |       7 | Accept |        16.812 |            11.246 |          2.8788 |          2.8778 |          svm | BoxConstraint:                 0.071974 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                   0.030156 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         1.0328 |
|==========================================================================================================================================================|
| Iter | Active  | Eval   | log(1+valLoss)| Time for training | Observed min    | Estimated min   | Learner      | Hyperparameter:                 Value   |
|      | workers | result |               | & validation (sec)| validation loss | validation loss |              |                                         |
|==========================================================================================================================================================|
|   81 |       7 | Accept |        2.9388 |            7.0653 |          2.8788 |          2.8778 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  375 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          3 |
|   82 |       4 | Accept |        2.9194 |          0.056852 |          2.8788 |          2.8778 |          svm | BoxConstraint:                  0.49279 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                      1.837 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                       0.028024 |
|   83 |       4 | Accept |        3.6021 |          0.073288 |          2.8788 |          2.8778 |         tree | MinLeafSize:                          1 |
|   84 |       4 | Accept |        4.1645 |          0.043986 |          2.8788 |          2.8778 |          svm | BoxConstraint:                0.0010569 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                    0.05901 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         154.61 |
|   85 |       4 | Accept |        4.0662 |          0.051015 |          2.8788 |          2.8778 |          svm | BoxConstraint:                  0.65745 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     42.989 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                       0.018275 |
|   86 |       8 | Accept |        2.8973 |            2.9559 |          2.8788 |          2.8778 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | NumLearningCycles:                  200 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         21 |
|   87 |       6 | Accept |        3.1593 |          0.030722 |          2.8788 |          2.8778 |         tree | MinLeafSize:                          8 |
|   88 |       6 | Accept |        4.1645 |            0.1004 |          2.8788 |          2.8778 |          svm | BoxConstraint:                 0.026752 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                  0.0090205 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         234.51 |
|   89 |       6 | Accept |        4.1645 |          0.085556 |          2.8788 |          2.8778 |          svm | BoxConstraint:                   701.89 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                   0.014432 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         823.78 |
|   90 |       7 | Accept |        3.0786 |          0.058939 |          2.8788 |          2.8778 |         tree | MinLeafSize:                         12 |

Figure contains an axes object. The axes object with title Optimization Progress, xlabel Iteration, ylabel log(1 + valLoss) contains 2 objects of type line. These objects represent Observed min, Estimated min.

__________________________________________________________
Optimization completed.
Total iterations: 90
Total elapsed time: 70.4919 seconds
Total time for training and validation: 366.4178 seconds

Best observed learner is an ensemble model with:
	Learner:              ensemble
	Method:                    Bag
	NumLearningCycles:         223
	MinLeafSize:                 5
Observed log(1 + valLoss): 2.8788
Time for training and validation: 3.2047 seconds

Best estimated learner (returned model) is an ensemble model with:
	Learner:              ensemble
	Method:                    Bag
	NumLearningCycles:         223
	MinLeafSize:                 5
Estimated log(1 + valLoss): 2.8778
Estimated time for training and validation: 3.6185 seconds

Documentation for fitrauto display

fitrauto によって返される最終的なモデルが、最適な推定学習器となります。モデルを返す前に、関数は学習データ全体 (XTrainYTrain)、リストされている Learner (またはモデル) のタイプ、および表示されたハイパーパラメーター値を使用して、モデルの再学習を行います。

テスト セットのパフォーマンスの評価

テスト セットに対するモデルのパフォーマンスを評価します。testError は、テスト セットの平均二乗誤差 (MSE) に基づきます。MSE の値が小さいほど、パフォーマンスが優れていることを示します。

testMSE = loss(Mdl,XTest,YTest);
testError = log(1 + testMSE)
testError = 2.6223

fitrauto を使用し、table に保存されている予測子データと応答データに基づいて、最適化されたハイパーパラメーターをもつ回帰モデルを自動的に選択します。得られた回帰モデルのパフォーマンスと、fitlm で作成された単純な線形回帰モデルのパフォーマンスを比較します。

データの読み込みと分割

carbig データ セットを読み込みます。このデータ セットには、1970 年代と 1980 年代初期に製造された自動車の測定値が格納されています。変数 Cylinderscategorical 変数に変換します。AccelerationCylindersDisplacement などの予測子変数と応答変数 MPG が格納された table を作成します。

load carbig
Cylinders = categorical(Cylinders);
cars = table(Acceleration,Cylinders,Displacement, ...
    Horsepower,Model_Year,Origin,Weight,MPG);

cars から table に欠損値がある行を削除します。

cars = rmmissing(cars);

米国製かどうかに基づいて、自動車を分類します。

cars.Origin = categorical(cellstr(cars.Origin));
cars.Origin = mergecats(cars.Origin,["France","Japan",...
    "Germany","Sweden","Italy","England"],"NotUSA");

データを学習セットとテスト セットに分割します。観測値の約 80% を学習に、観測値の約 20% をテストに使用します。cvpartition を使用してデータを分割します。

rng("default") % For reproducibility of the data partition
c = cvpartition(height(cars),"Holdout",0.2);
trainingIdx = training(c); % Training set indices
carsTrain = cars(trainingIdx,:);
testIdx = test(c); % Test set indices
carsTest = cars(testIdx,:);

fitrauto の実行

学習データを fitrauto に渡します。既定では、fitrauto は、試行する適切なモデルのタイプを決定し、ベイズ最適化を使用して適切なハイパーパラメーター値を求め、パフォーマンスが最大となることが期待される学習済みモデル autoMdl を返します。最適化可能なすべてのハイパーパラメーターを最適化し、最適化を並列実行するよう指定します (Parallel Computing Toolbox™ が必要)。

このプロセスにいくらか時間がかかることを見込んでください。既定の設定では、fitrauto は、最適化のプロット、および最適化の結果の反復表示を提供します。これらの結果を解釈する方法の詳細については、Verbose の表示を参照してください。

options = struct("UseParallel",true);
autoMdl = fitrauto(carsTrain,"MPG","OptimizeHyperparameters","all", ...
    "HyperparameterOptimizationOptions",options);
Starting parallel pool (parpool) using the 'Processes' profile ...
Connected to parallel pool with 6 workers.
Copying objective function to workers...
Done copying objective function to workers.
Learner types to explore: ensemble, svm, tree
Total iterations (MaxObjectiveEvaluations): 90
Total time (MaxTime): Inf

|==========================================================================================================================================================|
| Iter | Active  | Eval   | log(1+valLoss)| Time for training | Observed min    | Estimated min   | Learner      | Hyperparameter:                 Value   |
|      | workers | result |               | & validation (sec)| validation loss | validation loss |              |                                         |
|==========================================================================================================================================================|
|    1 |       6 | Best   |        4.1303 |            3.4475 |          4.1303 |          4.1303 |          svm | BoxConstraint:                0.0010671 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     19.242 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         44.847 |
|    2 |       6 | Best   |        3.1459 |            3.8766 |          3.1459 |          3.1459 |         tree | MinLeafSize:                          5 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                         2 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 3 |
|    3 |       6 | Accept |        4.1303 |            1.4169 |          3.1459 |          3.1459 |          svm | BoxConstraint:                  0.73976 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     2.7037 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         38.421 |
|    4 |       6 | Best   |        2.5639 |            1.2712 |          2.5639 |          2.7048 |         tree | MinLeafSize:                          9 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                       199 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 5 |
|    5 |       6 | Accept |        3.3002 |           0.33561 |          2.5639 |           2.564 |         tree | MinLeafSize:                         13 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                         1 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 4 |
|    6 |       6 | Accept |        4.1303 |           0.21087 |          2.5639 |           2.564 |          svm | BoxConstraint:                  0.01028 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                  0.0032203 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         36.299 |
|    7 |       6 | Accept |        2.5852 |           0.41237 |          2.5639 |           2.564 |         tree | MinLeafSize:                          2 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                       120 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 7 |
|    8 |       5 | Accept |        4.7998 |            13.852 |          2.5639 |           2.564 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | LearnRate:                    0.0042702 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         31 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:               NaN |
|    9 |       5 | Accept |        4.5891 |            11.084 |          2.5639 |           2.564 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | LearnRate:                    0.0051188 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         83 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:               NaN |
|   10 |       5 | Accept |        4.6825 |            11.581 |          2.5639 |           2.564 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | LearnRate:                    0.0045559 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          1 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:               NaN |
|   11 |       6 | Accept |        2.6585 |           0.63223 |          2.5639 |          2.5633 |         tree | MinLeafSize:                          5 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                        61 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 2 |
|   12 |       6 | Accept |        2.5733 |           0.69096 |          2.5639 |          2.5653 |         tree | MinLeafSize:                          5 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                        61 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 2 |
|   13 |       6 | Best   |        2.2945 |            9.4664 |          2.2945 |          2.2956 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | LearnRate:                          NaN |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          2 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 4 |
|   14 |       6 | Accept |        4.1303 |           0.23153 |          2.2945 |          2.2956 |          svm | BoxConstraint:                   27.717 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     21.172 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         390.93 |
|   15 |       6 | Accept |        2.6405 |            7.1727 |          2.2945 |          2.2988 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | LearnRate:                          NaN |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         45 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 6 |
|   16 |       5 | Accept |        2.3432 |            7.1757 |          2.2945 |          2.1873 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | LearnRate:                          NaN |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          1 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 3 |
|   17 |       5 | Accept |        2.8316 |           0.32852 |          2.2945 |          2.1873 |          svm | BoxConstraint:                 0.038615 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                    0.26266 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         5.8807 |
|   18 |       6 | Accept |        4.1551 |             6.261 |          2.2945 |          2.3249 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | LearnRate:                     0.014547 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                        145 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:               NaN |
|   19 |       6 | Accept |        2.3708 |             7.183 |          2.2945 |          2.3532 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | LearnRate:                          NaN |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         26 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 6 |
|   20 |       6 | Accept |        2.5191 |            7.6483 |          2.2945 |          2.3519 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | LearnRate:                       0.9913 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          4 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:               NaN |
|==========================================================================================================================================================|
| Iter | Active  | Eval   | log(1+valLoss)| Time for training | Observed min    | Estimated min   | Learner      | Hyperparameter:                 Value   |
|      | workers | result |               | & validation (sec)| validation loss | validation loss |              |                                         |
|==========================================================================================================================================================|
|   21 |       5 | Accept |        2.5191 |            7.4956 |          2.2945 |          2.2937 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | LearnRate:                       0.9913 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          4 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:               NaN |
|   22 |       5 | Accept |        3.1622 |            7.0091 |          2.2945 |          2.2937 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | LearnRate:                          NaN |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                        116 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 6 |
|   23 |       5 | Accept |        2.6846 |            0.2699 |          2.2945 |          2.2937 |         tree | MinLeafSize:                          1 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                       248 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 7 |
|   24 |       5 | Accept |        3.0009 |           0.13263 |          2.2945 |          2.2937 |         tree | MinLeafSize:                         30 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                        21 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 2 |
|   25 |       5 | Accept |        2.9014 |          0.056488 |          2.2945 |          2.2937 |         tree | MinLeafSize:                          2 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                         4 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 4 |
|   26 |       6 | Accept |        2.5073 |            4.9712 |          2.2945 |          2.2937 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | LearnRate:                          NaN |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         29 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 3 |
|   27 |       6 | Accept |        2.4723 |           0.42317 |          2.2945 |          2.2937 |         tree | MinLeafSize:                          9 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                       157 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 6 |
|   28 |       6 | Accept |        2.5015 |            4.7606 |          2.2945 |           2.294 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | LearnRate:                          NaN |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         11 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 1 |
|   29 |       6 | Accept |         2.499 |            5.0657 |          2.2945 |           2.294 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | LearnRate:                          NaN |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         11 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 1 |
|   30 |       6 | Accept |        4.1303 |           0.16935 |          2.2945 |           2.294 |          svm | BoxConstraint:                0.0011506 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     352.85 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         163.49 |
|   31 |       5 | Accept |        2.3265 |            6.3484 |          2.2945 |           2.294 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | LearnRate:                      0.11482 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         54 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:               NaN |
|   32 |       5 | Accept |        2.6676 |           0.14033 |          2.2945 |           2.294 |         tree | MinLeafSize:                          1 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                        12 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 4 |
|   33 |       4 | Accept |        2.6931 |            1.5523 |          2.2945 |           2.294 |          svm | BoxConstraint:                   8.3226 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     22.717 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         3.2417 |
|   34 |       4 | Accept |        3.3292 |          0.069533 |          2.2945 |           2.294 |         tree | MinLeafSize:                         72 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                       251 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 2 |
|   35 |       4 | Accept |        2.7867 |          0.070147 |          2.2945 |           2.294 |         tree | MinLeafSize:                          4 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                         5 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 6 |
|   36 |       4 | Accept |        4.1448 |           0.10004 |          2.2945 |           2.294 |          svm | BoxConstraint:                   1.8227 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                      977.3 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         2.0809 |
|   37 |       4 | Accept |        2.7305 |          0.071273 |          2.2945 |           2.294 |         tree | MinLeafSize:                          1 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                        31 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 4 |
|   38 |       6 | Best   |        2.1806 |           0.33042 |          2.1806 |          2.1808 |          svm | BoxConstraint:                   197.52 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     4.7757 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                       0.029282 |
|   39 |       6 | Accept |        2.1806 |           0.29825 |          2.1806 |          2.1807 |          svm | BoxConstraint:                   197.52 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     4.7757 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                       0.029282 |
|   40 |       5 | Accept |        2.1806 |            1.1365 |          2.1806 |          2.1807 |          svm | BoxConstraint:                   197.52 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     4.7757 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                       0.029282 |
|==========================================================================================================================================================|
| Iter | Active  | Eval   | log(1+valLoss)| Time for training | Observed min    | Estimated min   | Learner      | Hyperparameter:                 Value   |
|      | workers | result |               | & validation (sec)| validation loss | validation loss |              |                                         |
|==========================================================================================================================================================|
|   41 |       5 | Accept |        2.5404 |           0.11739 |          2.1806 |          2.1807 |         tree | MinLeafSize:                          2 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                       257 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 4 |
|   42 |       6 | Accept |        2.7214 |           0.12168 |          2.1806 |          2.1807 |         tree | MinLeafSize:                         13 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                       167 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 3 |
|   43 |       6 | Accept |        2.5848 |          0.060058 |          2.1806 |          2.1807 |         tree | MinLeafSize:                         17 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                        12 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 6 |
|   44 |       6 | Best   |        2.1759 |           0.11488 |          2.1759 |          2.1759 |          svm | BoxConstraint:                  0.19712 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     2.8803 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                        0.07079 |
|   45 |       6 | Accept |        4.1303 |          0.099786 |          2.1759 |          2.1758 |          svm | BoxConstraint:                   216.26 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                  0.0026892 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         19.364 |
|   46 |       6 | Accept |        3.2037 |            5.4636 |          2.1759 |          2.1758 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | LearnRate:                      0.96271 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                        116 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:               NaN |
|   47 |       6 | Accept |        4.1303 |           0.10162 |          2.1759 |          2.1759 |          svm | BoxConstraint:                0.0026925 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     7.0869 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         24.319 |
|   48 |       6 | Accept |        2.3346 |            6.1175 |          2.1759 |          2.1759 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | LearnRate:                          NaN |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         22 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 6 |
|   49 |       6 | Accept |        3.1417 |          0.056998 |          2.1759 |          2.1759 |         tree | MinLeafSize:                         17 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                         5 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 1 |
|   50 |       6 | Accept |        2.2905 |           0.15188 |          2.1759 |          2.1763 |          svm | BoxConstraint:                  0.43806 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     4.5798 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                       0.054809 |
|   51 |       6 | Accept |        4.1303 |          0.060906 |          2.1759 |          2.1766 |          svm | BoxConstraint:                0.0017279 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                    0.59584 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         49.918 |
|   52 |       6 | Accept |        2.2872 |            5.7381 |          2.1759 |          2.1766 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | LearnRate:                          NaN |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         13 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 4 |
|   53 |       6 | Accept |        3.0447 |          0.074364 |          2.1759 |          2.1766 |         tree | MinLeafSize:                         45 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                        13 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 4 |
|   54 |       6 | Accept |        4.1303 |          0.085215 |          2.1759 |          2.1766 |          svm | BoxConstraint:                   11.673 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                    0.43927 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         22.967 |
|   55 |       6 | Accept |        4.1303 |           0.09175 |          2.1759 |          2.1762 |          svm | BoxConstraint:                   2.5552 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                  0.0026113 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         997.73 |
|   56 |       6 | Accept |        4.1303 |          0.061439 |          2.1759 |          2.1768 |          svm | BoxConstraint:                 0.057299 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     55.001 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         715.72 |
|   57 |       6 | Accept |        2.2057 |            6.0594 |          2.1759 |          2.1768 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | LearnRate:                      0.22715 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          5 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:               NaN |
|   58 |       6 | Accept |        2.1825 |            5.5939 |          2.1759 |          2.1768 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | LearnRate:                      0.22153 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          1 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:               NaN |
|   59 |       6 | Accept |        4.1303 |          0.071138 |          2.1759 |          2.1768 |         tree | MinLeafSize:                        132 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                        17 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 1 |
|   60 |       6 | Accept |        4.1303 |          0.092724 |          2.1759 |          2.1763 |          svm | BoxConstraint:                   958.92 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                    0.70563 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         537.94 |
|==========================================================================================================================================================|
| Iter | Active  | Eval   | log(1+valLoss)| Time for training | Observed min    | Estimated min   | Learner      | Hyperparameter:                 Value   |
|      | workers | result |               | & validation (sec)| validation loss | validation loss |              |                                         |
|==========================================================================================================================================================|
|   61 |       5 | Accept |        5.2259 |             58.51 |          2.1759 |          2.1764 |          svm | BoxConstraint:                  0.95481 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                  0.0033698 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                       0.060804 |
|   62 |       5 | Accept |        16.058 |            44.447 |          2.1759 |          2.1764 |          svm | BoxConstraint:                  0.87942 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                   0.042698 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         4.1252 |
|   63 |       5 | Accept |        2.8565 |          0.076866 |          2.1759 |          2.1764 |         tree | MinLeafSize:                          9 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                        44 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 2 |
|   64 |       6 | Accept |        2.1905 |            6.0033 |          2.1759 |          2.1764 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | LearnRate:                     0.086539 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          1 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:               NaN |
|   65 |       6 | Accept |        4.1435 |           0.41502 |          2.1759 |           2.176 |          svm | BoxConstraint:                0.0014713 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     24.291 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                      0.0080531 |
|   66 |       6 | Accept |        4.1303 |           0.06148 |          2.1759 |           2.176 |          svm | BoxConstraint:                   1004.8 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     1.0362 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         57.277 |
|   67 |       6 | Accept |        2.2057 |            6.1759 |          2.1759 |           2.176 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | LearnRate:                     0.065318 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          1 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:               NaN |
|   68 |       6 | Accept |        2.6213 |             1.631 |          2.1759 |           2.176 |         tree | MinLeafSize:                          2 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                        41 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 5 |
|   69 |       6 | Accept |         2.195 |            6.4848 |          2.1759 |           2.176 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | LearnRate:                     0.064514 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          1 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:               NaN |
|   70 |       5 | Best   |        2.1681 |            5.6457 |          2.1681 |          2.1644 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | LearnRate:                       0.1184 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          4 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:               NaN |
|   71 |       5 | Accept |        2.1814 |           0.33738 |          2.1681 |          2.1644 |          svm | BoxConstraint:                   1066.5 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     21.451 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         1.5466 |
|   72 |       6 | Accept |         6.622 |            32.752 |          2.1681 |          2.1644 |          svm | BoxConstraint:                   154.74 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                    0.43817 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                       0.069304 |
|   73 |       6 | Accept |        2.1846 |            5.7951 |          2.1681 |          2.1682 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | LearnRate:                      0.10013 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          6 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:               NaN |
|   74 |       6 | Best   |        2.1674 |            5.5415 |          2.1674 |          2.1681 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | LearnRate:                     0.095942 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          6 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:               NaN |
|   75 |       6 | Accept |        2.2257 |            5.8925 |          2.1674 |          2.1657 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | LearnRate:                     0.082236 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          7 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:               NaN |
|   76 |       6 | Accept |        2.6476 |           0.17979 |          2.1674 |          2.1657 |         tree | MinLeafSize:                         28 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                       129 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 7 |
|   77 |       6 | Accept |        4.1303 |           0.20025 |          2.1674 |          2.1657 |          svm | BoxConstraint:                   88.122 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                 0.00080559 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         80.763 |
|   78 |       6 | Accept |        2.4686 |           0.08985 |          2.1674 |          2.1657 |         tree | MinLeafSize:                         11 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                       185 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 6 |
|   79 |       6 | Accept |        6.0666 |            8.1575 |          2.1674 |          2.1655 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | LearnRate:                   0.00091284 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          1 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:               NaN |
|   80 |       6 | Accept |        3.2165 |          0.056294 |          2.1674 |          2.1655 |         tree | MinLeafSize:                         14 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                         6 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 1 |
|==========================================================================================================================================================|
| Iter | Active  | Eval   | log(1+valLoss)| Time for training | Observed min    | Estimated min   | Learner      | Hyperparameter:                 Value   |
|      | workers | result |               | & validation (sec)| validation loss | validation loss |              |                                         |
|==========================================================================================================================================================|
|   81 |       6 | Accept |         2.245 |            7.6163 |          2.1674 |          2.1655 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | LearnRate:                          NaN |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                          1 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 7 |
|   82 |       6 | Accept |        3.0936 |            5.5248 |          2.1674 |          2.1687 |     ensemble | Method:                         LSBoost |
|      |         |        |               |                   |                 |                 |              | LearnRate:                     0.011017 |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         76 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:               NaN |
|   83 |       6 | Accept |        4.5354 |            11.561 |          2.1674 |          2.1687 |          svm | BoxConstraint:                 0.022073 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                  0.0034124 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                         2.9088 |
|   84 |       6 | Accept |        3.0342 |          0.062138 |          2.1674 |          2.1687 |         tree | MinLeafSize:                         19 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                         3 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 5 |
|   85 |       6 | Accept |          4.13 |            4.1837 |          2.1674 |          2.1673 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | LearnRate:                          NaN |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                        174 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 5 |
|   86 |       5 | Accept |        2.8788 |            4.5181 |          2.1674 |          2.1673 |     ensemble | Method:                             Bag |
|      |         |        |               |                   |                 |                 |              | LearnRate:                          NaN |
|      |         |        |               |                   |                 |                 |              | MinLeafSize:                         63 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 3 |
|   87 |       5 | Accept |        3.2232 |          0.083182 |          2.1674 |          2.1673 |         tree | MinLeafSize:                         66 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                        75 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 4 |
|   88 |       6 | Accept |        2.7458 |          0.062397 |          2.1674 |          2.1673 |         tree | MinLeafSize:                         27 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                         9 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 5 |
|   89 |       6 | Accept |        4.1483 |          0.084711 |          2.1674 |          2.1673 |          svm | BoxConstraint:                  0.10441 |
|      |         |        |               |                   |                 |                 |              | KernelScale:                     1191.6 |
|      |         |        |               |                   |                 |                 |              | Epsilon:                        0.80681 |
|   90 |       6 | Accept |        2.5444 |          0.063012 |          2.1674 |          2.1673 |         tree | MinLeafSize:                         17 |
|      |         |        |               |                   |                 |                 |              | MaxNumSplits:                        81 |
|      |         |        |               |                   |                 |                 |              | NumVariablesToSample:                 6 |

Figure contains an axes object. The axes object with title Optimization Progress, xlabel Iteration, ylabel log(1 + valLoss) contains 2 objects of type line. These objects represent Observed min, Estimated min.

__________________________________________________________
Optimization completed.
Total iterations: 90
Total elapsed time: 94.9921 seconds
Total time for training and validation: 387.2946 seconds

Best observed learner is an ensemble model with:
	Learner:              ensemble
	Method:                LSBoost
	LearnRate:            0.095942
	MinLeafSize:                 6
	NumVariablesToSample:      NaN
Observed log(1 + valLoss): 2.1674
Time for training and validation: 5.5415 seconds

Best estimated learner (returned model) is an ensemble model with:
	Learner:              ensemble
	Method:                LSBoost
	LearnRate:              0.1184
	MinLeafSize:                 4
	NumVariablesToSample:      NaN
Estimated log(1 + valLoss): 2.1673
Estimated time for training and validation: 5.6503 seconds

Documentation for fitrauto display

fitrauto によって返される最終的なモデルが、最適な推定学習器となります。モデルを返す前に、関数は学習データ全体 (carsTrain)、リストされている Learner (またはモデル) のタイプ、および表示されたハイパーパラメーター値を使用して、モデルの再学習を行います。

単純なモデルの作成

関数 fitlm を使用して、単純な線形回帰モデル linearMdl を作成します。

linearMdl = fitlm(carsTrain);

linearMdl オブジェクトは autoMdl オブジェクトと厳密に同一のプロパティとメソッドをもつわけではありませんが、オブジェクト関数 predict を使った新しいデータの応答値の予測に、両方のモデルを使用できます。

モデルのテスト セットのパフォーマンスの比較

テスト データ セットに対する linearMdl モデルと autoMdl モデルのパフォーマンスを比較します。各モデルについて、テスト セットの平均二乗誤差 (MSE) を計算します。MSE の値が小さいほど、パフォーマンスが優れていることを示します。

ypred = predict(linearMdl,carsTest);
linearMSE = mean((carsTest.MPG-ypred).^2,"omitnan")
linearMSE = 10.0558
autoMSE = loss(autoMdl,carsTest,"MPG")
autoMSE = 6.9868

autoMdl モデルは linearMdl モデルよりも性能が高いと考えられます。

入力引数

すべて折りたたむ

標本データ。テーブルとして指定します。Tbl の各行は 1 つの観測値に、各列は 1 つの予測子に対応します。オプションとして、Tbl に応答変数用の列を 1 つ追加できます。文字ベクトルの cell 配列ではない cell 配列と複数列の変数は使用できません。

Tbl に応答変数が含まれている場合に Tbl 内の他の変数をすべて予測子として使用するには、ResponseVarName を使用して応答変数を指定します。

Tbl に応答変数が含まれている場合に Tbl 内の他の変数の一部のみを予測子として使用するには、formula を使用して式を指定します。

Tbl に応答変数が含まれていない場合は、Y を使用して応答変数を指定します。応答変数の長さと Tbl の行数は等しくなければなりません。

データ型: table

応答変数の名前。Tbl 内の変数の名前で指定します。応答変数は、数値ベクトルでなければなりません。

ResponseVarName には文字ベクトルまたは string スカラーを指定しなければなりません。たとえば、応答変数 YTbl.Y として格納されている場合、"Y" として指定します。それ以外の場合、モデルに学習させるときに、Tbl の列は Y を含めてすべて予測子として扱われます。

データ型: char | string

応答変数および予測子変数サブセットの説明モデル。"Y~x1+x2+x3" という形式の文字ベクトルまたは string スカラーを指定します。この形式では、Y は応答変数を、x1x2 および x3 は予測子変数を表します。

モデルに学習をさせるための予測子として Tbl 内の変数のサブセットを指定するには、式を使用します。式を指定した場合、formula に現れない Tbl 内の変数は使用されません。

式の変数名は Tbl の変数名 (Tbl.Properties.VariableNames) であり、有効な MATLAB® 識別子でなければなりません。関数 isvarname を使用して Tbl の変数名を検証できます。変数名が有効でない場合、関数 matlab.lang.makeValidName を使用してそれらを変換できます。

データ型: char | string

応答データ。数値ベクトルとして指定します。Y の長さは Tbl または X の行数と等しくなければなりません。

応答変数名を指定するには、名前と値の引数 ResponseName を使用します。

データ型: single | double

予測子データ。数値行列として指定します。

X の各行は 1 つの観測値に、各列は 1 つの予測子に対応します。

Y の長さと X の行数は等しくなければなりません。

予測子の名前を X に表示される順序で指定するには、名前と値の引数 PredictorNames を使用します。

データ型: single | double

メモ

NaN、空の文字ベクトル ('')、空の string ("")、<missing> および <undefined> 要素は欠損データとして扱われます。応答変数の欠損値に対応するデータの行は削除されます。ただし、予測子データ X または Tbl の欠損値の処理は、モデル (学習器) によって異なります。

名前と値の引数

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

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

例: "HyperparameterOptimizationOptions",struct("MaxObjectiveEvaluations",200,"Verbose",2) は、最適化プロセスを 200 回反復する (つまり、モデル ハイパーパラメーターの組み合わせを 200 通り試す) よう指定し、次に評価するモデル ハイパーパラメーターの組み合わせに関する情報をコマンド ウィンドウに表示します。

オプティマイザーのオプション

すべて折りたたむ

最適化で試行する回帰モデルのタイプ。以下の最初の表に示す値、または 2 番目の表に示す 1 つ以上の学習器の名前として指定します。複数の学習器の名前を string または cell 配列として指定します。

説明
"auto"

fitrauto は、指定された予測子データと応答データに適した学習器のサブセットを自動的に選択します。この学習器は、既定とは異なるモデル ハイパーパラメーター値をもつ場合があります。詳細は、学習器の自動選択を参照してください。

メモ

ハイパーパラメーターの最適化で最良の結果を提供できるように、学習器の自動選択の動作は頻繁に変更される可能性があります。ソフトウェアのリリース間で学習器の選択の一貫性を高めるには、含めるモデルを明示的に指定してください。

"all"fitrauto は、使用可能なすべての学習器を選択します。
"all-linear"fitrauto は、線形 ("linear") 学習器を選択します。
"all-nonlinear"fitrauto は、次のすべての非線形学習器を選択します。"ensemble""gp""kernel""net""svm" (ガウス カーネルまたは多項式カーネル)、および "tree"

メモ

効率を高めるため、以前の値のいずれかを指定した場合、fitrauto で次のモデルの組み合わせは選択されません。

  • "kernel""svm" (ガウス カーネル) — fitrauto は予測子データの観測値数が 11,000 を超える場合は 1 つ目を選択し、それ以外の場合は 2 つ目を選択します。

  • "linear""svm" (線形カーネル) — fitrauto は 1 つ目を選択します。

学習器名説明
"ensemble"アンサンブル回帰モデル
"gp"ガウス過程回帰モデル
"kernel"カーネル回帰モデル
"linear"高次元データ用の線形回帰モデル
"net"ニューラル ネットワーク回帰モデル
"svm"サポート ベクター マシン回帰モデル
"tree"二分決定回帰木

例: "Learners","all"

例: "Learners","ensemble"

例: "Learners",["gp","svm"]

最適化するハイパーパラメーター。"auto" または "all" として指定します。最適化可能なハイパーパラメーターは、次の表で説明されているように、モデル (学習器) によって異なります。

学習器名"auto" の場合のハイパーパラメーター"all" の場合の追加ハイパーパラメーターメモ:
"ensemble"Method, NumLearningCycles, LearnRate, MinLeafSizeMaxNumSplits, NumVariablesToSample

アンサンブルの Method の値がブースティング法の場合、アンサンブルの NumBins の値は 50 になります。

ハイパーパラメーターの検索範囲などの詳細については、OptimizeHyperparameters を参照してください。fitrauto を使用する場合、ハイパーパラメーターの検索範囲を変更できないことに注意してください。

"gp"Sigma, StandardizeBasisFunction, KernelFunction, KernelScale (KernelParameters)
  • OptimizeHyperparameters の値が "all" の場合、データ セットが次の特性の少なくとも 1 つに当てはまれば、関数 fitrauto はすべての ARD カーネル オプションを無視します。

    • 観測値の数が 10,000 を超える。

    • カテゴリカル予測子の拡張後の予測子の数が 32 を超える (ダミー変数の自動作成を参照)。

    つまり、関数は "exponential""matern32""matern52""rationalquadratic"、および "squaredexponential" のいずれかの KernelFunction の値を選択します。

  • GPR モデルの KernelFunction の値が ARD カーネル オプションの場合、fitrauto は、それらの GPR の許容誤差と初期ステップ サイズの値を使用してモデルに学習させます。

    • OptimizerOptions の値は次の options 構造体と一致します。

      options = statset("fitrgp");
      options.MaxIter = 1000;
      options.TolFun = 1e-3;
      options.TolX = 1e-3;

    • InitialStepSize の値は "auto" です。

ハイパーパラメーターの検索範囲などの詳細については、OptimizeHyperparameters を参照してください。fitrauto を使用する場合、ハイパーパラメーターの検索範囲を変更できないことに注意してください。

"kernel"Epsilon, KernelScale, Lambda, StandardizeLearner, NumExpansionDimensionsハイパーパラメーターの検索範囲などの詳細については、OptimizeHyperparameters を参照してください。fitrauto を使用する場合、ハイパーパラメーターの検索範囲を変更できないことに注意してください。
"linear"Lambda, LearnerRegularizationハイパーパラメーターの検索範囲などの詳細については、OptimizeHyperparameters を参照してください。fitrauto を使用する場合、ハイパーパラメーターの検索範囲を変更できないことに注意してください。
"net"Activations, Lambda, LayerSizes, StandardizeLayerBiasesInitializer, LayerWeightsInitializerハイパーパラメーターの検索範囲などの詳細については、OptimizeHyperparameters を参照してください。fitrauto を使用する場合、ハイパーパラメーターの検索範囲を変更できないことに注意してください。
"svm"BoxConstraint, Epsilon, KernelScale, StandardizeKernelFunction, PolynomialOrder

Learners の値が "all-nonlinear" の場合、関数 fitrauto は、OptimizeHyperparameters の値にかかわらず、KernelFunction のいずれかの値 ("gaussian" および "polynomial") を選択します。

ハイパーパラメーターの検索範囲などの詳細については、OptimizeHyperparameters を参照してください。fitrauto を使用する場合、ハイパーパラメーターの検索範囲を変更できないことに注意してください。

"tree"MinLeafSizeMaxNumSplitsハイパーパラメーターの検索範囲などの詳細については、OptimizeHyperparameters を参照してください。fitrauto を使用する場合、ハイパーパラメーターの検索範囲を変更できないことに注意してください。

メモ

Learners"auto" 以外の値に設定されている場合、最適化されないモデル ハイパーパラメーターの既定値は、表のメモで示されていない限り、既定の近似関数の値と一致します。Learners"auto" に設定されている場合、最適化されたハイパーパラメーターの検索範囲と最適化されていないハイパーパラメーターの値は、学習データの特性によって異なる場合があります。詳細は、学習器の自動選択を参照してください。

例: "OptimizeHyperparameters","all"

最適化のオプション。構造体として指定します。この構造体のフィールドは、すべてオプションです。

フィールド名既定の設定
Optimizer
  • "bayesopt" — ベイズ最適化を使用。詳細は、ベイズ最適化を参照してください。

  • "asha" — ASHA 最適化を使用。詳細については、ASHA 最適化を参照してください。

"bayesopt"
MaxObjectiveEvaluations最大反復回数 (目的関数評価)。正の整数として指定されます。

30*LL は学習器の数 (Learners を参照)

  • この値は、Optimizer フィールドが "bayesopt" に設定されている場合の既定値です。

  • Optimizer フィールドが "asha" に設定されている場合の既定値は、ASHA の反復回数を参照してください。

MaxTime

制限時間。正の実数として指定します。制限時間の単位は、tictoc によって測定される秒です。MaxTime は関数評価を中断させないため、実行時間が MaxTime を超える可能性があります。

Inf
ShowPlots最適化の進行状況プロットを表示するかどうかを示す logical 値。true の場合、観測された最小検証損失が反復回数に対してプロットされます。ベイズ最適化を使用している場合、推定された最小検証損失もプロットに表示されます。true
SaveIntermediateResults結果を保存するかどうかを示す logical 値。true の場合、ワークスペース変数が反復ごとに上書きされます。この変数は、ベイズ最適化を使用している場合は BayesoptResults という名前の BayesianOptimization オブジェクトで、ASHA 最適化を使用している場合は ASHAResults という名前の table です。false
Verbose

コマンド ラインに次を表示します。

  • 0 — 反復表示なし

  • 1 — 反復表示あり

  • 2 — 反復表示、および次に評価する点に関する追加情報

1
UseParallel最適化を並列実行するかどうかを示す logical 値。並列実行には Parallel Computing Toolbox™ が必要です。並列でのタイミングに再現性がないため、並列最適化で再現性のある結果が生成されるとは限りません。false
Repartition

反復ごとに交差検証を再分割するかどうかを示す論理値。false の場合、オプティマイザーは単一の分割を最適化に使用します。

分割ノイズが考慮されるので、通常は true にすると最も確実な結果が得られます。ただし、true で良好な結果を得るには、2 倍以上の関数評価が必要になります。

false
MaxTrainingSetSize

ASHA 最適化に対する各学習セットでの観測値の最大数。正の整数を指定します。この値は最大の学習セット サイズと一致します。

メモ

この値を指定する場合、Optimizer フィールドは "asha" に設定しなければなりません。

使用可能な最大学習分割サイズ

  • 最適化が k 分割交差検証を使用する場合、この値は (k – 1)*n/k です。ここで、n は観測の合計数です。

  • 最適化が cvpartition オブジェクト cvp を使用する場合、この値は max(cvp.TrainSize) です。

  • 最適化がホールドアウトの比率 p を使用する場合、この値は (1 – p)*n です。ここで n は、観測の合計数です。

MinTrainingSetSize

ASHA 最適化に対する各学習セットでの観測値の最小数。正の整数を指定します。この値は最小の学習セット サイズの下限です。

メモ

この値を指定する場合、Optimizer フィールドは "asha" に設定しなければなりません。

100
次の 3 つのオプションのいずれか 1 つのみを指定してください。
CVPartitioncvpartition によって作成された cvpartition オブジェクト交差検証フィールドが指定されていない場合 "Kfold",5
Holdoutホールドアウトの比率を表す範囲 (0,1) のスカラー
Kfold1 より大きい整数

例: "HyperparameterOptimizationOptions",struct("UseParallel",true)

回帰のオプション

すべて折りたたむ

カテゴリカル予測子のリスト。次の表のいずれかの値として指定します。

説明
正の整数のベクトル

ベクトルの各エントリは、対応する予測子がカテゴリカルであることを示すインデックス値です。インデックス値の範囲は 1 ~ p です。p はモデルの学習に使用した予測子の数です。

fitrauto が入力変数のサブセットを予測子として使用する場合、関数はサブセットのみを使用して予測子にインデックスを作成します。応答変数、観測値の重みの変数、および関数で使用されないその他の変数は、CategoricalPredictors 値でカウントされません。

logical ベクトル

true というエントリは、対応する予測子がカテゴリカルであることを意味します。ベクトルの長さは p です。

文字行列行列の各行は予測子変数の名前です。名前は PredictorNames のエントリに一致しなくてはなりません。文字行列の各行が同じ長さになるように、名前を余分な空白で埋めてください。
文字ベクトルの cell 配列または string 配列配列の各要素は予測子変数の名前です。名前は PredictorNames のエントリに一致しなくてはなりません。
"all"すべての予測子がカテゴリカルです。

既定では、予測子データがテーブル (Tbl) 内にある場合、fitrauto は、その変数が logical ベクトル、categorical ベクトル、文字配列、string 配列または文字ベクトルの cell 配列のいずれかである場合に、変数を categorical であると見なします。ただし、決定木を使用する学習器は、数学的に順序付けされた categorical ベクトルを連続変数と仮定します。予測子データが行列 (X) である場合、fitrauto はすべての予測子が連続的であると見なします。他の予測子をカテゴリカル予測子として指定するには、名前と値の引数 CategoricalPredictors を使用してそれらを指定します。

近似関数がカテゴリカル予測子を扱う方法の詳細については、ダミー変数の自動作成を参照してください。

例: "CategoricalPredictors","all"

データ型: single | double | logical | char | string | cell

予測子変数名。一意な名前の string 配列または一意な文字ベクトルの cell 配列として指定します。PredictorNames の機能は、学習データの提供方法によって決まります。

  • XY を指定した場合、PredictorNames を使用して X 内の予測子変数に名前を割り当てることができます。

    • PredictorNames 内の名前の順序は、X の列の順序に一致しなければなりません。つまり、PredictorNames{1}X(:,1) の名前、PredictorNames{2}X(:,2) の名前であり、他も同様です。また、size(X,2)numel(PredictorNames) は等しくなければなりません。

    • 既定では PredictorNames{'x1','x2',...} です。

  • Tbl を指定する場合、PredictorNames を使用して学習に使用する予測子変数を選択できます。つまり、fitrauto は、学習中に PredictorNames の予測子変数と応答変数のみを使用します。

    • PredictorNamesTbl.Properties.VariableNames のサブセットでなければならず、応答変数の名前を含めることはできません。

    • 既定では、すべての予測子変数の名前が PredictorNames に格納されます。

    • PredictorNamesformula の両方ではなく、いずれか一方を使用して学習用の予測子を指定することをお勧めします。

例: "PredictorNames",["SepalLength","SepalWidth","PetalLength","PetalWidth"]

データ型: string | cell

応答変数名。文字ベクトルまたは string スカラーとして指定します。

  • Y を指定した場合、ResponseName を使用して応答変数の名前を指定できます。

  • ResponseVarName または formula を指定した場合、ResponseName を使用できません。

例: "ResponseName","response"

データ型: char | string

観測値の重み。正の数値ベクトルまたは Tbl 内の変数の名前を指定します。ソフトウェアは、X または Tbl の各観測値に、Weights の対応する値で重みを付けます。Weights の長さは、X または Tbl の行数と等しくなければなりません。

入力データをテーブル Tbl として指定した場合、Weights は数値ベクトルが含まれている Tbl 内の変数の名前にすることができます。この場合、Weights には文字ベクトルまたは string スカラーを指定しなければなりません。たとえば、重みベクトル WTbl.W として格納されている場合、"W" として指定します。それ以外の場合、モデルに学習をさせるときに、Tbl の列は W を含めてすべて予測子または応答変数として扱われます。

fitrauto は、ガウス過程回帰モデルの観測値の重みを無視します。つまり、Learners"gp" モデルが含まれている場合、関数はそれらのモデルの名前と値の引数 Weights を無視します。

既定の設定では、Weightsones(n,1) です。nX または Tbl の観測値数です。

ソフトウェアは、合計が 1 になるように Weights を正規化します。

データ型: single | double | char | string

出力引数

すべて折りたたむ

学習済みの回帰モデル。次の表の回帰モデル オブジェクトのいずれかとして返されます。

学習器名返されるモデル オブジェクト
"ensemble"CompactRegressionEnsemble
"gp"CompactRegressionGP
"kernel"RegressionKernel
"linear"RegressionLinear
"net"CompactRegressionNeuralNetwork
"svm"CompactRegressionSVM
"tree"CompactRegressionTree

最適化の結果。ベイズ最適化を使用している場合は BayesianOptimization オブジェクトとして、ASHA 最適化を使用している場合は table として返されます。詳細については、ベイズ最適化ASHA 最適化を参照してください。

詳細

すべて折りたたむ

Verbose の表示

名前と値の引数 HyperparameterOptimizationOptionsVerbose フィールドを 1 または 2 に設定した場合、関数 fitrauto は最適化の結果の反復表示を提供します。

次の表では、表示される列とそのエントリについて説明します。

列名説明
Iter反復回数 — 名前と値の引数 HyperparameterOptimizationOptionsMaxObjectiveEvaluations フィールドを使用することで、反復回数の制限を設定できます。
Active workersアクティブな並列ワーカーの数 — この列は、名前と値の引数 HyperparameterOptimizationOptionsUseParallel フィールドを true に設定することにより、最適化を並列実行した場合にのみ表示されます。
Eval result

評価結果は以下のいずれかになります。

  • Best — この反復における学習器およびハイパーパラメーターの値は、それまでの計算で観測された最小の検証損失を与えます。つまり、log(1 + valLoss) 値は、それまでの計算における最小値です。

  • Accept — この反復における学習器およびハイパーパラメーターの値は、有意な (たとえば、非 NaN) 検証損失値を与えます。

  • Error — この反復における学習器およびハイパーパラメーターの値は、エラーとなります (たとえば、NaNlog(1 + valLoss) 値)。

log(1 + valLoss)この反復における学習器およびハイパーパラメーターの値について計算された、対数変換された検証損失。具体的には、fitrautolog(1 + valLoss) を計算します。ここで valLoss は、既定の設定では、交差検証平均二乗誤差 (MSE) です。名前と値の引数 'HyperparameterOptimizationOptions'CVPartitionHoldoutKfold のいずれかのフィールドを使用することにより、検証方式を変更できます。
Time for training & validation (sec)この反復における学習器およびハイパーパラメーターの値を使用して、モデルの検証損失の学習と計算を行うのにかかった時間 (秒単位)。ベイズ最適化を使用している場合、この値にベイズ最適化プロセスによって維持された目的関数モデルの更新に必要な時間は含まれません。詳細は、ベイズ最適化を参照してください。
Observed min log(1 + valLoss)

それまでの計算により観測された最小の対数変換済み検証損失。この値は、最適化プロセスでそれまでに計算された最小の log(1 + valLoss) 値に対応します。

既定の設定では、fitrauto は、観測された最小の対数変換済み検証損失値を濃い青色の点で表示する、最適化のプロットを返します。このプロットは、名前と値の引数 HyperparameterOptimizationOptionsShowPlots フィールドが false に設定されている場合は表示されません。

Estimated min log(1 + valLoss)

推定された最小の対数変換済み検証損失。ベイズ最適化を使用している場合、各反復において、fitrauto は、ベイズ最適化プロセスによって維持された目的関数モデルを更新し、このモデルを使用して最小の対数変換済み検証損失を推定します。ベイズ最適化プロセスで生成される推定値には負の値が含まれる場合があることに注意してください。詳細は、ベイズ最適化を参照してください。

既定の設定では、fitrauto は、推定された最小の対数変換済み検証損失値を薄い青点の点で表示する、最適化のプロットを返します。このプロットは、名前と値の引数 HyperparameterOptimizationOptionsShowPlots フィールドが false に設定されている場合は表示されません。

メモ

この列は、ベイズ最適化を使用している場合、すなわち名前と値の引数 HyperparameterOptimizationOptionsOptimizer フィールドが "bayesopt" に設定されている場合のみ表示されます。

Training set size

この反復における各学習セットに使用される観測値の数。名前と値の引数 HyperparameterOptimizationOptionsMaxTrainingSetSize および MinTrainingSetSize フィールドを使用して、学習セット サイズの範囲を指定します。詳細については、ASHA 最適化を参照してください。

メモ

この列は、ASHA 最適化を使用している場合、すなわち名前と値の引数 HyperparameterOptimizationOptionsOptimizer フィールドが "asha" に設定されている場合のみ表示されます。

Learnerこの反復において評価されたモデル型。名前と値の引数 Learners を使用して、最適化で使用される学習器を指定します。
Hyperparameter: Valueこの反復におけるハイパーパラメーターの値。名前と値の引数 OptimizeHyperparameters を使用して、最適化で使用されるハイパーパラメーターを指定します。

次のモデルについての説明も表示されます。

  • Best observed learner — 学習器タイプとハイパーパラメーターの値がリストされたこのモデルからは、観測された最終的な最小検証損失 (対数変換済み) が得られます。(詳細については、前の表の Observed min log(1 + valLoss) の説明を参照してください。) ASHA 最適化を使用している場合、fitrauto は、学習データ セット全体でモデルの再学習を行い、そのモデルを Mdl 出力として返します。

  • Best estimated learner — ベイズ最適化を使用している場合、学習器タイプとハイパーパラメーターの値がリストされたこのモデルからは、推定された最終的な最小検証損失 (対数変換済み) が得られます。(詳細については、前の表の Estimated min log(1 + valLoss) の説明を参照してください。) この場合、fitrauto は、学習データ セット全体でモデルの再学習を行い、そのモデルを Mdl 出力として返します。

    メモ

    Best estimated learner モデルは、ベイズ最適化を使用している場合、すなわち名前と値の引数 HyperparameterOptimizationOptionsOptimizer フィールドが "bayesopt" に設定されている場合のみ表示されます。

ヒント

  • データ セットのサイズ、指定した学習器の数、および選択した最適化手法によっては、fitrauto の処理に時間がかかる場合があります。

    • Parallel Computing Toolbox のライセンスがある場合、最適化を並列実行して計算を高速化することができます。これを行うには、"HyperparameterOptimizationOptions",struct("UseParallel",true) を指定します。この構造体に追加フィールドを含めて、その他の最適化の側面を制御できます。HyperparameterOptimizationOptions を参照してください。

    • 学習セットの観測値の数が原因 (たとえば 10,000 を超える場合) でベイズ最適化による fitrauto の実行に長い時間がかかる場合は、代わりに ASHA 最適化による fitrauto を使用することを検討してください。データ セットの観測値が多いと、多くの場合、ベイズ最適化よりも ASHA 最適化の方が優れた解を速く見つけます。ASHA 最適化を使用するには、"HyperparameterOptimizationOptions",struct("Optimizer","asha") を指定します。この構造体に追加フィールドを含めて、追加の最適化の側面を制御できます。特に、時間の制約がある場合は、HyperparameterOptimizationOptions 構造体の MaxTime フィールドを指定して、fitrauto を実行する秒数を制限します。

アルゴリズム

すべて折りたたむ

学習器の自動選択

"Learners","auto" を指定した場合、関数 fitrauto は、予測子データと応答データを分析して適切な学習器を選択します。この関数は、データ セットに以下の特性が含まれているかどうかを考慮します。

  • カテゴリカル予測子

  • データの 5% を超える欠損値

  • ワイド データ (予測子の数が観測値の数以上である)

  • 高次元データ (予測子の数が 100 を超える)

  • 大規模データ (観測値の数が 50,000 を超える)

選択される学習器は常に、Learners の表にリストされている学習器のサブセットになります。ただし、最適化プロセスで試行された関連モデルでは、最適化されていないハイパーパラメーターの既定値や最適化されたハイパーパラメーターの検索範囲が異なる可能性があります。

ベイズ最適化

ベイズ最適化 (一般に、最適化) の目的は、目的関数を最小化する点を見つけることです。fitrauto のコンテキストにおいて、点は学習器のタイプとその学習器の一連のハイパーパラメーター値の組み合わせであり (LearnersOptimizeHyperparameters を参照)、目的関数は log(1 + valLoss) です。ここで、valLoss は、既定では、交差検証の平均二乗誤差 (MSE) です。fitrauto で実装されるベイズ最適化は、目的関数の複数の RegressionGP モデルを内部に保持します。つまり、目的関数モデルは学習器のタイプごとに分割され、与えらえれた学習器に対して、このモデルはガウス過程回帰 (GPR) モデルになります (基となるこのモデルは、ベイズ最適化を使用する Statistics and Machine Learning Toolbox™ の他の関数で採用されている single GPR モデルとは異なります)。ベイズ最適化は、目的関数の評価を使用して基となるモデルに学習させ、獲得関数 ("expected-improvement") を使用して次に評価する点を決定します。詳細は、期待改善量を参照してください。この獲得関数は、モデル化された目的関数値が低い点での抽出と、まだ十分にはモデル化されていない領域の探索との間でバランスをとります。最適化の終わりに、fitrauto は、最適化中に評価された点の中から、目的関数のモデルの値が最小となった点を選択します。詳細については、bestPoint の名前と値の引数 "Criterion","min-visited-mean" を参照してください。

ASHA 最適化

fitrauto の非同期連続半減アルゴリズム (ASHA) は、さまざまなハイパーパラメーターの値 (Learners および OptimizeHyperparameters を参照) をもつ複数のモデルを無作為に選択し、学習データの小さいサブセットで学習させます。特定のモデルのパフォーマンスが有望な場合、そのモデルをプロモートし、より多くの学習データで学習させます。このプロセスを繰り返し、データの量を徐々に増やしながら有望なモデルに学習させます。既定では、最適化の終わりに、fitrautolog(1 + valLoss) の値が最小になるモデルを選択します。ここで valLoss は交差検証平均二乗誤差 (MSE) です。

各反復で ASHA は、以前に学習させたモデルを選択してプロモートする (つまり、より多くの学習データを使用してモデルに再学習させる) か、ランダム探索を使用して新しいモデル (学習器タイプおよびハイパーパラメーター値) を選択します。ASHA は次のようにモデルをプロモートします。

  • アルゴリズムは、条件 (floor(g/4) 個のモデルがプロモートされている。ここで g はグループ中のモデルの数) を満たしていない最大の学習セット サイズをもつモデルのグループを検索します。

  • モデルのグループの中から、ASHA は最小の log(1 + valLoss) の値をもつモデルを選択し、4*(Training Set Size) 個の観測値でこのモデルに再学習させます。

  • そのようなモデルのグループが存在しない場合、ASHA は古いモデルをプロモートする代わりに新しいモデルを選択し、最小の学習セット サイズを使用してこの新しいモデルに学習させます。

モデルが学習データのサブセットで学習している場合、ASHA は次のように交差検証の MSE を計算します。

  • 各学習分割において、アルゴリズムは非層化サンプリングを使用して、観測値 (サイズ Training set size) の無作為標本を選択し、このデータのサブセットでモデルに学習させます。

  • 次にアルゴリズムは、当てはめられたモデルについてテスト分割 (つまり、学習分割に含まれない観測値) でテストを実行し、MSE を計算します。

  • 最後に、分割全体で結果を平均化します。

ASHA の詳細については、[1]を参照してください。

ASHA の反復回数

ASHA 最適化を使用する場合、既定の反復回数は、データ中の観測値の数、学習器タイプの数、並列処理の使用、および交差検証のタイプに依存します。アルゴリズムは、L 個の学習器タイプ (Learners を参照) に対して、fitrauto が最大の学習セット サイズで L 個のモデルに学習させるように反復回数を選択します。

次の表では、5 分割交差検証を使用した場合の、指定された仕様に基づく既定の反復回数について説明します。n が観測値の数を、L が学習器タイプの数を表すことに注意してください。

観測値の数

n

既定の反復回数

(逐次実行)

既定の反復回数

(並列実行)

n < 50030*L — n が ASHA 最適化を実装するには小さすぎるため、fitrauto は代わりにランダム探索を実装して、モデルを検出し、評価します。30*L — n が ASHA 最適化を実装するには小さすぎるため、fitrauto は代わりにランダム探索を実装して、モデルを検出し、評価します。
500 ≤ n < 20005*L5*(L + 1)
2000 ≤ n < 800021*L21*(L + 1)
8000 ≤ n < 32,00085*L85*(L + 1)
32,000 ≤ n341*L341*(L + 1)

代替機能

  • 使用するデータ セットに最適なモデルがわからない場合は、回帰学習器アプリを代わりに使用することができます。このアプリを使用すると、さまざまなモデルについてハイパーパラメーターを調整して、パフォーマンスが最も高い最適化済みモデルを選択できます。回帰学習器では、モデルのハイパーパラメーターを調整する前に特定のモデルを選択しなければなりませんが、最適化可能なハイパーパラメーターの選択とハイパーパラメーター値の設定をより柔軟に行うことができます。このアプリにより、さまざまな線形回帰モデルの学習を行うことも可能になります (線形回帰モデルを参照)。ただし、このアプリでは、最適化を並列実行することや、観測値の重みを指定すること、ASHA 最適化を使用することはできません。詳細は、回帰学習器アプリのハイパーパラメーターの最適化を参照してください。

  • 使用するデータに適合するモデルがわかっている場合は、対応するモデル近似関数を使用し、名前と値の引数 OptimizeHyperparameters を指定して、ハイパーパラメーターを調整することもできます。複数のモデルの結果を比較して最適な回帰モデルを選択できます。分類モデルに適用する、このプロセスの例については、ベイズ最適化を使用したモデル選択の自動化への移行を参照してください。

参照

[1] Li, Liam, Kevin Jamieson, Afshin Rostamizadeh, Ekaterina Gonina, Moritz Hardt, Benjamin Recht, and Ameet Talwalkar. “A System for Massively Parallel Hyperparameter Tuning.” ArXiv:1810.05934v5 [Cs], March 16, 2020. https://arxiv.org/abs/1810.05934v5.

拡張機能

バージョン履歴

R2020b で導入

すべて展開する