Автоматический выбор регрессионной модели с оптимизированными гиперпараметрами
Данные предиктора и ответа, fitrauto автоматически пытается выбрать типы регрессионных моделей с различными значениями гиперпараметров. Функция использует байесовскую оптимизацию для выбора моделей и их значений гиперпараметров и вычисляет для каждой модели следующее: log ( 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, a 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 с наилучшей ожидаемой производительностью. Укажите категориальные предикторы и запустите оптимизацию параллельно (требуется 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 с наилучшей ожидаемой производительностью. Укажите, следует ли оптимизировать все оптимизируемые гиперпараметры и выполнять оптимизацию параллельно (требуется 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
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 выбирает первое, когда данные предиктора имеют более 11 000 наблюдений, и второе в противном случае.
'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 | Логическое значение, указывающее, выполнять ли байесовскую оптимизацию параллельно, что требует Toolbox™ параллельных вычислений. Из-за непродуктивности параллельной синхронизации параллельная байесовская оптимизация не обязательно дает воспроизводимые результаты. | false |
Repartition | Логическое значение, указывающее, следует ли перераспределять перекрестную проверку при каждой итерации. Если
| false |
| Укажите только одну из следующих трех опций. | ||
CVPartition | cvpartition объект, созданный cvpartition | 'Kfold',5 если не указано какое-либо поле перекрестной проверки |
Holdout | Скаляр в диапазоне (0,1) представление доли удержания | |
Kfold | Целое число больше 1 | |
Пример: 'HyperparameterOptimizationOptions',struct('UseParallel',true)
'CategoricalPredictors' - Список категориальных предикторов'all'Список категориальных предикторов, указанный как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
| Вектор положительных целых чисел |
Каждая запись в векторе представляет собой значение индекса, соответствующее столбцу данных предиктора, который содержит категориальную переменную. Значения индекса находятся в диапазоне от 1 до Если |
| Логический вектор |
A |
| Символьная матрица | Каждая строка матрицы является именем предикторной переменной. Имена должны соответствовать записям в PredictorNames. Поместите имена с дополнительными пробелами, чтобы каждая строка символьной матрицы имела одинаковую длину. |
| Строковый массив или массив ячеек символьных векторов | Каждый элемент массива является именем переменной предиктора. Имена должны соответствовать записям в PredictorNames. |
'all' | Все предикторы категоричны. |
По умолчанию, если данные предиктора находятся в таблице (Tbl), fitrauto предполагает, что переменная категорична, если она является логическим вектором, категориальным вектором, символьным массивом, строковым массивом или массивом ячеек символьных векторов. Однако ученики, которые используют деревья решений, предполагают, что математически упорядоченные категориальные векторы являются непрерывными переменными. Если данные предиктора являются матрицей (X), fitrauto предполагает, что все предикторы непрерывны. Чтобы определить любые другие предикторы как категориальные предикторы, укажите их с помощью 'CategoricalPredictors' аргумент пары имя-значение.
Дополнительные сведения о том, как функции подгонки относятся к категориальным предикторам, см. в разделе Автоматическое создание фиктивных переменных.
Пример: '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 объект. Дополнительные сведения о процессе байесовской оптимизации см. в разделе Байесовская оптимизация.
При установке Verbose области HyperparameterOptimizationOptions аргумент пары имя-значение для 1 или 2, fitrauto функция обеспечивает итеративное отображение результатов оптимизации.
В следующей таблице описаны столбцы на экране и их записи.
| Имя столбца | Описание |
|---|---|
Iter | Номер итерации (Iteration number) - можно задать ограничение числа итераций с помощью 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 - Эта модель с перечисленными значениями типа учащегося и гиперпараметра дает окончательную наблюдаемую минимальную потерю валидации (log-transformed).
Best estimated learner - Эта модель с перечисленным типом учащегося и значениями гиперпараметра дает окончательную оценочную минимальную валидационную потерю (log-transformed). fitrauto переквалифицирует модель по всему набору данных обучения и возвращает ее в виде Mdl выход.
В зависимости от размера ваших данных и указанного количества учащихся, fitrauto может занять некоторое время, чтобы бежать. При наличии лицензии Parallel Computing Toolbox можно ускорить вычисления путем параллельного выполнения оптимизации. Для этого укажите 'HyperparameterOptimizationOptions',struct('UseParallel',true). Для управления другими аспектами оптимизации в структуру можно включить другие поля. Посмотрите HyperparameterOptimizationOptions.
При указании 'Learners','auto', fitrauto функция анализирует данные предиктора и ответа, чтобы выбрать подходящих учеников. Функция определяет, имеет ли набор данных какой-либо из следующих признаков:
Категориальные предикторы
Отсутствующие значения для более чем 5% данных
Широкие данные, где количество предикторов больше или равно количеству наблюдений
Высокомерные данные, где число предикторов больше 100
Большие данные, где число наблюдений превышает 50 000
Выбранные учащиеся всегда являются подмножеством учащихся, перечисленных в Learners таблица. Тем не менее, связанные модели, опробованные в процессе оптимизации, могут иметь различные значения по умолчанию для гиперпараметров, которые не оптимизируются, а также различные диапазоны поиска для гиперпараметров, которые оптимизируются.
Цель байесовской оптимизации и оптимизации в целом - найти точку, минимизирующую объективную функцию. В контексте fitrauto, точка - это тип учащегося вместе с набором значений гиперпараметров для учащегося (см. Learners и OptimizeHyperparameters), а целевой функцией является log ( 1 + valLoss), где valLoss - среднеквадратическая ошибка (MSE) перекрестной проверки по умолчанию. Байесовская оптимизация, реализованная вfitrauto внутренне поддерживает много-RegressionGP модель целевой функции. То есть модель целевой функции разделяется по типу учащегося, и для данного учащегося модель является моделью регрессии гауссова процесса (GPR). (Эта базовая модель отличается от модели GPR, используемой другими функциями Toolbox™ статистики и машинного обучения, которые используют байесовскую оптимизацию.) Байесовская оптимизация обучает базовую модель с помощью оценок целевой функции и определяет следующую точку для оценки с помощью функции сбора ('expected-improvement'). Дополнительные сведения см. в разделе Ожидаемое улучшение. Функция сбора данных балансирует между выборкой в точках с низкими смоделированными значениями целевой функции и изучением областей, которые еще плохо смоделированы. В конце оптимизации fitrauto выбирает точку с минимальным значением модели целевой функции среди точек, оцененных в ходе оптимизации. Дополнительные сведения см. в разделе 'Criterion','min-visited-mean' аргумент пары имя-значение bestPoint.
Если вы не уверены, какие модели лучше всего подходят для вашего набора данных, вы можете также использовать приложение «Обучающийся регрессии». С помощью приложения вы можете выполнить гиперпараметрическую настройку для различных моделей и выбрать оптимальную модель, которая работает лучше всего. Несмотря на то, что перед настройкой гиперпараметров модели необходимо выбрать определенную модель, функция «Обучение регрессии» обеспечивает большую гибкость при выборе оптимизируемых гиперпараметров и установке значений гиперпараметров. Приложение также позволяет обучать различные модели линейной регрессии (см. Модели линейной регрессии). Однако параллельно оптимизировать нельзя, выберите 'linear' или 'kernel' учащиеся или укажите веса наблюдений в приложении. Дополнительные сведения см. в разделе Оптимизация гиперпараметров в приложении для учащихся с регрессией.
Если известно, какие модели могут соответствовать данным, можно также использовать соответствующие функции аппроксимации модели и указать 'OptimizeHyperparameters' аргумент пары имя-значение для настройки гиперпараметров. Можно сравнить результаты по моделям, чтобы выбрать лучшую регрессионную модель. Пример этого процесса, применяемого к классификационным моделям, см. в разделе Переход к автоматизации выбора модели с использованием байесовской оптимизации.
Чтобы выполнить параллельную оптимизацию гиперпараметров, используйте 'HyperparameterOptimizationOptions',struct('UseParallel',true) аргумент пары имя-значение в вызове этой функции.
Дополнительные общие сведения о параллельных вычислениях см. в разделе Запуск функций MATLAB с автоматической параллельной поддержкой (панель инструментов параллельных вычислений).
fitrensemble | fitrgp | fitrkernel | fitrlinear | fitrsvm | fitrtree
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.