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