Автоматически выберите регрессионую модель с оптимизированными гиперпараметрами
Данные предиктора и отклика, fitrauto
автоматически пытается выбрать типы регрессионной модели с различными значениями гиперзначений параметров. Функция использует оптимизацию Байеса, чтобы выбрать модели и их значения гиперзначений параметров, и вычисляет следующее для каждой модели: логарифмическая ( 1 + valLoss), где valLoss является средней квадратичной невязкой перекрестной валидации (MSE). После завершения оптимизации ,fitrauto
возвращает модель, обученную на целом наборе данных, которая, как ожидается, лучше всего спрогнозирует отклики для новых данных. Вы можете использовать predict
и loss
функции объекта возвращенной модели для предсказания новых данных и вычисления тестового набора MSE, соответственно.
Использовать fitrauto
когда вы не уверены, какие типы модели лучше всего соответствуют вашим данным. Для получения информации об альтернативных методах настройки гиперпараметров регрессионых моделей, см. «Альтернативная функциональность».
возвращает регрессионую модель Mdl
= fitrauto(Tbl
,ResponseVarName
)Mdl
с настроенными гиперпараметрами. Таблица Tbl
содержит переменные предиктора и переменную отклика, где ResponseVarName
- имя переменной отклика.
задает опции, использующие один или несколько аргументы пары "имя-значение" в дополнение к любой комбинации входных аргументов в предыдущих синтаксисах. Для примера используйте Mdl
= fitrauto(___,Name,Value
)HyperparameterOptimizationOptions
аргумент пары "имя-значение", чтобы задать, как выполняется байесовская оптимизация.
[
дополнительно возвращается Mdl
,OptimizationResults
] = fitrauto(___)OptimizationResults
, а BayesianOptimization
объект, содержащий результаты выбора модели и процесса настройки гиперпараметра.
Использование fitrauto
чтобы автоматически выбрать регрессионую модель с оптимизированными гиперпараметрами, данные предиктора и отклика, сохраненные в таблице.
Загрузка данных
Загрузите carbig
набор данных, содержащий измерения автомобилей 1970-х и начала 1980-х годов.
load carbig
Создайте таблицу, содержащую переменные предиктора Acceleration
, Displacement
, и так далее, а также переменная отклика MPG
.
cars = table(Acceleration,Displacement,Horsepower, ...
Model_Year,Origin,Weight,MPG);
Данные о разделах
Разделите данные на обучающие и тестовые наборы. Используйте приблизительно 80% наблюдений для процесса выбора модели и настройки гиперпараметра и 20% наблюдений, чтобы проверить эффективность конечной модели, возвращенной fitrauto
. Использование cvpartition
для разбиения данных на разделы.
rng('default') % For reproducibility of the data partition c = cvpartition(length(MPG),'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
предоставляет график оптимизации и итерационное отображение результатов оптимизации. Для получения дополнительной информации о том, как интерпретировать эти результаты, смотрите Подробное отображение.
Ожидайте, что этот процесс займет некоторое время. Чтобы ускорить процесс оптимизации, рассмотрите параллельный запуск оптимизации, если у вас есть лицензия 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)| log(1 + valLoss) | log(1 + valLoss) | | | |=========================================================================================================================================| | 1 | Best | 2.5161 | 1.4197 | 2.5161 | 2.5161 | tree | MinLeafSize: 6 |
| 2 | Accept | 4.1439 | 0.68799 | 2.5161 | 2.5161 | svm | BoxConstraint: 336.91 | | | | | | | | | KernelScale: 0.0018275 | | | | | | | | | Epsilon: 0.1074 |
| 3 | Accept | 4.144 | 5.5942 | 2.5161 | 2.5161 | ensemble | Method: Bag | | | | | | | | | NumLearningCycles: 257 | | | | | | | | | MinLeafSize: 156 |
| 4 | Accept | 3.1976 | 20.387 | 2.5161 | 2.5161 | svm | BoxConstraint: 0.033502 | | | | | | | | | KernelScale: 153.38 | | | | | | | | | Epsilon: 0.093672 |
| 5 | Best | 2.5041 | 0.13106 | 2.5041 | 2.5101 | tree | MinLeafSize: 5 |
| 6 | Best | 2.2096 | 7.0177 | 2.2096 | 2.5101 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 287 | | | | | | | | | MinLeafSize: 1 |
| 7 | Accept | 2.7182 | 0.085053 | 2.2096 | 2.5057 | tree | MinLeafSize: 1 |
| 8 | Accept | 17.207 | 23.312 | 2.2096 | 2.5057 | svm | BoxConstraint: 196.73 | | | | | | | | | KernelScale: 34.789 | | | | | | | | | Epsilon: 0.03716 |
| 9 | Accept | 4.1439 | 0.057226 | 2.2096 | 2.5057 | svm | BoxConstraint: 346.92 | | | | | | | | | KernelScale: 0.032493 | | | | | | | | | Epsilon: 0.23974 |
| 10 | Best | 2.1916 | 6.4368 | 2.1916 | 2.5057 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 278 | | | | | | | | | MinLeafSize: 13 |
|=========================================================================================================================================| | Iter | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |=========================================================================================================================================| | 11 | Accept | 2.8889 | 0.1325 | 2.1916 | 2.5057 | svm | BoxConstraint: 0.033068 | | | | | | | | | KernelScale: 585.38 | | | | | | | | | Epsilon: 4.6993 |
| 12 | Accept | 4.1439 | 0.06362 | 2.1916 | 2.5057 | svm | BoxConstraint: 48.997 | | | | | | | | | KernelScale: 0.0045904 | | | | | | | | | Epsilon: 18.085 |
| 13 | Accept | 4.1439 | 0.048941 | 2.1916 | 2.5057 | svm | BoxConstraint: 985.69 | | | | | | | | | KernelScale: 0.0010988 | | | | | | | | | Epsilon: 449.48 |
| 14 | Accept | 2.2844 | 6.7538 | 2.1916 | 2.4806 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 287 | | | | | | | | | MinLeafSize: 63 |
| 15 | Accept | 4.1439 | 0.054943 | 2.1916 | 2.4806 | svm | BoxConstraint: 0.010812 | | | | | | | | | KernelScale: 1.2015 | | | | | | | | | Epsilon: 0.034209 |
| 16 | Accept | 4.1439 | 0.055455 | 2.1916 | 2.4806 | svm | BoxConstraint: 0.0021787 | | | | | | | | | KernelScale: 0.018209 | | | | | | | | | Epsilon: 443.71 |
| 17 | Accept | 2.2075 | 6.7931 | 2.1916 | 2.1942 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 283 | | | | | | | | | MinLeafSize: 17 |
| 18 | Accept | 2.6056 | 0.08425 | 2.1916 | 2.1942 | tree | MinLeafSize: 2 |
| 19 | Accept | 2.6056 | 0.087135 | 2.1916 | 2.1942 | tree | MinLeafSize: 2 |
| 20 | Accept | 2.7182 | 0.062848 | 2.1916 | 2.1942 | tree | MinLeafSize: 1 |
|=========================================================================================================================================| | Iter | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |=========================================================================================================================================| | 21 | Accept | 2.2402 | 6.8909 | 2.1916 | 2.2011 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 282 | | | | | | | | | MinLeafSize: 2 |
| 22 | Accept | 2.6056 | 0.059067 | 2.1916 | 2.2011 | tree | MinLeafSize: 2 |
| 23 | Accept | 2.3016 | 4.8177 | 2.1916 | 2.1911 | ensemble | Method: Bag | | | | | | | | | NumLearningCycles: 202 | | | | | | | | | MinLeafSize: 9 |
| 24 | Accept | 4.1439 | 0.05258 | 2.1916 | 2.1911 | svm | BoxConstraint: 37.028 | | | | | | | | | KernelScale: 0.033731 | | | | | | | | | Epsilon: 0.2457 |
| 25 | Accept | 3.352 | 0.043391 | 2.1916 | 2.1911 | tree | MinLeafSize: 122 |
| 26 | Accept | 4.1439 | 0.062799 | 2.1916 | 2.1911 | svm | BoxConstraint: 0.01045 | | | | | | | | | KernelScale: 0.0024261 | | | | | | | | | Epsilon: 12.355 |
| 27 | Accept | 2.3188 | 5.1633 | 2.1916 | 2.1884 | ensemble | Method: Bag | | | | | | | | | NumLearningCycles: 212 | | | | | | | | | MinLeafSize: 2 |
| 28 | Accept | 2.4271 | 5.8444 | 2.1916 | 2.1908 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 247 | | | | | | | | | MinLeafSize: 83 |
| 29 | Accept | 2.6056 | 0.05574 | 2.1916 | 2.1908 | tree | MinLeafSize: 2 |
| 30 | Accept | 4.1439 | 0.054692 | 2.1916 | 2.1908 | svm | BoxConstraint: 2.1296 | | | | | | | | | KernelScale: 3.2623 | | | | | | | | | Epsilon: 599.62 |
|=========================================================================================================================================| | Iter | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |=========================================================================================================================================| | 31 | Accept | 2.5241 | 0.051793 | 2.1916 | 2.1908 | tree | MinLeafSize: 8 |
| 32 | Accept | 2.6443 | 5.2572 | 2.1916 | 2.1969 | ensemble | Method: Bag | | | | | | | | | NumLearningCycles: 229 | | | | | | | | | MinLeafSize: 52 |
| 33 | Accept | 2.2537 | 5.641 | 2.1916 | 2.1931 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 235 | | | | | | | | | MinLeafSize: 26 |
| 34 | Accept | 2.5448 | 0.053688 | 2.1916 | 2.1931 | tree | MinLeafSize: 19 |
| 35 | Accept | 2.4438 | 0.045817 | 2.1916 | 2.1931 | tree | MinLeafSize: 13 |
| 36 | Accept | 2.7182 | 0.062646 | 2.1916 | 2.1931 | tree | MinLeafSize: 1 |
| 37 | Accept | 2.4749 | 0.048072 | 2.1916 | 2.1931 | tree | MinLeafSize: 9 |
| 38 | Accept | 13.083 | 31.488 | 2.1916 | 2.1931 | svm | BoxConstraint: 5.2568 | | | | | | | | | KernelScale: 10.811 | | | | | | | | | Epsilon: 0.073361 |
| 39 | Accept | 2.2446 | 5.2866 | 2.1916 | 2.1952 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 214 | | | | | | | | | MinLeafSize: 4 |
| 40 | Accept | 3.0919 | 0.040315 | 2.1916 | 2.1952 | tree | MinLeafSize: 62 |
|=========================================================================================================================================| | Iter | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |=========================================================================================================================================| | 41 | Accept | 2.6335 | 6.4626 | 2.1916 | 2.1926 | ensemble | Method: Bag | | | | | | | | | NumLearningCycles: 280 | | | | | | | | | MinLeafSize: 45 |
| 42 | Accept | 4.1439 | 0.048186 | 2.1916 | 2.1926 | svm | BoxConstraint: 0.093799 | | | | | | | | | KernelScale: 0.0053728 | | | | | | | | | Epsilon: 17.332 |
| 43 | Accept | 2.8766 | 0.075435 | 2.1916 | 2.1926 | svm | BoxConstraint: 0.20553 | | | | | | | | | KernelScale: 880.29 | | | | | | | | | Epsilon: 4.5637 |
| 44 | Accept | 2.2402 | 5.6507 | 2.1916 | 2.1944 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 233 | | | | | | | | | MinLeafSize: 2 |
| 45 | Accept | 2.4576 | 5.4632 | 2.1916 | 2.1928 | ensemble | Method: Bag | | | | | | | | | NumLearningCycles: 232 | | | | | | | | | MinLeafSize: 27 |
| 46 | Accept | 3.003 | 0.069043 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.0010563 | | | | | | | | | KernelScale: 527.21 | | | | | | | | | Epsilon: 0.010074 |
| 47 | Accept | 4.1439 | 0.05544 | 2.1916 | 2.1928 | svm | BoxConstraint: 1.6452 | | | | | | | | | KernelScale: 880.96 | | | | | | | | | Epsilon: 656.96 |
| 48 | Accept | 11.118 | 31.888 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.001029 | | | | | | | | | KernelScale: 25.502 | | | | | | | | | Epsilon: 0.22713 |
| 49 | Accept | 3.0019 | 0.064077 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.012054 | | | | | | | | | KernelScale: 976.62 | | | | | | | | | Epsilon: 0.013474 |
| 50 | Accept | 4.1439 | 0.069826 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.045381 | | | | | | | | | KernelScale: 0.030659 | | | | | | | | | Epsilon: 0.021441 |
|=========================================================================================================================================| | Iter | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |=========================================================================================================================================| | 51 | Accept | 4.1439 | 0.050005 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.090287 | | | | | | | | | KernelScale: 69.941 | | | | | | | | | Epsilon: 125.56 |
| 52 | Accept | 4.1439 | 0.054745 | 2.1916 | 2.1928 | svm | BoxConstraint: 285.67 | | | | | | | | | KernelScale: 0.14938 | | | | | | | | | Epsilon: 764.19 |
| 53 | Accept | 2.8779 | 0.11876 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.064002 | | | | | | | | | KernelScale: 969.91 | | | | | | | | | Epsilon: 0.46473 |
| 54 | Accept | 12.921 | 18.315 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.019899 | | | | | | | | | KernelScale: 50.528 | | | | | | | | | Epsilon: 0.0091628 |
| 55 | Accept | 2.9117 | 0.076534 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.028436 | | | | | | | | | KernelScale: 919.02 | | | | | | | | | Epsilon: 1.2395 |
| 56 | Accept | 3.0276 | 0.064801 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.0073097 | | | | | | | | | KernelScale: 898.72 | | | | | | | | | Epsilon: 0.088715 |
| 57 | Accept | 7.1555 | 20.87 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.07913 | | | | | | | | | KernelScale: 100.43 | | | | | | | | | Epsilon: 0.78937 |
| 58 | Accept | 2.9075 | 0.077548 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.03913 | | | | | | | | | KernelScale: 956.28 | | | | | | | | | Epsilon: 1.1315 |
| 59 | Accept | 2.9168 | 0.068648 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.033583 | | | | | | | | | KernelScale: 973.75 | | | | | | | | | Epsilon: 2.1404 |
| 60 | Accept | 4.1439 | 0.053635 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.1278 | | | | | | | | | KernelScale: 899.12 | | | | | | | | | Epsilon: 36.993 |
|=========================================================================================================================================| | Iter | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |=========================================================================================================================================| | 61 | Accept | 2.9456 | 0.073895 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.022705 | | | | | | | | | KernelScale: 995.04 | | | | | | | | | Epsilon: 0.21977 |
| 62 | Accept | 4.1439 | 0.04979 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.0047868 | | | | | | | | | KernelScale: 0.1518 | | | | | | | | | Epsilon: 0.042601 |
| 63 | Accept | 2.9095 | 0.065115 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.033402 | | | | | | | | | KernelScale: 989.34 | | | | | | | | | Epsilon: 0.3073 |
| 64 | Accept | 4.1439 | 0.065248 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.056303 | | | | | | | | | KernelScale: 0.29988 | | | | | | | | | Epsilon: 0.10313 |
| 65 | Accept | 4.1439 | 0.050181 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.0040769 | | | | | | | | | KernelScale: 238.59 | | | | | | | | | Epsilon: 32.573 |
| 66 | Accept | 2.6802 | 2.1221 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.11739 | | | | | | | | | KernelScale: 555.21 | | | | | | | | | Epsilon: 0.048956 |
| 67 | Accept | 4.1439 | 0.055315 | 2.1916 | 2.1928 | svm | BoxConstraint: 772.51 | | | | | | | | | KernelScale: 0.016887 | | | | | | | | | Epsilon: 72.705 |
| 68 | Accept | 4.1439 | 0.063152 | 2.1916 | 2.1928 | svm | BoxConstraint: 63.153 | | | | | | | | | KernelScale: 0.0080065 | | | | | | | | | Epsilon: 481.39 |
| 69 | Accept | 4.1439 | 0.054083 | 2.1916 | 2.1928 | svm | BoxConstraint: 4.117 | | | | | | | | | KernelScale: 73.496 | | | | | | | | | Epsilon: 121.74 |
| 70 | Accept | 4.1439 | 0.05377 | 2.1916 | 2.1928 | svm | BoxConstraint: 30.398 | | | | | | | | | KernelScale: 0.12159 | | | | | | | | | Epsilon: 64.06 |
|=========================================================================================================================================| | Iter | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |=========================================================================================================================================| | 71 | Accept | 4.1439 | 0.053553 | 2.1916 | 2.1928 | svm | BoxConstraint: 3.9304 | | | | | | | | | KernelScale: 871.88 | | | | | | | | | Epsilon: 23.7 |
| 72 | Accept | 4.1439 | 0.050525 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.031734 | | | | | | | | | KernelScale: 0.28247 | | | | | | | | | Epsilon: 0.0097239 |
| 73 | Accept | 4.1439 | 0.068567 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.021528 | | | | | | | | | KernelScale: 0.001858 | | | | | | | | | Epsilon: 283.71 |
| 74 | Accept | 4.1439 | 0.055336 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.024702 | | | | | | | | | KernelScale: 0.055101 | | | | | | | | | Epsilon: 84.374 |
| 75 | Accept | 2.8707 | 0.095257 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.070484 | | | | | | | | | KernelScale: 928.16 | | | | | | | | | Epsilon: 0.11681 |
| 76 | Accept | 4.1439 | 0.059476 | 2.1916 | 2.1928 | svm | BoxConstraint: 636.13 | | | | | | | | | KernelScale: 0.0020368 | | | | | | | | | Epsilon: 2.0625 |
| 77 | Accept | 2.8682 | 0.10867 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.059284 | | | | | | | | | KernelScale: 888.99 | | | | | | | | | Epsilon: 0.1389 |
| 78 | Accept | 2.7111 | 0.59286 | 2.1916 | 2.1928 | svm | BoxConstraint: 2.4776 | | | | | | | | | KernelScale: 998.2 | | | | | | | | | Epsilon: 1.5291 |
| 79 | Accept | 2.7625 | 0.45668 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.91288 | | | | | | | | | KernelScale: 996.35 | | | | | | | | | Epsilon: 0.16968 |
| 80 | Accept | 3.2211 | 0.058812 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.0011498 | | | | | | | | | KernelScale: 989.38 | | | | | | | | | Epsilon: 0.0091368 |
|=========================================================================================================================================| | Iter | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |=========================================================================================================================================| | 81 | Accept | 4.1439 | 0.05754 | 2.1916 | 2.1928 | svm | BoxConstraint: 26.543 | | | | | | | | | KernelScale: 0.0016089 | | | | | | | | | Epsilon: 0.68659 |
| 82 | Accept | 4.1439 | 0.055356 | 2.1916 | 2.1928 | svm | BoxConstraint: 129.11 | | | | | | | | | KernelScale: 0.044504 | | | | | | | | | Epsilon: 3.7911 |
| 83 | Accept | 2.7643 | 0.51644 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.82852 | | | | | | | | | KernelScale: 990.02 | | | | | | | | | Epsilon: 0.013169 |
| 84 | Accept | 4.1439 | 0.05615 | 2.1916 | 2.1928 | svm | BoxConstraint: 53.003 | | | | | | | | | KernelScale: 3.9941 | | | | | | | | | Epsilon: 318.78 |
| 85 | Accept | 4.1439 | 0.054645 | 2.1916 | 2.1928 | svm | BoxConstraint: 10.848 | | | | | | | | | KernelScale: 0.2138 | | | | | | | | | Epsilon: 876.72 |
| 86 | Accept | 2.8797 | 0.077707 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.063788 | | | | | | | | | KernelScale: 999.56 | | | | | | | | | Epsilon: 0.24966 |
| 87 | Accept | 4.1439 | 0.056472 | 2.1916 | 2.1928 | svm | BoxConstraint: 29.921 | | | | | | | | | KernelScale: 300.51 | | | | | | | | | Epsilon: 872.64 |
| 88 | Accept | 4.1439 | 0.053269 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.5701 | | | | | | | | | KernelScale: 0.020421 | | | | | | | | | Epsilon: 282.76 |
| 89 | Accept | 4.1439 | 0.054778 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.60472 | | | | | | | | | KernelScale: 0.0052641 | | | | | | | | | Epsilon: 0.11831 |
| 90 | Accept | 2.8676 | 0.097394 | 2.1916 | 2.1928 | svm | BoxConstraint: 0.11411 | | | | | | | | | KernelScale: 977.02 | | | | | | | | | Epsilon: 0.090725 |
__________________________________________________________ Optimization completed. Total iterations: 90 Total elapsed time: 589.6892 seconds Total time for training and validation: 245.2123 seconds Best observed learner is an ensemble model with: Method: LSBoost NumLearningCycles: 278 MinLeafSize: 13 Observed log(1 + valLoss): 2.1916 Time for training and validation: 6.4368 seconds Best estimated learner (returned model) is an ensemble model with: Method: LSBoost NumLearningCycles: 278 MinLeafSize: 13 Estimated log(1 + valLoss): 2.1928 Estimated time for training and validation: 5.8977 seconds Documentation for fitrauto display
Конечная модель, возвращенная fitrauto
соответствует лучшему оцененному ученику. Перед возвращением модели функция переобучает ее, используя все обучающие данные (carsTrain
), перечисленные Learner
(или модель) тип и отображенные значения гиперзначений параметров.
Оценка эффективности тестового набора
Оцените эффективность модели на тестовом наборе. testError
основан на средней квадратичной невязке тестового набора (MSE). Меньшие значения MSE указывают на лучшую эффективность.
testMSE = loss(Mdl,carsTest,'MPG');
testError = log(1 + testMSE)
testError = 2.3194
Этот пример использует:
Использование fitrauto
чтобы автоматически выбрать регрессионую модель с оптимизированными гиперпараметрами, данные предиктора и отклика, сохраненные в отдельных переменных.
Загрузка данных
Загрузите carbig
набор данных, содержащий измерения автомобилей 1970-х и начала 1980-х годов.
load carbig
Создайте матрицу X
содержащие переменные предиктора Acceleration
, Cylinders
и так далее. Сохраните переменную отклика MPG
в переменной Y
.
X = [Acceleration Cylinders Displacement Weight]; Y = MPG;
Создайте переменную, указывающую, какие предикторы являются категориальными. Cylinders
является единственной категориальной переменной в X
.
categoricalVars = [false true false false];
Данные о разделах
Разделите данные на обучающие и тестовые наборы. Используйте приблизительно 80% наблюдений для процесса выбора модели и настройки гиперпараметра и 20% наблюдений, чтобы проверить эффективность конечной модели, возвращенной fitrauto
. Использование 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™). Верните второй выход OptimizationResults
который содержит детали байесовской оптимизации.
Ожидайте, что этот процесс займет некоторое время. По умолчанию fitrauto
предоставляет график оптимизации и итерационное отображение результатов оптимизации. Для получения дополнительной информации о том, как интерпретировать эти результаты, смотрите Подробное отображение.
options = struct('UseParallel',true); [Mdl,OptimizationResults] = fitrauto(XTrain,YTrain, ... 'CategoricalPredictors',categoricalVars, ... 'HyperparameterOptimizationOptions',options);
Starting parallel pool (parpool) using the 'local' profile ... Connected to the parallel pool (number of workers: 6). 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)| log(1 + valLoss) | log(1 + valLoss) | | | |===================================================================================================================================================| | 1 | 5 | Best | 3.0205 | 1.7491 | 3.0205 | 3.0329 | tree | MinLeafSize: 6 | | 2 | 5 | Accept | 3.0453 | 1.6641 | 3.0205 | 3.0329 | tree | MinLeafSize: 5 |
| 3 | 4 | Accept | 4.143 | 2.6491 | 3.0205 | 3.0329 | svm | BoxConstraint: 336.91 | | | | | | | | | | KernelScale: 0.0018275 | | | | | | | | | | Epsilon: 0.1074 | | 4 | 4 | Accept | 4.1434 | 7.5491 | 3.0205 | 3.0329 | ensemble | Method: Bag | | | | | | | | | | NumLearningCycles: 257 | | | | | | | | | | MinLeafSize: 156 |
| 5 | 3 | Best | 2.9188 | 8.6194 | 2.9188 | 3.0329 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 287 | | | | | | | | | | MinLeafSize: 1 | | 6 | 3 | Accept | 4.143 | 0.83485 | 2.9188 | 3.0329 | svm | BoxConstraint: 346.92 | | | | | | | | | | KernelScale: 0.032493 | | | | | | | | | | Epsilon: 0.23974 |
| 7 | 6 | Accept | 2.9275 | 0.19147 | 2.9188 | 2.9276 | svm | BoxConstraint: 0.033068 | | | | | | | | | | KernelScale: 585.38 | | | | | | | | | | Epsilon: 4.6993 |
| 8 | 4 | Accept | 4.143 | 0.09353 | 2.9188 | 2.9276 | svm | BoxConstraint: 985.69 | | | | | | | | | | KernelScale: 0.0010988 | | | | | | | | | | Epsilon: 449.48 | | 9 | 4 | Accept | 4.143 | 0.62222 | 2.9188 | 2.9276 | svm | BoxConstraint: 0.04588 | | | | | | | | | | KernelScale: 0.33917 | | | | | | | | | | Epsilon: 0.073755 | | 10 | 4 | Accept | 3.0205 | 0.21301 | 2.9188 | 2.9276 | tree | MinLeafSize: 6 |
|===================================================================================================================================================| | Iter | Active | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | workers | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |===================================================================================================================================================| | 11 | 6 | Best | 2.9167 | 7.3685 | 2.9167 | 2.9276 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 287 | | | | | | | | | | MinLeafSize: 63 |
| 12 | 4 | Accept | 3.6673 | 22.826 | 2.8696 | 2.8697 | svm | BoxConstraint: 0.033502 | | | | | | | | | | KernelScale: 153.38 | | | | | | | | | | Epsilon: 0.093672 | | 13 | 4 | Best | 2.8696 | 8.0371 | 2.8696 | 2.8697 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 283 | | | | | | | | | | MinLeafSize: 17 | | 14 | 4 | Accept | 2.8696 | 7.6155 | 2.8696 | 2.8697 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 283 | | | | | | | | | | MinLeafSize: 17 |
| 15 | 3 | Accept | 2.8696 | 8.2039 | 2.8696 | 2.8697 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 283 | | | | | | | | | | MinLeafSize: 17 | | 16 | 3 | Accept | 3.1971 | 0.1933 | 2.8696 | 2.8697 | tree | MinLeafSize: 2 |
| 17 | 6 | Accept | 3.0139 | 0.12079 | 2.8696 | 2.8697 | tree | MinLeafSize: 34 |
| 18 | 5 | Accept | 4.143 | 0.23444 | 2.8696 | 2.8697 | svm | BoxConstraint: 0.0023916 | | | | | | | | | | KernelScale: 0.0049969 | | | | | | | | | | Epsilon: 3.0552 | | 19 | 5 | Accept | 3.3225 | 0.19712 | 2.8696 | 2.8697 | tree | MinLeafSize: 122 |
| 20 | 3 | Accept | 2.8717 | 5.5602 | 2.8217 | 2.8697 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 282 | | | | | | | | | | MinLeafSize: 2 | |===================================================================================================================================================| | Iter | Active | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | workers | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |===================================================================================================================================================| | 21 | 3 | Best | 2.8217 | 4.2702 | 2.8217 | 2.8697 | ensemble | Method: Bag | | | | | | | | | | NumLearningCycles: 202 | | | | | | | | | | MinLeafSize: 9 | | 22 | 3 | Accept | 4.143 | 0.11628 | 2.8217 | 2.8697 | svm | BoxConstraint: 37.028 | | | | | | | | | | KernelScale: 0.033731 | | | | | | | | | | Epsilon: 0.2457 |
| 23 | 6 | Accept | 4.143 | 0.067367 | 2.8217 | 2.8697 | svm | BoxConstraint: 0.01045 | | | | | | | | | | KernelScale: 0.0024261 | | | | | | | | | | Epsilon: 12.355 |
| 24 | 5 | Accept | 3.1971 | 0.094668 | 2.8217 | 2.8697 | tree | MinLeafSize: 2 | | 25 | 5 | Accept | 4.143 | 0.10279 | 2.8217 | 2.8697 | svm | BoxConstraint: 308.5 | | | | | | | | | | KernelScale: 0.015174 | | | | | | | | | | Epsilon: 0.53501 |
| 26 | 5 | Accept | 4.143 | 0.07812 | 2.8217 | 2.8697 | svm | BoxConstraint: 2.1296 | | | | | | | | | | KernelScale: 3.2623 | | | | | | | | | | Epsilon: 599.62 |
| 27 | 6 | Accept | 11.41 | 32.991 | 2.8217 | 2.8697 | svm | BoxConstraint: 0.0054638 | | | | | | | | | | KernelScale: 45.011 | | | | | | | | | | Epsilon: 5.0385 |
| 28 | 6 | Accept | 2.8657 | 5.3498 | 2.8217 | 2.8221 | ensemble | Method: Bag | | | | | | | | | | NumLearningCycles: 229 | | | | | | | | | | MinLeafSize: 52 |
| 29 | 3 | Accept | 2.8689 | 6.3959 | 2.8217 | 2.8221 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 235 | | | | | | | | | | MinLeafSize: 26 | | 30 | 3 | Accept | 2.8689 | 5.5649 | 2.8217 | 2.8221 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 235 | | | | | | | | | | MinLeafSize: 26 | |===================================================================================================================================================| | Iter | Active | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | workers | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |===================================================================================================================================================| | 31 | 3 | Accept | 2.9197 | 0.043492 | 2.8217 | 2.8221 | tree | MinLeafSize: 19 | | 32 | 3 | Accept | 2.9403 | 0.050907 | 2.8217 | 2.8221 | tree | MinLeafSize: 13 |
| 33 | 6 | Accept | 4.143 | 0.1117 | 2.8217 | 2.8221 | svm | BoxConstraint: 0.0013002 | | | | | | | | | | KernelScale: 365.07 | | | | | | | | | | Epsilon: 533.39 |
| 34 | 5 | Accept | 4.1924 | 16.905 | 2.8217 | 2.8221 | svm | BoxConstraint: 0.0057208 | | | | | | | | | | KernelScale: 143.79 | | | | | | | | | | Epsilon: 4.0917 | | 35 | 5 | Accept | 2.9804 | 0.16413 | 2.8217 | 2.8221 | tree | MinLeafSize: 8 |
| 36 | 4 | Accept | 2.8842 | 4.4972 | 2.8217 | 2.8221 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 214 | | | | | | | | | | MinLeafSize: 4 | | 37 | 4 | Accept | 3.112 | 0.40292 | 2.8217 | 2.8221 | tree | MinLeafSize: 62 |
| 38 | 3 | Accept | 2.8686 | 5.942 | 2.8217 | 2.8221 | ensemble | Method: Bag | | | | | | | | | | NumLearningCycles: 285 | | | | | | | | | | MinLeafSize: 45 | | 39 | 3 | Accept | 4.143 | 0.048389 | 2.8217 | 2.8221 | svm | BoxConstraint: 0.093799 | | | | | | | | | | KernelScale: 0.0053728 | | | | | | | | | | Epsilon: 17.332 |
| 40 | 6 | Accept | 2.9487 | 0.053171 | 2.8217 | 2.8221 | tree | MinLeafSize: 27 |
|===================================================================================================================================================| | Iter | Active | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | workers | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |===================================================================================================================================================| | 41 | 3 | Accept | 12.196 | 29.49 | 2.8217 | 2.8221 | svm | BoxConstraint: 86.083 | | | | | | | | | | KernelScale: 52.727 | | | | | | | | | | Epsilon: 8.3179 | | 42 | 3 | Accept | 2.8717 | 4.5788 | 2.8217 | 2.8221 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 233 | | | | | | | | | | MinLeafSize: 2 | | 43 | 3 | Accept | 2.9093 | 0.24973 | 2.8217 | 2.8221 | svm | BoxConstraint: 0.034974 | | | | | | | | | | KernelScale: 588.77 | | | | | | | | | | Epsilon: 3.8683 | | 44 | 3 | Accept | 2.9804 | 0.18263 | 2.8217 | 2.8221 | tree | MinLeafSize: 8 |
| 45 | 6 | Accept | 4.143 | 0.10875 | 2.8217 | 2.8221 | svm | BoxConstraint: 0.084355 | | | | | | | | | | KernelScale: 0.052988 | | | | | | | | | | Epsilon: 76.921 |
| 46 | 5 | Accept | 2.8478 | 4.7428 | 2.8217 | 2.8221 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 229 | | | | | | | | | | MinLeafSize: 8 | | 47 | 5 | Accept | 4.143 | 1.2887 | 2.8217 | 2.8221 | svm | BoxConstraint: 0.0036358 | | | | | | | | | | KernelScale: 4.7627 | | | | | | | | | | Epsilon: 20.208 |
| 48 | 4 | Accept | 3.2214 | 16.267 | 2.8217 | 2.8221 | svm | BoxConstraint: 0.069952 | | | | | | | | | | KernelScale: 207.68 | | | | | | | | | | Epsilon: 0.092526 | | 49 | 4 | Accept | 2.924 | 0.18896 | 2.8217 | 2.8221 | svm | BoxConstraint: 0.0095751 | | | | | | | | | | KernelScale: 358.95 | | | | | | | | | | Epsilon: 4.7526 |
| 50 | 3 | Accept | 3.1542 | 15.88 | 2.8217 | 2.8221 | svm | BoxConstraint: 0.028095 | | | | | | | | | | KernelScale: 184.52 | | | | | | | | | | Epsilon: 0.09847 | |===================================================================================================================================================| | Iter | Active | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | workers | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |===================================================================================================================================================| | 51 | 3 | Accept | 2.9143 | 3.0279 | 2.8217 | 2.8221 | svm | BoxConstraint: 0.0033005 | | | | | | | | | | KernelScale: 252.81 | | | | | | | | | | Epsilon: 2.6159 |
| 52 | 6 | Accept | 10.06 | 18.169 | 2.8217 | 2.8221 | svm | BoxConstraint: 0.043122 | | | | | | | | | | KernelScale: 74.674 | | | | | | | | | | Epsilon: 0.071781 |
| 53 | 2 | Accept | 2.8989 | 7.2493 | 2.8217 | 2.8221 | svm | BoxConstraint: 0.014817 | | | | | | | | | | KernelScale: 247.68 | | | | | | | | | | Epsilon: 2.5942 | | 54 | 2 | Accept | 2.9049 | 0.55744 | 2.8217 | 2.8221 | svm | BoxConstraint: 0.033022 | | | | | | | | | | KernelScale: 505.18 | | | | | | | | | | Epsilon: 0.1266 | | 55 | 2 | Accept | 2.9804 | 0.066427 | 2.8217 | 2.8221 | tree | MinLeafSize: 8 | | 56 | 2 | Accept | 2.9032 | 0.17339 | 2.8217 | 2.8221 | tree | MinLeafSize: 17 | | 57 | 2 | Accept | 4.143 | 0.058535 | 2.8217 | 2.8221 | svm | BoxConstraint: 0.0011341 | | | | | | | | | | KernelScale: 0.0017464 | | | | | | | | | | Epsilon: 0.012532 |
| 58 | 6 | Accept | 2.9268 | 0.13315 | 2.8217 | 2.8221 | svm | BoxConstraint: 0.0042653 | | | | | | | | | | KernelScale: 319.4 | | | | | | | | | | Epsilon: 4.5985 |
| 59 | 4 | Accept | 2.9081 | 1.8508 | 2.8217 | 2.8227 | svm | BoxConstraint: 0.0012679 | | | | | | | | | | KernelScale: 229.31 | | | | | | | | | | Epsilon: 0.075286 | | 60 | 4 | Accept | 4.143 | 0.059851 | 2.8217 | 2.8227 | svm | BoxConstraint: 275.76 | | | | | | | | | | KernelScale: 0.034549 | | | | | | | | | | Epsilon: 6.2312 | |===================================================================================================================================================| | Iter | Active | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | workers | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |===================================================================================================================================================| | 61 | 4 | Accept | 2.8335 | 4.6933 | 2.8217 | 2.8227 | ensemble | Method: Bag | | | | | | | | | | NumLearningCycles: 219 | | | | | | | | | | MinLeafSize: 26 |
| 62 | 5 | Accept | 2.9049 | 1.902 | 2.8217 | 2.8227 | svm | BoxConstraint: 0.0071219 | | | | | | | | | | KernelScale: 278.65 | | | | | | | | | | Epsilon: 2.7464 |
| 63 | 3 | Accept | 2.8816 | 15.271 | 2.8217 | 2.8227 | svm | BoxConstraint: 0.044779 | | | | | | | | | | KernelScale: 253.31 | | | | | | | | | | Epsilon: 0.15109 | | 64 | 3 | Accept | 2.8773 | 9.1951 | 2.8217 | 2.8227 | svm | BoxConstraint: 0.042581 | | | | | | | | | | KernelScale: 336.99 | | | | | | | | | | Epsilon: 0.072146 | | 65 | 3 | Accept | 2.9573 | 3.597 | 2.8217 | 2.8227 | svm | BoxConstraint: 0.035397 | | | | | | | | | | KernelScale: 251.22 | | | | | | | | | | Epsilon: 5.8103 |
| 66 | 6 | Accept | 2.9045 | 0.8479 | 2.8217 | 2.8227 | svm | BoxConstraint: 0.0017256 | | | | | | | | | | KernelScale: 280.49 | | | | | | | | | | Epsilon: 0.17061 |
| 67 | 5 | Accept | 3.1507 | 0.089958 | 2.8217 | 2.8227 | tree | MinLeafSize: 3 | | 68 | 5 | Accept | 3.1971 | 0.14914 | 2.8217 | 2.8227 | tree | MinLeafSize: 2 |
| 69 | 5 | Accept | 4.143 | 30.354 | 2.8217 | 2.8227 | svm | BoxConstraint: 1.3468 | | | | | | | | | | KernelScale: 9.6762 | | | | | | | | | | Epsilon: 0.023868 |
| 70 | 5 | Accept | 2.9037 | 1.2103 | 2.8217 | 2.8227 | svm | BoxConstraint: 0.0030905 | | | | | | | | | | KernelScale: 288.83 | | | | | | | | | | Epsilon: 0.089541 |
|===================================================================================================================================================| | Iter | Active | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | workers | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |===================================================================================================================================================| | 71 | 4 | Accept | 6.6283 | 17.347 | 2.8217 | 2.8227 | svm | BoxConstraint: 0.0017058 | | | | | | | | | | KernelScale: 104.21 | | | | | | | | | | Epsilon: 0.065687 | | 72 | 4 | Accept | 2.9655 | 15.866 | 2.8217 | 2.8227 | svm | BoxConstraint: 16.694 | | | | | | | | | | KernelScale: 563.25 | | | | | | | | | | Epsilon: 0.82854 |
| 73 | 4 | Accept | 3.0653 | 0.064937 | 2.8217 | 2.8227 | svm | BoxConstraint: 0.0014988 | | | | | | | | | | KernelScale: 637.21 | | | | | | | | | | Epsilon: 0.082183 |
| 74 | 2 | Accept | 5.9041 | 19.341 | 2.8217 | 2.8227 | svm | BoxConstraint: 0.0015248 | | | | | | | | | | KernelScale: 115.07 | | | | | | | | | | Epsilon: 0.14178 | | 75 | 2 | Accept | 2.874 | 14.077 | 2.8217 | 2.8227 | svm | BoxConstraint: 0.049938 | | | | | | | | | | KernelScale: 249.2 | | | | | | | | | | Epsilon: 2.3027 | | 76 | 2 | Accept | 2.9116 | 0.1932 | 2.8217 | 2.8227 | svm | BoxConstraint: 0.0015667 | | | | | | | | | | KernelScale: 364.11 | | | | | | | | | | Epsilon: 0.046357 |
| 77 | 6 | Accept | 2.9266 | 0.089378 | 2.8217 | 2.8203 | svm | BoxConstraint: 0.008711 | | | | | | | | | | KernelScale: 689.75 | | | | | | | | | | Epsilon: 0.11038 |
| 78 | 3 | Accept | 2.9134 | 0.2501 | 2.8217 | 2.7031 | svm | BoxConstraint: 0.0013447 | | | | | | | | | | KernelScale: 362.68 | | | | | | | | | | Epsilon: 0.096474 | | 79 | 3 | Accept | 4.143 | 0.086465 | 2.8217 | 2.7031 | svm | BoxConstraint: 37.006 | | | | | | | | | | KernelScale: 0.031201 | | | | | | | | | | Epsilon: 8.5325 | | 80 | 3 | Accept | 2.9804 | 0.070321 | 2.8217 | 2.7031 | tree | MinLeafSize: 8 | |===================================================================================================================================================| | Iter | Active | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | workers | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |===================================================================================================================================================| | 81 | 3 | Accept | 4.143 | 0.057551 | 2.8217 | 2.7031 | svm | BoxConstraint: 8.2928 | | | | | | | | | | KernelScale: 0.22318 | | | | | | | | | | Epsilon: 0.35272 |
| 82 | 6 | Accept | 2.905 | 0.35685 | 2.8217 | 2.6899 | svm | BoxConstraint: 0.0049863 | | | | | | | | | | KernelScale: 405.18 | | | | | | | | | | Epsilon: 0.20248 |
| 83 | 4 | Accept | 4.143 | 0.057428 | 2.8217 | 2.6899 | svm | BoxConstraint: 0.0035019 | | | | | | | | | | KernelScale: 10.124 | | | | | | | | | | Epsilon: 22.114 | | 84 | 4 | Accept | 2.9968 | 0.053485 | 2.8217 | 2.6899 | tree | MinLeafSize: 31 | | 85 | 4 | Accept | 2.9487 | 0.067551 | 2.8217 | 2.6899 | tree | MinLeafSize: 27 |
| 86 | 2 | Accept | 11.192 | 19.605 | 2.8217 | 2.7382 | svm | BoxConstraint: 86.675 | | | | | | | | | | KernelScale: 92.212 | | | | | | | | | | Epsilon: 2.4057 | | 87 | 2 | Accept | 2.8848 | 6.0635 | 2.8217 | 2.7382 | svm | BoxConstraint: 0.015422 | | | | | | | | | | KernelScale: 295.63 | | | | | | | | | | Epsilon: 0.10658 | | 88 | 2 | Accept | 2.8919 | 2.8002 | 2.8217 | 2.7382 | svm | BoxConstraint: 0.013027 | | | | | | | | | | KernelScale: 316.74 | | | | | | | | | | Epsilon: 0.1048 |
| 89 | 6 | Accept | 2.9712 | 0.073966 | 2.8217 | 2.7363 | svm | BoxConstraint: 0.00197 | | | | | | | | | | KernelScale: 560.31 | | | | | | | | | | Epsilon: 0.42707 |
| 90 | 5 | Accept | 3.0045 | 0.1149 | 2.8217 | 2.7363 | tree | MinLeafSize: 45 | |===================================================================================================================================================| | Iter | Active | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | workers | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |===================================================================================================================================================| | 91 | 5 | Accept | 3.031 | 0.041383 | 2.8217 | 2.7363 | tree | MinLeafSize: 61 |
__________________________________________________________ Optimization completed. Total iterations: 91 Total elapsed time: 201.923 seconds Total time for training and validation: 436.1019 seconds Best observed learner is an ensemble model with: Method: Bag NumLearningCycles: 202 MinLeafSize: 9 Observed log(1 + valLoss): 2.8217 Time for training and validation: 4.2702 seconds Best estimated learner (returned model) is an svm model with: BoxConstraint: 0.0013447 KernelScale: 362.68 Epsilon: 0.096474 Estimated log(1 + valLoss): 2.7363 Estimated time for training and validation: 0.29514 seconds Documentation for fitrauto display
Конечная модель, возвращенная fitrauto
соответствует лучшему оцененному ученику. Перед возвращением модели функция переобучает ее, используя все обучающие данные (XTrain
и YTrain
), перечисленные Learner
(или модель) тип и отображенные значения гиперзначений параметров.
Оценка эффективности тестового набора
Оцените эффективность модели на тестовом наборе. testError
основан на средней квадратичной невязке тестового набора (MSE). Меньшие значения MSE указывают на лучшую эффективность.
testMSE = loss(Mdl,XTest,YTest); testError = log(1 + testMSE)
testError = 2.9873
Этот пример использует:
Использование fitrauto
чтобы автоматически выбрать регрессионую модель с оптимизированными гиперпараметрами, данные предиктора и отклика, сохраненные в таблице. Сравните эффективность полученной регрессионной модели с эффективностью простой линейной регрессионой, созданной с помощью fitlm
.
Загрузка и разбиение данных
Загрузите carbig
набор данных, содержащий измерения автомобилей 1970-х и начала 1980-х годов. Преобразуйте Cylinders
переменная к categorical
переменная. Создайте таблицу, содержащую переменные предиктора Acceleration
, Cylinders
, Displacement
, и так далее, а также переменная отклика MPG
.
load carbig Cylinders = categorical(Cylinders); cars = table(Acceleration,Cylinders,Displacement, ... Horsepower,Model_Year,Origin,Weight,MPG);
Разделите данные на обучающие и тестовые наборы. Используйте приблизительно 80% наблюдений для обучения и 20% наблюдений для проверки. Использование cvpartition
для разбиения данных на разделы.
rng('default') % For reproducibility of the data partition c = cvpartition(length(MPG),'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
предоставляет график оптимизации и итерационное отображение результатов оптимизации. Для получения дополнительной информации о том, как интерпретировать эти результаты, смотрите Подробное отображение.
options = struct('UseParallel',true); autoMdl = fitrauto(carsTrain,'MPG','OptimizeHyperparameters','all', ... 'HyperparameterOptimizationOptions',options);
Starting parallel pool (parpool) using the 'local' profile ... Connected to the parallel pool (number of workers: 6). 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)| log(1 + valLoss) | log(1 + valLoss) | | | |===================================================================================================================================================| | 1 | 4 | Accept | 3.5168 | 2.3522 | 2.6193 | 2.6197 | tree | MinLeafSize: 38 | | | | | | | | | | MaxNumSplits: 2 | | | | | | | | | | NumVariablesToSample: 1 | | 2 | 4 | Accept | 2.6633 | 2.3211 | 2.6193 | 2.6197 | tree | MinLeafSize: 1 | | | | | | | | | | MaxNumSplits: 44 | | | | | | | | | | NumVariablesToSample: 4 | | 3 | 4 | Best | 2.6193 | 2.3426 | 2.6193 | 2.6197 | tree | MinLeafSize: 29 | | | | | | | | | | MaxNumSplits: 52 | | | | | | | | | | NumVariablesToSample: 6 | | 4 | 4 | Accept | 4.1439 | 3.798 | 2.6193 | 2.6197 | svm | BoxConstraint: 0.010718 | | | | | | | | | | KernelScale: 1.7547 | | | | | | | | | | Epsilon: 182.6 | | 5 | 2 | Accept | 2.3998 | 8.4115 | 2.2082 | 2.6197 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.64294 | | | | | | | | | | MinLeafSize: 39 | | | | | | | | | | NumVariablesToSample: NaN | | 6 | 2 | Best | 2.2082 | 9.4573 | 2.2082 | 2.6197 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.033855 | | | | | | | | | | MinLeafSize: 6 | | | | | | | | | | NumVariablesToSample: NaN | | 7 | 2 | Accept | 4.1439 | 0.37564 | 2.2082 | 2.6197 | svm | BoxConstraint: 0.012677 | | | | | | | | | | KernelScale: 351.81 | | | | | | | | | | Epsilon: 140.99 | | 8 | 6 | Accept | 4.1439 | 1.1014 | 2.2082 | 2.6197 | svm | BoxConstraint: 37.191 | | | | | | | | | | KernelScale: 21.113 | | | | | | | | | | Epsilon: 33.874 | | 9 | 6 | Accept | 2.7394 | 1.8778 | 2.2082 | 2.6197 | svm | BoxConstraint: 0.057859 | | | | | | | | | | KernelScale: 448.87 | | | | | | | | | | Epsilon: 4.2169 | | 10 | 3 | Accept | 2.5987 | 6.4235 | 2.2082 | 2.4798 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.89898 | | | | | | | | | | MinLeafSize: 2 | | | | | | | | | | NumVariablesToSample: NaN | |===================================================================================================================================================| | Iter | Active | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | workers | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |===================================================================================================================================================| | 11 | 3 | Accept | 3.2336 | 6.93 | 2.2082 | 2.4798 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.56281 | | | | | | | | | | MinLeafSize: 123 | | | | | | | | | | NumVariablesToSample: NaN | | 12 | 3 | Accept | 2.682 | 6.4489 | 2.2082 | 2.4798 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 51 | | | | | | | | | | NumVariablesToSample: 2 | | 13 | 3 | Accept | 2.4795 | 0.40654 | 2.2082 | 2.4798 | tree | MinLeafSize: 6 | | | | | | | | | | MaxNumSplits: 32 | | | | | | | | | | NumVariablesToSample: 5 | | 14 | 5 | Accept | 4.1439 | 0.28349 | 2.2082 | 2.4798 | svm | BoxConstraint: 297.35 | | | | | | | | | | KernelScale: 0.87756 | | | | | | | | | | Epsilon: 0.043798 | | 15 | 5 | Accept | 2.845 | 0.3422 | 2.2082 | 2.4798 | svm | BoxConstraint: 0.0027083 | | | | | | | | | | KernelScale: 413.17 | | | | | | | | | | Epsilon: 0.13572 | | 16 | 5 | Accept | 2.7106 | 5.6397 | 2.2082 | 2.3735 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.74839 | | | | | | | | | | MinLeafSize: 88 | | | | | | | | | | NumVariablesToSample: NaN | | 17 | 3 | Accept | 6.0492 | 4.8396 | 2.2082 | 2.3735 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.0010498 | | | | | | | | | | MinLeafSize: 130 | | | | | | | | | | NumVariablesToSample: NaN | | 18 | 3 | Accept | 2.2932 | 5.4011 | 2.2082 | 2.3735 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.10542 | | | | | | | | | | MinLeafSize: 57 | | | | | | | | | | NumVariablesToSample: NaN | | 19 | 3 | Accept | 2.6686 | 0.22924 | 2.2082 | 2.3735 | tree | MinLeafSize: 5 | | | | | | | | | | MaxNumSplits: 7 | | | | | | | | | | NumVariablesToSample: 5 | | 20 | 6 | Accept | 4.1439 | 1.5528 | 2.2082 | 2.3735 | svm | BoxConstraint: 0.07294 | | | | | | | | | | KernelScale: 761.22 | | | | | | | | | | Epsilon: 31.544 | |===================================================================================================================================================| | Iter | Active | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | workers | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |===================================================================================================================================================| | 21 | 4 | Accept | 4.143 | 0.10249 | 2.2082 | 2.3735 | tree | MinLeafSize: 132 | | | | | | | | | | MaxNumSplits: 8 | | | | | | | | | | NumVariablesToSample: 5 | | 22 | 4 | Accept | 4.143 | 0.31889 | 2.2082 | 2.3735 | tree | MinLeafSize: 138 | | | | | | | | | | MaxNumSplits: 3 | | | | | | | | | | NumVariablesToSample: 7 | | 23 | 4 | Accept | 3.5024 | 0.16777 | 2.2082 | 2.3735 | tree | MinLeafSize: 83 | | | | | | | | | | MaxNumSplits: 41 | | | | | | | | | | NumVariablesToSample: 2 | | 24 | 2 | Accept | 4.1439 | 33.887 | 2.2082 | 2.3735 | svm | BoxConstraint: 0.15265 | | | | | | | | | | KernelScale: 1.4893 | | | | | | | | | | Epsilon: 0.44287 | | 25 | 2 | Accept | 2.3583 | 5.6469 | 2.2082 | 2.3735 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 2 | | | | | | | | | | NumVariablesToSample: 2 | | 26 | 2 | Accept | 4.1439 | 0.08045 | 2.2082 | 2.3735 | svm | BoxConstraint: 0.0050384 | | | | | | | | | | KernelScale: 0.18651 | | | | | | | | | | Epsilon: 11.818 | | 27 | 6 | Accept | 4.1439 | 0.11643 | 2.2082 | 2.3735 | svm | BoxConstraint: 0.19519 | | | | | | | | | | KernelScale: 0.48473 | | | | | | | | | | Epsilon: 0.02267 | | 28 | 6 | Accept | 2.6334 | 0.69581 | 2.2082 | 2.3735 | tree | MinLeafSize: 6 | | | | | | | | | | MaxNumSplits: 43 | | | | | | | | | | NumVariablesToSample: 2 | | 29 | 2 | Accept | 5.9862 | 5.4794 | 2.2082 | 2.3735 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.001143 | | | | | | | | | | MinLeafSize: 104 | | | | | | | | | | NumVariablesToSample: NaN | | 30 | 2 | Accept | 2.2456 | 7.9201 | 2.2082 | 2.3735 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 12 | | | | | | | | | | NumVariablesToSample: 7 | |===================================================================================================================================================| | Iter | Active | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | workers | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |===================================================================================================================================================| | 31 | 2 | Accept | 2.9745 | 7.6297 | 2.2082 | 2.3735 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.010155 | | | | | | | | | | MinLeafSize: 13 | | | | | | | | | | NumVariablesToSample: NaN | | 32 | 2 | Accept | 2.6819 | 6.0671 | 2.2082 | 2.3735 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 57 | | | | | | | | | | NumVariablesToSample: 5 | | 33 | 2 | Accept | 2.927 | 0.11096 | 2.2082 | 2.3735 | tree | MinLeafSize: 1 | | | | | | | | | | MaxNumSplits: 123 | | | | | | | | | | NumVariablesToSample: 2 | | 34 | 4 | Accept | 4.1439 | 0.11416 | 2.2082 | 2.3735 | svm | BoxConstraint: 2.1967 | | | | | | | | | | KernelScale: 0.02117 | | | | | | | | | | Epsilon: 0.20631 | | 35 | 4 | Accept | 2.9904 | 0.096707 | 2.2082 | 2.3735 | tree | MinLeafSize: 44 | | | | | | | | | | MaxNumSplits: 265 | | | | | | | | | | NumVariablesToSample: 2 | | 36 | 4 | Accept | 2.6513 | 0.10209 | 2.2082 | 2.3735 | tree | MinLeafSize: 1 | | | | | | | | | | MaxNumSplits: 90 | | | | | | | | | | NumVariablesToSample: 2 | | 37 | 4 | Accept | 2.2442 | 7.3117 | 2.2082 | 2.2083 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 1 | | | | | | | | | | NumVariablesToSample: 6 | | 38 | 4 | Accept | 2.345 | 5.3353 | 2.2082 | 2.2083 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 3 | | | | | | | | | | NumVariablesToSample: 2 | | 39 | 3 | Accept | 3.1314 | 4.9709 | 2.2082 | 2.2083 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 82 | | | | | | | | | | NumVariablesToSample: 5 | | 40 | 3 | Accept | 4.1439 | 0.076184 | 2.2082 | 2.2083 | svm | BoxConstraint: 488.75 | | | | | | | | | | KernelScale: 0.047261 | | | | | | | | | | Epsilon: 0.019147 | |===================================================================================================================================================| | Iter | Active | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | workers | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |===================================================================================================================================================| | 41 | 5 | Accept | 2.611 | 15.327 | 2.2082 | 2.2083 | svm | BoxConstraint: 0.0057698 | | | | | | | | | | KernelScale: 199.91 | | | | | | | | | | Epsilon: 1.094 | | 42 | 5 | Accept | 4.1439 | 0.11014 | 2.2082 | 2.2083 | svm | BoxConstraint: 347.06 | | | | | | | | | | KernelScale: 0.024995 | | | | | | | | | | Epsilon: 0.012891 | | 43 | 3 | Best | 2.1839 | 5.4291 | 2.1839 | 2.2083 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.079786 | | | | | | | | | | MinLeafSize: 16 | | | | | | | | | | NumVariablesToSample: NaN | | 44 | 3 | Accept | 2.9934 | 0.080707 | 2.1839 | 2.2083 | tree | MinLeafSize: 37 | | | | | | | | | | MaxNumSplits: 171 | | | | | | | | | | NumVariablesToSample: 4 | | 45 | 3 | Accept | 4.1439 | 0.090101 | 2.1839 | 2.2083 | svm | BoxConstraint: 0.24707 | | | | | | | | | | KernelScale: 0.0040563 | | | | | | | | | | Epsilon: 0.75695 | | 46 | 6 | Accept | 2.2144 | 5.1987 | 2.1839 | 2.1982 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.078839 | | | | | | | | | | MinLeafSize: 16 | | | | | | | | | | NumVariablesToSample: NaN | | 47 | 4 | Accept | 2.2877 | 5.9143 | 2.1839 | 2.1129 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 15 | | | | | | | | | | NumVariablesToSample: 5 | | 48 | 4 | Accept | 3.0763 | 0.13281 | 2.1839 | 2.1129 | tree | MinLeafSize: 12 | | | | | | | | | | MaxNumSplits: 2 | | | | | | | | | | NumVariablesToSample: 3 | | 49 | 4 | Accept | 4.1439 | 1.3244 | 2.1839 | 2.1129 | svm | BoxConstraint: 6.6689 | | | | | | | | | | KernelScale: 0.048705 | | | | | | | | | | Epsilon: 59.545 | | 50 | 3 | Accept | 4.1439 | 30.675 | 2.1839 | 2.1984 | svm | BoxConstraint: 13.655 | | | | | | | | | | KernelScale: 4.3086 | | | | | | | | | | Epsilon: 6.9116 | |===================================================================================================================================================| | Iter | Active | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | workers | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |===================================================================================================================================================| | 51 | 3 | Accept | 2.2728 | 5.7106 | 2.1839 | 2.1984 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 14 | | | | | | | | | | NumVariablesToSample: 5 | | 52 | 6 | Accept | 2.4156 | 4.7264 | 2.1839 | 2.1984 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 24 | | | | | | | | | | NumVariablesToSample: 3 | | 53 | 4 | Accept | 4.1439 | 0.07497 | 2.1839 | 2.1984 | svm | BoxConstraint: 424.87 | | | | | | | | | | KernelScale: 0.41352 | | | | | | | | | | Epsilon: 0.74479 | | 54 | 4 | Accept | 2.3527 | 5.0415 | 2.1839 | 2.1984 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.62721 | | | | | | | | | | MinLeafSize: 3 | | | | | | | | | | NumVariablesToSample: NaN | | 55 | 4 | Accept | 2.5975 | 0.086879 | 2.1839 | 2.1984 | tree | MinLeafSize: 2 | | | | | | | | | | MaxNumSplits: 12 | | | | | | | | | | NumVariablesToSample: 6 | | 56 | 3 | Accept | 4.1439 | 30.921 | 2.1839 | 2.1983 | svm | BoxConstraint: 0.0044643 | | | | | | | | | | KernelScale: 4.2576 | | | | | | | | | | Epsilon: 0.066941 | | 57 | 3 | Accept | 2.2488 | 6.5278 | 2.1839 | 2.1983 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 4 | | | | | | | | | | NumVariablesToSample: 6 | | 58 | 5 | Accept | 2.2375 | 6.3071 | 2.1839 | 2.1982 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 4 | | | | | | | | | | NumVariablesToSample: 6 | | 59 | 5 | Accept | 2.2145 | 5.1044 | 2.1839 | 2.1982 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.13809 | | | | | | | | | | MinLeafSize: 5 | | | | | | | | | | NumVariablesToSample: NaN | | 60 | 2 | Accept | 2.2771 | 5.7956 | 2.1839 | 2.1953 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 2 | | | | | | | | | | NumVariablesToSample: 4 | |===================================================================================================================================================| | Iter | Active | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | workers | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |===================================================================================================================================================| | 61 | 2 | Accept | 2.4755 | 4.7265 | 2.1839 | 2.1953 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 5 | | | | | | | | | | NumVariablesToSample: 1 | | 62 | 2 | Accept | 2.6456 | 0.082657 | 2.1839 | 2.1953 | tree | MinLeafSize: 2 | | | | | | | | | | MaxNumSplits: 36 | | | | | | | | | | NumVariablesToSample: 4 | | 63 | 2 | Accept | 2.5294 | 5.4057 | 2.1839 | 2.1953 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 35 | | | | | | | | | | NumVariablesToSample: 5 | | 64 | 6 | Accept | 2.3409 | 5.5648 | 2.1839 | 2.0591 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 25 | | | | | | | | | | NumVariablesToSample: 6 | | 65 | 2 | Accept | 2.3209 | 7.4037 | 2.1839 | 2.0591 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.016875 | | | | | | | | | | MinLeafSize: 1 | | | | | | | | | | NumVariablesToSample: NaN | | 66 | 2 | Accept | 2.5782 | 5.5342 | 2.1839 | 2.0591 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.015531 | | | | | | | | | | MinLeafSize: 76 | | | | | | | | | | NumVariablesToSample: NaN | | 67 | 2 | Accept | 2.2537 | 7.2619 | 2.1839 | 2.0591 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 6 | | | | | | | | | | NumVariablesToSample: 7 | | 68 | 2 | Accept | 4.1426 | 4.7455 | 2.1839 | 2.0591 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 134 | | | | | | | | | | NumVariablesToSample: 2 | | 69 | 2 | Accept | 2.9366 | 0.094426 | 2.1839 | 2.0591 | tree | MinLeafSize: 8 | | | | | | | | | | MaxNumSplits: 37 | | | | | | | | | | NumVariablesToSample: 1 | | 70 | 6 | Accept | 2.2338 | 5.1862 | 2.1839 | 2.1934 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.17516 | | | | | | | | | | MinLeafSize: 9 | | | | | | | | | | NumVariablesToSample: NaN | |===================================================================================================================================================| | Iter | Active | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | workers | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |===================================================================================================================================================| | 71 | 3 | Accept | 4.143 | 4.4939 | 2.1839 | 2.1968 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.038144 | | | | | | | | | | MinLeafSize: 142 | | | | | | | | | | NumVariablesToSample: NaN | | 72 | 3 | Accept | 4.1439 | 0.076138 | 2.1839 | 2.1968 | svm | BoxConstraint: 131.74 | | | | | | | | | | KernelScale: 0.0031145 | | | | | | | | | | Epsilon: 0.028465 | | 73 | 3 | Accept | 4.143 | 0.074774 | 2.1839 | 2.1968 | tree | MinLeafSize: 156 | | | | | | | | | | MaxNumSplits: 1 | | | | | | | | | | NumVariablesToSample: 5 | | 74 | 3 | Accept | 2.3197 | 5.1527 | 2.1839 | 2.1968 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 9 | | | | | | | | | | NumVariablesToSample: 3 | | 75 | 6 | Accept | 2.5309 | 4.7886 | 2.1839 | 2.1969 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.97421 | | | | | | | | | | MinLeafSize: 13 | | | | | | | | | | NumVariablesToSample: NaN | | 76 | 3 | Accept | 2.2935 | 5.3774 | 2.1839 | 2.1983 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.16149 | | | | | | | | | | MinLeafSize: 30 | | | | | | | | | | NumVariablesToSample: NaN | | 77 | 3 | Accept | 2.3649 | 4.9029 | 2.1839 | 2.1983 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 2 | | | | | | | | | | NumVariablesToSample: 2 | | 78 | 3 | Accept | 3.3541 | 0.065977 | 2.1839 | 2.1983 | tree | MinLeafSize: 79 | | | | | | | | | | MaxNumSplits: 65 | | | | | | | | | | NumVariablesToSample: 3 | | 79 | 3 | Accept | 2.3592 | 5.0572 | 2.1839 | 2.1983 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 1 | | | | | | | | | | NumVariablesToSample: 2 | | 80 | 6 | Accept | 2.4009 | 4.5836 | 2.1839 | 2.1983 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 18 | | | | | | | | | | NumVariablesToSample: 2 | |===================================================================================================================================================| | Iter | Active | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | workers | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |===================================================================================================================================================| | 81 | 2 | Accept | 10.894 | 31.052 | 2.1839 | 2.1983 | svm | BoxConstraint: 0.05924 | | | | | | | | | | KernelScale: 16.477 | | | | | | | | | | Epsilon: 1.204 | | 82 | 2 | Accept | 2.216 | 5.8077 | 2.1839 | 2.1983 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.038621 | | | | | | | | | | MinLeafSize: 2 | | | | | | | | | | NumVariablesToSample: NaN | | 83 | 2 | Accept | 2.2547 | 5.6201 | 2.1839 | 2.1983 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 4 | | | | | | | | | | NumVariablesToSample: 5 | | 84 | 2 | Accept | 4.1439 | 0.11346 | 2.1839 | 2.1983 | svm | BoxConstraint: 230.13 | | | | | | | | | | KernelScale: 15.715 | | | | | | | | | | Epsilon: 425.18 | | 85 | 2 | Accept | 4.1439 | 0.10597 | 2.1839 | 2.1983 | svm | BoxConstraint: 10.758 | | | | | | | | | | KernelScale: 0.020507 | | | | | | | | | | Epsilon: 4.9755 | | 86 | 6 | Accept | 2.219 | 6.1221 | 2.1839 | 2.1981 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.038658 | | | | | | | | | | MinLeafSize: 2 | | | | | | | | | | NumVariablesToSample: NaN | | 87 | 2 | Accept | 2.8447 | 0.17007 | 2.1839 | 2.1981 | svm | BoxConstraint: 0.013729 | | | | | | | | | | KernelScale: 535.02 | | | | | | | | | | Epsilon: 2.1063 | | 88 | 2 | Accept | 4.1439 | 0.079667 | 2.1839 | 2.1981 | svm | BoxConstraint: 0.32731 | | | | | | | | | | KernelScale: 22.615 | | | | | | | | | | Epsilon: 41.604 | | 89 | 2 | Accept | 2.2928 | 4.9488 | 2.1839 | 2.1981 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.26144 | | | | | | | | | | MinLeafSize: 33 | | | | | | | | | | NumVariablesToSample: NaN | | 90 | 2 | Accept | 2.4525 | 0.12704 | 2.1839 | 2.1981 | tree | MinLeafSize: 4 | | | | | | | | | | MaxNumSplits: 92 | | | | | | | | | | NumVariablesToSample: 7 | |===================================================================================================================================================| | Iter | Active | Eval | log(1 + valLoss) | Time for training | Observed min | Estimated min | Learner | Hyperparameter: Value | | | workers | result | | & validation (sec)| log(1 + valLoss) | log(1 + valLoss) | | | |===================================================================================================================================================| | 91 | 2 | Accept | 4.1439 | 0.093014 | 2.1839 | 2.1981 | svm | BoxConstraint: 0.0021134 | | | | | | | | | | KernelScale: 0.001228 | | | | | | | | | | Epsilon: 6.4785 | __________________________________________________________ Optimization completed. Total iterations: 91 Total elapsed time: 235.4082 seconds Total time for training and validation: 426.1606 seconds Best observed learner is an ensemble model with: Method: LSBoost LearnRate: 0.079786 MinLeafSize: 16 NumVariablesToSample: NaN Observed log(1 + valLoss): 2.1839 Time for training and validation: 5.4291 seconds Best estimated learner (returned model) is an ensemble model with: Method: LSBoost LearnRate: 0.079786 MinLeafSize: 16 NumVariablesToSample: NaN Estimated log(1 + valLoss): 2.1981 Estimated time for training and validation: 5.3328 seconds Documentation for fitrauto display
Конечная модель, возвращенная fitrauto
соответствует лучшему оцененному ученику. Перед возвращением модели функция переобучает ее, используя все обучающие данные (carsTrain
), перечисленные Learner
(или модель) тип и отображенные значения гиперзначений параметров.
Создайте простую модель
Создайте простую линейную регрессионую модель linearMdl
при помощи fitlm
функция.
linearMdl = fitlm(carsTrain);
Хотя и linearMdl
объект не имеет точно таких же свойств и методов, как autoMdl
объект, можно использовать обе модели, чтобы предсказать значения отклика для новых данных при помощи predict
функция объекта.
Сравнение эффективности тестового набора моделей
Сравнение эффективности linearMdl
и autoMdl
модели на наборе тестовых данных. Для каждой модели вычислите среднюю квадратичную невязку (MSE) тестового набора. Меньшие значения MSE указывают на лучшую эффективность.
ypred = predict(linearMdl,carsTest);
linearMSE = mean((carsTest.MPG-ypred).^2,'omitnan')
linearMSE = 11.0981
autoMSE = loss(autoMdl,carsTest,'MPG')
autoMSE = 8.8024
The autoMdl
модель, по-видимому, превосходит linearMdl
модель.
Tbl
- Выборочные данныеВыборочные данные, заданный как таблица. Каждая строка Tbl
соответствует одному наблюдению, и каждый столбец соответствует одному предиктору. Опционально Tbl
может содержать один дополнительный столбец для переменной отклика. Многополюсные переменные и массивы ячеек, отличные от массивов ячеек векторов символов, не приняты.
Если Tbl
содержит переменную отклика, и необходимо использовать все оставшиеся переменные в Tbl
в качестве предикторов задайте переменную отклика используя ResponseVarName
.
Если Tbl
содержит переменную отклика, и необходимо использовать только подмножество остальных переменных в Tbl
в качестве предикторов задайте формулу, используя formula
.
Если Tbl
не содержит переменную отклика, задает переменную отклика используя Y
. Длина переменной отклика и количество строк в Tbl
должно быть равным.
Типы данных: table
ResponseVarName
- Имя переменной откликаTbl
Имя переменной отклика, заданное как имя переменной в Tbl
. Переменная отклика должна быть числовым вектором.
Вы должны задать ResponseVarName
как вектор символов или строковый скаляр. Для примера, если переменная отклика Y
хранится как Tbl.Y
, затем укажите его следующим 'Y'
. В противном случае программное обеспечение обрабатывает все столбцы Tbl
, включая Y
, как предикторы при обучении модели.
Типы данных: char
| string
formula
- Объяснительная модель переменной отклика и подмножества переменных предиктораОбъяснительная модель переменной отклика и подмножества переменных предиктора, заданная в виде вектора символов или строкового скаляра в форме 'Y~x1+x2+x3'
. В этой форме Y
представляет переменную отклика, и x1
, x2
, и x3
представляют переменные предиктора.
Чтобы задать подмножество переменных в Tbl
в качестве предикторов для настройки модели используйте формулу. Если вы задаете формулу, то программное обеспечение не использует никаких переменных в Tbl
которые не появляются в formula
.
Имена переменных в формуле должны быть обоими именами переменных в Tbl
(Tbl.Properties.VariableNames
) и действительный MATLAB® идентификаторы. Можно проверить имена переменных в Tbl
при помощи isvarname
функция. Если имена переменных недопустимы, можно преобразовать их, используя matlab.lang.makeValidName
функция.
Типы данных: char
| string
Y
- Данные откликаДанные отклика, заданные как числовой вектор. Длина Y
должно быть равно количеству строк в Tbl
или X
.
Чтобы задать имя переменной отклика, используйте ResponseName
аргумент пары "имя-значение".
Типы данных: single
| double
X
- Данные предиктораДанные предиктора, заданные как числовая матрица.
Каждая строка X
соответствует одному наблюдению, и каждый столбец соответствует одному предиктору.
Длина Y
и количество строк в X
должно быть равным.
Чтобы задать имена предикторов в порядке их внешнего вида в X
, используйте PredictorNames
аргумент пары "имя-значение".
Типы данных: single
| double
Примечание
Программное обеспечение лечит NaN
, пустой символьный вектор (''
), пустая строка (""
), <missing>
, и <undefined>
элементы как отсутствующие данные. Программа удаляет строки данных, соответствующих отсутствующим значениям в переменной отклика. Однако обработка отсутствующих значений в данных предиктора X
или Tbl
варьируется среди моделей (или учащихся).
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
'HyperparameterOptimizationOptions',struct('MaxObjectiveEvaluations',200,'Verbose',2)
задает, чтобы запустить 200 итераций процесса оптимизации (то есть попробовать 200 комбинаций гиперпараметров модели) и отобразить в Командном окне информацию о следующей комбинации гиперпараметров модели, которая будет оценена.'Learners'
- Типы регрессионных моделей'auto'
(по умолчанию) | 'all'
| 'all-linear'
| 'all-nonlinear'
| одно или несколько имен учащихсяТипы регрессионных моделей, чтобы попытаться во время оптимизации, заданные как разделенная разделенными запятой парами, состоящая из 'Learners'
и значение в первой таблице ниже или одно или несколько имен учащихся во второй таблице. Задайте несколько имен учащихся в виде строки или массива ячеек.
Значение | Описание |
---|---|
'auto' | fitrauto автоматически выбирает подмножество учащихся, подходящее для заданных данных предиктора и отклика. Ученики могут иметь значения гиперзначений параметров модели, которые отличаются от значений по умолчанию. Для получения дополнительной информации смотрите Автоматический выбор учащихся. |
'all' | fitrauto выбирает всех возможных учащихся. |
'all-linear' | fitrauto выбирает линейный ('linear' ) учащиеся. |
'all-nonlinear' | fitrauto выбирает всех нелинейных учащихся: 'ensemble' , 'gp' , 'kernel' , 'svm' (с Гауссовым или полиномиальным ядром), и 'tree' . |
Примечание
Для большей эффективности, fitrauto
не выбирает следующие комбинации моделей, когда задается одно из предыдущих значений.
'kernel'
и 'svm'
(с гауссовым ядром) - fitrauto
выбирает первое, когда данные предиктора имеют более 11000 наблюдений, и второе в противном случае.
'linear'
и 'svm'
(с линейным ядром) - fitrauto
выбирает первый.
Имя учащегося | Описание |
---|---|
'ensemble' | Модель регрессии ансамбля |
'gp' | Гауссовская регрессионая модель процесса |
'kernel' | Модель регрессии ядра |
'linear' | Линейная регрессионая модель для высоко-размерных данных |
'svm' | Машина опорных векторов |
'tree' | Бинарное дерево регрессии принятия решений |
Пример: 'Learners','all'
Пример: 'Learners','ensemble'
Пример: 'Learners',{'gp','svm'}
'OptimizeHyperparameters'
- Гиперпараметры для оптимизации'auto'
(по умолчанию) | 'all'
Гиперпараметры для оптимизации, заданные как разделенная разделенными запятой парами, состоящая из 'OptimizeHyperparameters'
и 'auto'
или 'all'
. Оптимизируемые гиперпараметры зависят от модели (или учащегося), как описано в этой таблице.
Имя учащегося | Гиперпараметры для 'auto' | Дополнительные гиперпараметры для 'all' | Примечания |
---|---|---|---|
'ensemble' | Method , NumLearningCycles , LearnRate , MinLeafSize | MaxNumSplits , NumVariablesToSample | Когда ансамбль Для получения дополнительной информации, включая области значений поиска гиперпараметра, смотрите |
'gp' | Sigma | BasisFunction , KernelFunction , KernelScale (KernelParameters ), Standardize | Для получения дополнительной информации, включая области значений поиска гиперпараметра, смотрите |
'kernel' | Epsilon , KernelScale , Lambda | Learner , NumExpansionDimensions | Для получения дополнительной информации, включая области значений поиска гиперпараметра, смотрите OptimizeHyperparameters . Обратите внимание, что вы не можете изменить области значений поиска гиперпараметра, когда используете fitrauto . |
'linear' | Lambda , Learner | Regularization | Для получения дополнительной информации, включая области значений поиска гиперпараметра, смотрите OptimizeHyperparameters . Обратите внимание, что вы не можете изменить области значений поиска гиперпараметра, когда используете fitrauto . |
'svm' | BoxConstraint , Epsilon , KernelScale | KernelFunction , PolynomialOrder , Standardize |
Для получения дополнительной информации, включая области значений поиска гиперпараметра, смотрите |
'tree' | MinLeafSize | MaxNumSplits | Для получения дополнительной информации, включая области значений поиска гиперпараметра, смотрите OptimizeHyperparameters . Обратите внимание, что вы не можете изменить области значений поиска гиперпараметра, когда используете fitrauto . |
Примечание
Когда 'Learners'
задано значение, отличное от 'auto'
значения по умолчанию для не оптимизируемых гиперпараметров модели соответствуют значениям функции подгонки по умолчанию, если иное не указано в примечаниях к таблице. Когда 'Learners'
установлено в 'auto'
оптимизированные области значений поиска гиперпараметра и неоптимизированные значения гиперзначений параметров могут варьироваться, в зависимости от характеристик обучающих данных. Для получения дополнительной информации смотрите Автоматический выбор учащихся.
Пример: 'OptimizeHyperparameters','all'
'HyperparameterOptimizationOptions'
- Опции для оптимизацииОпции оптимизации, заданные как разделенная разделенными запятой парами, состоящая из 'HyperparameterOptimizationOptions'
и структуру. Все поля в структуре являются необязательными.
Имя поля | Значения | Дефолт |
---|---|---|
MaxObjectiveEvaluations | Максимальное количество итераций (целевые вычисления функции) | 30*L , где L количество учащихся (см. Learners ) |
MaxTime | Временные пределы, заданные как положительное вещественное число. Предел времени в секундах, что измеряется | Inf |
ShowPlots | Логическое значение, указывающее, показывать ли графики. Если true , это поле строит графики наилучших наблюдаемых и оцененных значений целевой функции (пока) относительно числа итерации. | true |
SaveIntermediateResults | Логическое значение, указывающее, сохранять ли результаты. Если true , это поле перезаписывает переменную рабочей области с именем 'BayesoptResults' при каждой итерации. Переменная является BayesianOptimization объект. | false |
Verbose | Отображение в командной строке:
| 1 |
UseParallel | Логическое значение, указывающее, запускать ли байесовскую оптимизацию параллельно, что требует Parallel Computing Toolbox™. Из-за непродуктивности параллельной синхронизации параллельная байесовская оптимизация не обязательно приводит к воспроизводимым результатам. | false |
Repartition | Логическое значение, указывающее, следует ли повторять перекрестную валидацию при каждой итерации. Если
| false |
Задайте только одну из следующих трех опций. | ||
CVPartition | cvpartition объект, созданный cvpartition | 'Kfold',5 если вы не задаете какое-либо поле перекрестной проверки |
Holdout | Скаляр в области значений (0,1) представляющий фракцию holdout | |
Kfold | Целое число, больше 1 |
Пример: 'HyperparameterOptimizationOptions',struct('UseParallel',true)
'CategoricalPredictors'
- Категориальный список предикторов'all'
Категориальный список предикторов, заданный как одно из значений в этой таблице.
Значение | Описание |
---|---|
Вектор положительных целых чисел |
Каждая запись в векторе является индексом значением, соответствующим столбцу данных предиктора, который содержит категориальную переменную. Значения индекса находятся между 1 и Если |
Логический вектор |
A |
Матрица символов | Каждая строка матрицы является именем переменной. Имена должны совпадать с записями в PredictorNames . Дополните имена дополнительными пробелами, чтобы каждая строка матрицы символов имела одинаковую длину. |
Строковые массивы или массив ячеек векторов символов | Каждый элемент массива является именем переменной. Имена должны совпадать с записями в PredictorNames . |
'all' | Все предикторы категоричны. |
По умолчанию, если данные предиктора находятся в таблице (Tbl
), fitrauto
принимает, что переменная категориальна, если это логический вектор, категориальный вектор, символьный массив, строковые массивы или массив ячеек из векторов символов. Однако ученики, которые используют деревья решений, предполагают, что математически упорядоченные категориальные векторы являются непрерывными переменными. Если данные предиктора являются матрицей (X
), fitrauto
принимает, что все предикторы непрерывны. Чтобы идентифицировать любые другие предикторы как категориальные предикторы, задайте их с помощью 'CategoricalPredictors'
аргумент пары "имя-значение".
Для получения дополнительной информации о том, как подгоняющие функции относятся к категориальным предикторам, смотрите Автоматическое создание переменных Dummy.
Пример: 'CategoricalPredictors','all'
Типы данных: single
| double
| logical
| char
| string
| cell
'PredictorNames'
- Имена переменных предиктораИмена переменных предиктора, заданные как строковые массивы уникальных имен или массив ячеек из уникальных векторов символов. Функциональность PredictorNames
зависит от способа предоставления обучающих данных.
Если вы поставляете X
и Y
, тогда можно использовать PredictorNames
для назначения имен переменным предиктора в X
.
Порядок имен в PredictorNames
должен соответствовать порядку столбцов X
. То есть PredictorNames{1}
- имя X(:,1)
, PredictorNames{2}
- имя X(:,2)
и так далее. Кроме того, size(X,2)
и numel(PredictorNames)
должно быть равным.
По умолчанию PredictorNames
является {'x1','x2',...}
.
Если вы поставляете Tbl
, тогда можно использовать PredictorNames
выбрать, какие переменные предиктора использовать в обучении. То есть, fitrauto
использует только переменные предиктора в PredictorNames
и переменной отклика во время обучения.
PredictorNames
должен быть подмножеством Tbl.Properties.VariableNames
и не может включать имя переменной отклика.
По умолчанию PredictorNames
содержит имена всех переменных предиктора.
Хорошей практикой является определение предикторов для обучения с использованием любой из 'PredictorNames'
или formula
, но не то и другое.
Пример: 'PredictorNames',{'SepalLength','SepalWidth','PetalLength','PetalWidth'}
Типы данных: string
| cell
'ResponseName'
- Имя переменной отклика'Y'
(по умолчанию) | символьный вектор | строковый скалярИмя переменной отклика, заданное как вектор символов или строковый скаляр.
Если вы поставляете Y
, тогда можно использовать 'ResponseName'
чтобы задать имя для переменной отклика.
Если вы поставляете ResponseVarName
или formula
, тогда вы не можете использовать 'ResponseName'
.
Пример: 'ResponseName','response'
Типы данных: char
| string
'Weights'
- Веса наблюденийTbl
Веса наблюдений, заданные как разделенная разделенными запятой парами, состоящая из 'Weights'
и положительный числовой вектор или имя переменной в Tbl
. Программа взвешивает каждое наблюдение в X
или Tbl
с соответствующим значением в Weights
. Длина Weights
должно равняться количеству строк в X
или Tbl
.
Если вы задаете входные данные как таблицу Tbl
, затем Weights
может быть именем переменной в Tbl
который содержит числовой вектор. В этом случае необходимо задать Weights
как вектор символов или строковый скаляр. Для примера, если вектор весов W
хранится как Tbl.W
, затем укажите его следующим 'W'
. В противном случае программное обеспечение обрабатывает все столбцы Tbl
, включая W
, как предикторы или переменная отклика при обучении модели.
По умолчанию Weights
является ones(n,1)
, где n
количество наблюдений в X
или Tbl
.
Программное обеспечение нормализует Weights
в сумму до 1.
Типы данных: single
| double
| char
| string
Mdl
- Обученная регрессионая модельОбученная регрессионая модель, возвращенная как один из объектов регрессионой модели в этой таблице.
Имя учащегося | Возвращенный объект модели |
---|---|
'ensemble' | CompactRegressionEnsemble |
'gp' | CompactRegressionGP |
'kernel' | RegressionKernel |
'linear' | RegressionLinear |
'svm' | CompactRegressionSVM |
'tree' | CompactRegressionTree |
OptimizationResults
- Результаты оптимизацииBayesianOptimization
объектРезультаты оптимизации, возвращенные как BayesianOptimization
объект. Для получения дополнительной информации о процессе оптимизации Байеса, см. Bayesian Optimization.
Когда вы устанавливаете Verbose
поле HyperparameterOptimizationOptions
аргумент пары "имя-значение" в 1
или 2
, fitrauto
функция обеспечивает итерационное отображение результатов оптимизации.
В следующей таблице описываются столбцы на отображении и их значения.
Имя столбца | Описание |
---|---|
Iter | Число итерации - можно задать предел на количество итераций при помощи MaxObjectiveEvaluations поле 'HyperparameterOptimizationOptions' аргумент пары "имя-значение". |
Active workers | Количество активных параллельных рабочих - Этот столбец появляется только, когда вы запускаете оптимизацию параллельно путем установки UseParallel поле 'HyperparameterOptimizationOptions' аргумент пары "имя-значение" в true . |
Eval result | Один из следующих результатов оценки:
|
log(1 + valLoss) | Логарифмические потери валидации, вычисленные для значений учащегося и гиперзначений параметров в этой итерации - в частности, fitrauto вычисляет журнал ( 1 + valLoss), где valLoss является средней квадратичной невязкой перекрестной валидации (MSE) по умолчанию. Изменить схему валидации можно при помощи CVPartition , Holdout , или Kfold поле 'HyperparameterOptimizationOptions' аргумент пары "имя-значение". |
Time for training & validation (sec) | Время, затраченное на обучение и вычисление потерь валидации для модели со значениями обучающегося и гиперзначений параметров на этой итерации (в секундах) - в частности, это значение исключает время, необходимое для обновления модели целевой функции, поддерживаемой байесовским процессом оптимизации. Для получения дополнительной информации см. «Байесовская оптимизация». |
Observed min log(1 + valLoss) | Наблюдаемые минимальные логарифмические потери на валидацию, вычисленные до сих пор - Это значение соответствует наименьшему По умолчанию, |
Estimated min log(1 + valLoss) | Предполагаемые минимальные логарифмические потери на валидацию - при каждой итерации, По умолчанию, |
Learner | Тип модели, оцененный на этой итерации - Задайте учащихся, используемых в оптимизации, используя 'Learners' аргумент пары "имя-значение". |
Hyperparameter: Value | Гиперзначения параметров в этой итерации - задайте гиперпараметры, используемые в оптимизации, используя 'OptimizeHyperparameters' аргумент пары "имя-значение". |
Также отображение включает описание двух моделей:
Best observed learner
- Эта модель с перечисленными типом учащегося и значениями гиперзначений параметров приводит к окончательной наблюдаемой минимальной потере валидации (логарифмической).
Best estimated learner
- Эта модель с перечисленными типом учащегося и значениями гиперзначений параметров приводит к окончательной предполагаемой минимальной потере валидации (логарифмической). fitrauto
переобучает модель на целом наборе обучающих данных и возвращает ее как Mdl
выход.
В зависимости от размера ваших данных и количества учащихся, которые вы задаете, fitrauto
может занять некоторое время, чтобы запустить. Если у вас есть лицензия Parallel Computing Toolbox, можно ускорить расчеты, запустив оптимизацию параллельно. Для этого задайте 'HyperparameterOptimizationOptions',struct('UseParallel',true)
. Можно включать другие поля в структуру для управления другими аспектами оптимизации. См. HyperparameterOptimizationOptions
.
Когда вы задаете 'Learners','auto'
, fitrauto
Функция анализирует предиктор и данные отклика в порядок, чтобы выбрать соответствующих учащихся. Функция рассматривает, имеет ли набор данных какую-либо из следующих характеристик:
Категориальные предикторы
Отсутствующие значения для более чем 5% данных
Широкие данные, где количество предикторов больше или равно количеству наблюдений
Высокомерные данные, где количество предикторов больше 100
Большие данные, где количество наблюдений больше 50 000
Выбранные ученики всегда являются подмножеством из перечисленных в Learners
таблица. Однако связанные модели, попробованные в процессе оптимизации, могут иметь различные значения по умолчанию для гиперпараметров, не оптимизируемых, а также различные области значений поиска для оптимизируемых гиперпараметров.
Цель байесовской оптимизации и оптимизации в целом состоит в том, чтобы найти точку, которая минимизирует целевую функцию. В контексте fitrauto
, точка является типом обучающегося вместе с набором значений гиперзначений параметров для обучающегося (см Learners
и OptimizeHyperparameters
), и целевой функцией является журнал ( 1 + valLoss), где valLoss является средней квадратичной невязкой перекрестной валидации (MSE), по умолчанию. Байесовская оптимизация реализована вfitrauto
внутренне поддерживает мульти- RegressionGP
модель целевой функции. То есть модель целевой функции разделяется вдоль типа учащегося, и, для данного обучающегося, модель является моделью регрессии Гауссова процесса (GPR). (Эта базовая модель отличается от одной модели GPR, используемой другими функциями Statistics and Machine Learning Toolbox™, которые используют байесовскую оптимизацию.) Байесовская оптимизация обучает базовую модель с помощью вычислений целевой функции и определяет следующую точку для оценки с помощью функции приобретения ('expected-improvement'
). Для получения дополнительной информации см. «Ожидаемое улучшение». Функция сбора балансирует между дискретизацией в точках с низкими смоделированными значениями целевой функции и исследованием областей, которые еще не хорошо смоделированы. В конце оптимизации, fitrauto
выбирает точку с минимальным значением модели целевой функции, среди точек, оцененных во время оптимизации. Для получения дополнительной информации смотрите 'Criterion','min-visited-mean'
Аргумент пары "имя-значение" из bestPoint
.
Если вы не уверены, какие модели работают лучше всего для вашего набора данных, можно также использовать приложение Regression Learner. Используя приложение, можно выполнить настройку гиперпараметра для различных моделей и выбрать оптимизированную модель, которая работает лучше всего. Несмотря на то, что перед настройкой гиперпараметров модели необходимо выбрать конкретную модель, Regression Learner обеспечивает большую гибкость для выбора оптимизируемых гиперпараметров и настройки значений гиперзначений параметров. Приложение также позволяет вам обучать различные линейные регрессионые модели (см. Линейные регрессионые модели). Однако вы не можете оптимизировать параллельно, выберите 'linear'
или 'kernel'
учащиеся, или укажите веса наблюдений в приложении. Для получения дополнительной информации см. «Оптимизация гипероптимизации параметров управления» в приложении Regression Learner.
Если вы знаете, какие модели могут удовлетворить вашим данным, можно также использовать соответствующие функции подгонки модели и задать 'OptimizeHyperparameters'
аргумент пары "имя-значение" для настройки гиперпараметров. Можно сравнить результаты по моделям, чтобы выбрать лучшую регрессионую модель. Для примера этого процесса, примененного к классификационным моделям, смотрите Движение к Автоматизации Выбора Модели Используя Байесову Оптимизацию.
Чтобы выполнить параллельную оптимизацию гипероптимизации параметров управления, используйте 'HyperparameterOptimizationOptions',struct('UseParallel',true)
аргумент пары "имя-значение" в вызове этой функции.
Для получения дополнительной общей информации о параллельных вычислениях смотрите Запуск функций MATLAB с поддержкой автоматических параллелей (Parallel Computing Toolbox).
fitrensemble
| fitrgp
| fitrkernel
| fitrlinear
| fitrsvm
| fitrtree
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.