Автоматически выберите модель регрессии оптимизированными гиперпараметрами
Учитывая предиктор и данные об ответе, fitrauto
автоматически пробует выбор типов модели регрессии с различными гиперзначениями параметров. По умолчанию функция использует Байесовую оптимизацию, чтобы выбрать модели и их гиперзначения параметров, и вычисляет следующее для каждой модели: журнал (1 + valLoss), где valLoss является среднеквадратической ошибкой (MSE) перекрестной проверки. После того, как оптимизация завершена, fitrauto
возвращает модель, обученную на целом наборе данных, который, как ожидают, лучше всего предскажет ответы для новых данных. Можно использовать predict
и loss
объектные функции возвращенной модели, чтобы предсказать на новых данных и вычислить набор тестов MSE, соответственно.
Использование fitrauto
когда вы не уверены, какие типы модели лучше всего удовлетворяют вашим данным. Для получения информации об альтернативных методах для настройки гиперпараметров моделей регрессии см. альтернативную функциональность.
Если ваши данные содержат более чем 10 000 наблюдений, рассмотрите использование асинхронного последовательного алгоритма сокращения вдвое (ASHA) вместо Байесовой оптимизации, когда вы запускаетесь fitrauto
. Оптимизация ASHA часто находит хорошие решения быстрее, чем Байесова оптимизация для наборов данных со многими наблюдениями.
возвращает модель Mdl
= fitrauto(Tbl
,ResponseVarName
)Mdl
регрессии настроенными гиперпараметрами. Таблица
Tbl
содержит переменные предикторы и переменную отклика, где ResponseVarName
имя переменной отклика.
задает опции с помощью одних или нескольких аргументов name-value в дополнение к любой из комбинаций входных аргументов в предыдущих синтаксисах. Например, используйте Mdl
= fitrauto(___,Name,Value
)HyperparameterOptimizationOptions
аргумент значения имени, чтобы задать, использовать ли Байесовую оптимизацию (значение по умолчанию) или асинхронный последовательный алгоритм сокращения вдвое (ASHA). Чтобы использовать оптимизацию ASHA, задайте "HyperparameterOptimizationOptions",struct("Optimizer","asha")
. Можно включать дополнительные поля в структуру, чтобы управлять другими аспектами оптимизации.
[
также возвращает Mdl
,OptimizationResults
] = fitrauto(___)OptimizationResults
, который содержит результаты выбора модели и настраивающего процесса гиперпараметра. Этим выходом является BayesianOptimization
возразите, когда вы используете Байесовую оптимизацию и таблицу, когда вы используете оптимизацию ASHA.
Используйте 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 | 0.42811 | 2.5161 | 2.5161 | tree | MinLeafSize: 6 | | 2 | Accept | 4.1439 | 0.31653 | 2.5161 | 2.5161 | svm | BoxConstraint: 336.91 | | | | | | | | | KernelScale: 0.0018275 | | | | | | | | | Epsilon: 0.1074 | | 3 | Accept | 4.144 | 6.1354 | 2.5161 | 2.5161 | ensemble | Method: Bag | | | | | | | | | NumLearningCycles: 257 | | | | | | | | | MinLeafSize: 156 | | 4 | Accept | 3.1976 | 21.572 | 2.5161 | 2.5161 | svm | BoxConstraint: 0.033502 | | | | | | | | | KernelScale: 153.38 | | | | | | | | | Epsilon: 0.093672 | | 5 | Best | 2.5041 | 0.098707 | 2.5041 | 2.5101 | tree | MinLeafSize: 5 | | 6 | Best | 2.173 | 8.434 | 2.173 | 2.2138 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 287 | | | | | | | | | MinLeafSize: 1 | | 7 | Accept | 2.7182 | 0.10727 | 2.173 | 2.2138 | tree | MinLeafSize: 1 | | 8 | Accept | 17.207 | 24.418 | 2.173 | 2.2138 | svm | BoxConstraint: 196.73 | | | | | | | | | KernelScale: 34.789 | | | | | | | | | Epsilon: 0.03716 | | 9 | Accept | 4.1439 | 0.08053 | 2.173 | 2.2138 | svm | BoxConstraint: 346.92 | | | | | | | | | KernelScale: 0.032493 | | | | | | | | | Epsilon: 0.23974 | | 10 | Accept | 2.2139 | 7.9036 | 2.173 | 2.1945 | 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.10655 | 2.173 | 2.1945 | svm | BoxConstraint: 0.033068 | | | | | | | | | KernelScale: 585.38 | | | | | | | | | Epsilon: 4.6993 | | 12 | Accept | 4.1439 | 0.060722 | 2.173 | 2.1945 | svm | BoxConstraint: 48.997 | | | | | | | | | KernelScale: 0.0045904 | | | | | | | | | Epsilon: 18.085 | | 13 | Accept | 4.1439 | 0.079298 | 2.173 | 2.1945 | svm | BoxConstraint: 985.69 | | | | | | | | | KernelScale: 0.0010988 | | | | | | | | | Epsilon: 449.48 | | 14 | Accept | 2.2801 | 8.2142 | 2.173 | 2.1824 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 287 | | | | | | | | | MinLeafSize: 63 | | 15 | Accept | 4.1439 | 0.075809 | 2.173 | 2.1824 | svm | BoxConstraint: 0.010812 | | | | | | | | | KernelScale: 1.2015 | | | | | | | | | Epsilon: 0.034209 | | 16 | Accept | 4.1439 | 0.061902 | 2.173 | 2.1824 | svm | BoxConstraint: 0.0021787 | | | | | | | | | KernelScale: 0.018209 | | | | | | | | | Epsilon: 443.71 | | 17 | Accept | 2.2159 | 7.9406 | 2.173 | 2.1777 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 283 | | | | | | | | | MinLeafSize: 17 | | 18 | Accept | 2.6056 | 0.091476 | 2.173 | 2.1777 | tree | MinLeafSize: 2 | | 19 | Accept | 2.6056 | 0.13203 | 2.173 | 2.1777 | tree | MinLeafSize: 2 | | 20 | Accept | 2.7182 | 0.087514 | 2.173 | 2.1777 | 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.1763 | 7.9262 | 2.173 | 2.17 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 282 | | | | | | | | | MinLeafSize: 2 | | 22 | Accept | 2.6056 | 0.077927 | 2.173 | 2.17 | tree | MinLeafSize: 2 | | 23 | Accept | 2.3016 | 5.2336 | 2.173 | 2.1774 | ensemble | Method: Bag | | | | | | | | | NumLearningCycles: 202 | | | | | | | | | MinLeafSize: 9 | | 24 | Accept | 4.1439 | 0.073168 | 2.173 | 2.1774 | svm | BoxConstraint: 37.028 | | | | | | | | | KernelScale: 0.033731 | | | | | | | | | Epsilon: 0.2457 | | 25 | Accept | 3.352 | 0.049267 | 2.173 | 2.1774 | tree | MinLeafSize: 122 | | 26 | Accept | 4.1439 | 0.060427 | 2.173 | 2.1774 | svm | BoxConstraint: 0.01045 | | | | | | | | | KernelScale: 0.0024261 | | | | | | | | | Epsilon: 12.355 | | 27 | Accept | 2.3188 | 5.9728 | 2.173 | 2.1761 | ensemble | Method: Bag | | | | | | | | | NumLearningCycles: 212 | | | | | | | | | MinLeafSize: 2 | | 28 | Accept | 2.4075 | 5.8104 | 2.173 | 2.1765 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 247 | | | | | | | | | MinLeafSize: 83 | | 29 | Accept | 2.6056 | 0.098163 | 2.173 | 2.1765 | tree | MinLeafSize: 2 | | 30 | Accept | 4.1439 | 0.070094 | 2.173 | 2.1765 | 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.049706 | 2.173 | 2.1765 | tree | MinLeafSize: 8 | | 32 | Accept | 2.6443 | 4.9903 | 2.173 | 2.1764 | ensemble | Method: Bag | | | | | | | | | NumLearningCycles: 229 | | | | | | | | | MinLeafSize: 52 | | 33 | Accept | 2.241 | 5.9324 | 2.173 | 2.175 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 235 | | | | | | | | | MinLeafSize: 26 | | 34 | Accept | 2.5448 | 0.046743 | 2.173 | 2.175 | tree | MinLeafSize: 19 | | 35 | Accept | 2.4438 | 0.068662 | 2.173 | 2.175 | tree | MinLeafSize: 13 | | 36 | Accept | 2.7182 | 0.076403 | 2.173 | 2.175 | tree | MinLeafSize: 1 | | 37 | Accept | 2.4749 | 0.047877 | 2.173 | 2.175 | tree | MinLeafSize: 9 | | 38 | Accept | 13.083 | 30.935 | 2.173 | 2.175 | svm | BoxConstraint: 5.2568 | | | | | | | | | KernelScale: 10.811 | | | | | | | | | Epsilon: 0.073361 | | 39 | Accept | 2.2349 | 5.6292 | 2.173 | 2.1758 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 214 | | | | | | | | | MinLeafSize: 4 | | 40 | Accept | 3.0919 | 0.044015 | 2.173 | 2.1758 | 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.4037 | 2.173 | 2.1735 | ensemble | Method: Bag | | | | | | | | | NumLearningCycles: 280 | | | | | | | | | MinLeafSize: 45 | | 42 | Accept | 4.1439 | 0.077174 | 2.173 | 2.1735 | svm | BoxConstraint: 0.093799 | | | | | | | | | KernelScale: 0.0053728 | | | | | | | | | Epsilon: 17.332 | | 43 | Accept | 2.8766 | 0.097864 | 2.173 | 2.1735 | svm | BoxConstraint: 0.20553 | | | | | | | | | KernelScale: 880.29 | | | | | | | | | Epsilon: 4.5637 | | 44 | Accept | 2.1763 | 5.7872 | 2.173 | 2.1731 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 233 | | | | | | | | | MinLeafSize: 2 | | 45 | Accept | 2.4576 | 5.4877 | 2.173 | 2.1732 | ensemble | Method: Bag | | | | | | | | | NumLearningCycles: 232 | | | | | | | | | MinLeafSize: 27 | | 46 | Accept | 4.1439 | 0.052135 | 2.173 | 2.1732 | svm | BoxConstraint: 0.0010276 | | | | | | | | | KernelScale: 5.6652 | | | | | | | | | Epsilon: 804.02 | | 47 | Accept | 3.1594 | 0.08652 | 2.173 | 2.1732 | svm | BoxConstraint: 0.002278 | | | | | | | | | KernelScale: 906.35 | | | | | | | | | Epsilon: 0.015573 | | 48 | Accept | 14.659 | 21.351 | 2.173 | 2.1732 | svm | BoxConstraint: 0.0010072 | | | | | | | | | KernelScale: 39.716 | | | | | | | | | Epsilon: 0.039845 | | 49 | Accept | 4.1439 | 0.06733 | 2.173 | 2.1732 | svm | BoxConstraint: 0.0010085 | | | | | | | | | KernelScale: 0.24517 | | | | | | | | | Epsilon: 447.36 | | 50 | Accept | 4.1439 | 0.067864 | 2.173 | 2.1732 | svm | BoxConstraint: 893.9 | | | | | | | | | KernelScale: 290.03 | | | | | | | | | Epsilon: 624.64 | |=========================================================================================================================================| | 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 | 2.6859 | 2.8671 | 2.173 | 2.1732 | svm | BoxConstraint: 0.0019596 | | | | | | | | | KernelScale: 264.51 | | | | | | | | | Epsilon: 0.0090654 | | 52 | Accept | 4.1439 | 0.066538 | 2.173 | 2.1732 | svm | BoxConstraint: 904.73 | | | | | | | | | KernelScale: 0.099617 | | | | | | | | | Epsilon: 0.014351 | | 53 | Accept | 4.1439 | 0.050841 | 2.173 | 2.1732 | svm | BoxConstraint: 975.67 | | | | | | | | | KernelScale: 0.50151 | | | | | | | | | Epsilon: 88.566 | | 54 | Accept | 4.1439 | 0.065868 | 2.173 | 2.1732 | svm | BoxConstraint: 0.0011848 | | | | | | | | | KernelScale: 201.25 | | | | | | | | | Epsilon: 441.13 | | 55 | Accept | 4.8245 | 19.19 | 2.173 | 2.1732 | svm | BoxConstraint: 548.22 | | | | | | | | | KernelScale: 548.99 | | | | | | | | | Epsilon: 0.010854 | | 56 | Accept | 4.1439 | 0.08348 | 2.173 | 2.1732 | svm | BoxConstraint: 0.001489 | | | | | | | | | KernelScale: 895.16 | | | | | | | | | Epsilon: 855.15 | | 57 | Accept | 4.1439 | 0.076295 | 2.173 | 2.1732 | svm | BoxConstraint: 0.0074202 | | | | | | | | | KernelScale: 0.3217 | | | | | | | | | Epsilon: 0.0096831 | | 58 | Accept | 4.1439 | 0.085455 | 2.173 | 2.1732 | svm | BoxConstraint: 757.82 | | | | | | | | | KernelScale: 0.065896 | | | | | | | | | Epsilon: 870.69 | | 59 | Accept | 2.6999 | 5.8429 | 2.173 | 2.1732 | svm | BoxConstraint: 0.00131 | | | | | | | | | KernelScale: 249.09 | | | | | | | | | Epsilon: 0.27904 | | 60 | Accept | 4.1439 | 0.076182 | 2.173 | 2.1732 | svm | BoxConstraint: 0.001578 | | | | | | | | | KernelScale: 0.010906 | | | | | | | | | Epsilon: 0.0091265 | |=========================================================================================================================================| | 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 | 4.1439 | 0.057696 | 2.173 | 2.1732 | svm | BoxConstraint: 0.0011475 | | | | | | | | | KernelScale: 1.2958 | | | | | | | | | Epsilon: 354.6 | | 62 | Accept | 4.1439 | 0.077794 | 2.173 | 2.1732 | svm | BoxConstraint: 0.0027272 | | | | | | | | | KernelScale: 0.0010042 | | | | | | | | | Epsilon: 0.014664 | | 63 | Accept | 2.3368 | 5.1396 | 2.173 | 2.1732 | ensemble | Method: Bag | | | | | | | | | NumLearningCycles: 205 | | | | | | | | | MinLeafSize: 1 | | 64 | Accept | 2.7175 | 12.745 | 2.173 | 2.1732 | svm | BoxConstraint: 0.0011027 | | | | | | | | | KernelScale: 188.56 | | | | | | | | | Epsilon: 0.0089013 | | 65 | Accept | 2.173 | 4.8092 | 2.173 | 2.1731 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 200 | | | | | | | | | MinLeafSize: 1 | | 66 | Accept | 4.1439 | 0.060669 | 2.173 | 2.1731 | svm | BoxConstraint: 0.011536 | | | | | | | | | KernelScale: 0.0039517 | | | | | | | | | Epsilon: 0.0090597 | | 67 | Best | 2.173 | 8.695 | 2.173 | 2.173 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 300 | | | | | | | | | MinLeafSize: 1 | | 68 | Accept | 2.173 | 5.0512 | 2.173 | 2.173 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 202 | | | | | | | | | MinLeafSize: 1 | | 69 | Accept | 2.173 | 7.5798 | 2.173 | 2.173 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 299 | | | | | | | | | MinLeafSize: 1 | | 70 | Accept | 2.173 | 4.8479 | 2.173 | 2.173 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 200 | | | | | | | | | 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) | | | |=========================================================================================================================================| | 71 | Accept | 2.173 | 7.5734 | 2.173 | 2.173 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 300 | | | | | | | | | MinLeafSize: 1 | | 72 | Accept | 2.173 | 7.4612 | 2.173 | 2.173 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 299 | | | | | | | | | MinLeafSize: 1 | | 73 | Accept | 2.173 | 4.7911 | 2.173 | 2.173 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 200 | | | | | | | | | MinLeafSize: 1 | | 74 | Accept | 2.173 | 7.333 | 2.173 | 2.173 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 299 | | | | | | | | | MinLeafSize: 1 | | 75 | Accept | 2.173 | 7.0648 | 2.173 | 2.173 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 277 | | | | | | | | | MinLeafSize: 1 | | 76 | Accept | 2.173 | 4.9778 | 2.173 | 2.173 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 200 | | | | | | | | | MinLeafSize: 1 | | 77 | Accept | 2.173 | 4.6684 | 2.173 | 2.173 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 200 | | | | | | | | | MinLeafSize: 1 | | 78 | Accept | 2.173 | 7.1746 | 2.173 | 2.173 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 297 | | | | | | | | | MinLeafSize: 1 | | 79 | Accept | 2.1763 | 5.5721 | 2.173 | 2.173 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 230 | | | | | | | | | MinLeafSize: 2 | | 80 | Accept | 2.173 | 4.9422 | 2.173 | 2.173 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 200 | | | | | | | | | 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) | | | |=========================================================================================================================================| | 81 | Accept | 2.173 | 7.4431 | 2.173 | 2.173 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 298 | | | | | | | | | MinLeafSize: 1 | | 82 | Accept | 2.173 | 7.4708 | 2.173 | 2.173 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 299 | | | | | | | | | MinLeafSize: 1 | | 83 | Accept | 2.173 | 4.8532 | 2.173 | 2.173 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 202 | | | | | | | | | MinLeafSize: 1 | | 84 | Accept | 2.173 | 7.3628 | 2.173 | 2.173 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 300 | | | | | | | | | MinLeafSize: 1 | | 85 | Accept | 2.173 | 5.8364 | 2.173 | 2.173 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 240 | | | | | | | | | MinLeafSize: 1 | | 86 | Accept | 2.173 | 4.821 | 2.173 | 2.173 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 200 | | | | | | | | | MinLeafSize: 1 | | 87 | Accept | 2.173 | 5.4126 | 2.173 | 2.173 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 220 | | | | | | | | | MinLeafSize: 1 | | 88 | Accept | 2.173 | 7.9721 | 2.173 | 2.173 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 300 | | | | | | | | | MinLeafSize: 1 | | 89 | Accept | 2.173 | 6.8672 | 2.173 | 2.173 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 275 | | | | | | | | | MinLeafSize: 1 | | 90 | Accept | 2.173 | 4.9636 | 2.173 | 2.173 | ensemble | Method: LSBoost | | | | | | | | | NumLearningCycles: 216 | | | | | | | | | MinLeafSize: 1 |
__________________________________________________________ Optimization completed. Total iterations: 90 Total elapsed time: 643.9812 seconds Total time for training and validation: 401.0444 seconds Best observed learner is an ensemble model with: Method: LSBoost NumLearningCycles: 300 MinLeafSize: 1 Observed log(1 + valLoss): 2.173 Time for training and validation: 8.695 seconds Best estimated learner (returned model) is an ensemble model with: Method: LSBoost NumLearningCycles: 300 MinLeafSize: 1 Estimated log(1 + valLoss): 2.173 Estimated time for training and validation: 7.5797 seconds Documentation for fitrauto display
Итоговая модель возвращена fitrauto
соответствует лучшему предполагаемому ученику. Прежде, чем возвратить модель, функция переобучает его с помощью целых обучающих данных (carsTrain
), перечисленный Learner
(или модель) тип и отображенные гиперзначения параметров.
Оцените эффективность набора тестов
Оцените эффективность модели на наборе тестов. testError
основан на среднеквадратической ошибке (MSE) набора тестов. Меньшие значения MSE указывают на лучшую эффективность.
testMSE = loss(Mdl,carsTest,"MPG");
testError = log(1 + testMSE)
testError = 2.2971
Этот пример использует:
Используйте 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.4452 | 3.0205 | 3.0329 | tree | MinLeafSize: 6 | | 2 | 5 | Accept | 3.0453 | 1.431 | 3.0205 | 3.0329 | tree | MinLeafSize: 5 | | 3 | 5 | Accept | 4.143 | 2.2922 | 3.0205 | 3.0329 | svm | BoxConstraint: 336.91 | | | | | | | | | | KernelScale: 0.0018275 | | | | | | | | | | Epsilon: 0.1074 | | 4 | 5 | Accept | 4.143 | 0.59844 | 3.0205 | 3.0329 | svm | BoxConstraint: 346.92 | | | | | | | | | | KernelScale: 0.032493 | | | | | | | | | | Epsilon: 0.23974 | | 5 | 6 | Best | 2.9275 | 0.30064 | 2.9275 | 2.9275 | svm | BoxConstraint: 0.033068 | | | | | | | | | | KernelScale: 585.38 | | | | | | | | | | Epsilon: 4.6993 | | 6 | 5 | Accept | 4.1439 | 6.9662 | 2.9275 | 2.9275 | ensemble | Method: Bag | | | | | | | | | | NumLearningCycles: 257 | | | | | | | | | | MinLeafSize: 156 | | 7 | 5 | Accept | 2.9275 | 0.83001 | 2.9275 | 2.9275 | svm | BoxConstraint: 0.033068 | | | | | | | | | | KernelScale: 585.38 | | | | | | | | | | Epsilon: 4.6993 | | 8 | 4 | Accept | 2.938 | 9.5987 | 2.9275 | 2.9275 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 287 | | | | | | | | | | MinLeafSize: 1 | | 9 | 4 | Accept | 4.143 | 0.15524 | 2.9275 | 2.9275 | svm | BoxConstraint: 48.997 | | | | | | | | | | KernelScale: 0.0045904 | | | | | | | | | | Epsilon: 18.085 | | 10 | 6 | Accept | 4.143 | 0.18295 | 2.9275 | 2.9275 | svm | BoxConstraint: 0.0021787 | | | | | | | | | | KernelScale: 0.018209 | | | | | | | | | | Epsilon: 443.71 | |===================================================================================================================================================| | 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 | 4 | Best | 2.8597 | 8.2455 | 2.8597 | 2.9275 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 278 | | | | | | | | | | MinLeafSize: 13 | | 12 | 4 | Accept | 4.143 | 0.64902 | 2.8597 | 2.9275 | svm | BoxConstraint: 0.0021787 | | | | | | | | | | KernelScale: 0.018209 | | | | | | | | | | Epsilon: 443.71 | | 13 | 4 | Accept | 4.143 | 0.52394 | 2.8597 | 2.9275 | svm | BoxConstraint: 0.0021787 | | | | | | | | | | KernelScale: 0.018209 | | | | | | | | | | Epsilon: 443.71 | | 14 | 5 | Accept | 3.2501 | 0.21659 | 2.8597 | 2.9275 | tree | MinLeafSize: 1 | | 15 | 5 | Accept | 3.2501 | 0.15812 | 2.8597 | 2.9275 | tree | MinLeafSize: 1 | | 16 | 4 | Accept | 2.9167 | 7.7641 | 2.8597 | 2.9275 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 287 | | | | | | | | | | MinLeafSize: 63 | | 17 | 4 | Accept | 3.2501 | 0.1166 | 2.8597 | 2.9275 | tree | MinLeafSize: 1 | | 18 | 4 | Accept | 3.1971 | 0.37955 | 2.8597 | 2.9275 | tree | MinLeafSize: 2 | | 19 | 2 | Accept | 3.6673 | 21.933 | 2.8597 | 2.9276 | svm | BoxConstraint: 0.033502 | | | | | | | | | | KernelScale: 153.38 | | | | | | | | | | Epsilon: 0.093672 | | 20 | 2 | Accept | 2.8734 | 6.5786 | 2.8597 | 2.9276 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 283 | | | | | | | | | | MinLeafSize: 17 | |===================================================================================================================================================| | 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 | 2 | Accept | 4.143 | 0.089152 | 2.8597 | 2.9276 | svm | BoxConstraint: 37.028 | | | | | | | | | | KernelScale: 0.033731 | | | | | | | | | | Epsilon: 0.2457 | | 22 | 6 | Accept | 3.3225 | 0.186 | 2.8597 | 2.9276 | tree | MinLeafSize: 122 | | 23 | 4 | Accept | 2.9536 | 0.15373 | 2.8597 | 2.9276 | tree | MinLeafSize: 11 | | 24 | 4 | Accept | 4.143 | 0.2424 | 2.8597 | 2.9276 | svm | BoxConstraint: 240.91 | | | | | | | | | | KernelScale: 0.0063646 | | | | | | | | | | Epsilon: 92.342 | | 25 | 4 | Accept | 2.9969 | 0.2371 | 2.8597 | 2.9276 | tree | MinLeafSize: 40 | | 26 | 4 | Accept | 3.1971 | 0.087498 | 2.8597 | 2.9276 | tree | MinLeafSize: 2 | | 27 | 3 | Accept | 3.0259 | 5.4043 | 2.8597 | 2.8589 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 247 | | | | | | | | | | MinLeafSize: 83 | | 28 | 3 | Accept | 2.8673 | 5.2056 | 2.8597 | 2.8589 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 234 | | | | | | | | | | MinLeafSize: 31 | | 29 | 6 | Accept | 2.9403 | 0.060585 | 2.8597 | 2.8589 | tree | MinLeafSize: 13 | | 30 | 4 | Accept | 2.868 | 4.3862 | 2.8597 | 2.8589 | ensemble | Method: Bag | | | | | | | | | | NumLearningCycles: 229 | | | | | | | | | | MinLeafSize: 52 | |===================================================================================================================================================| | 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 | 4 | Accept | 3.3587 | 0.46693 | 2.8597 | 2.8589 | tree | MinLeafSize: 109 | | 32 | 4 | Accept | 3.1971 | 0.32157 | 2.8597 | 2.8589 | tree | MinLeafSize: 2 | | 33 | 4 | Accept | 3.2501 | 0.078839 | 2.8597 | 2.8589 | tree | MinLeafSize: 1 | | 34 | 4 | Accept | 2.8708 | 5.4437 | 2.8597 | 2.8595 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 235 | | | | | | | | | | MinLeafSize: 26 | | 35 | 3 | Best | 2.8244 | 5.9186 | 2.8244 | 2.8595 | ensemble | Method: Bag | | | | | | | | | | NumLearningCycles: 275 | | | | | | | | | | MinLeafSize: 4 | | 36 | 3 | Accept | 3.112 | 0.053088 | 2.8244 | 2.8595 | tree | MinLeafSize: 62 | | 37 | 6 | Accept | 2.8872 | 5.1029 | 2.8244 | 2.8245 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 214 | | | | | | | | | | MinLeafSize: 4 | | 38 | 5 | Accept | 2.9282 | 0.095731 | 2.8244 | 2.8245 | svm | BoxConstraint: 0.20553 | | | | | | | | | | KernelScale: 880.29 | | | | | | | | | | Epsilon: 4.5637 | | 39 | 5 | Accept | 4.143 | 0.087217 | 2.8244 | 2.8245 | svm | BoxConstraint: 26.303 | | | | | | | | | | KernelScale: 0.40313 | | | | | | | | | | Epsilon: 228.3 | | 40 | 2 | Accept | 2.8652 | 5.7512 | 2.8242 | 2.8242 | ensemble | Method: Bag | | | | | | | | | | NumLearningCycles: 280 | | | | | | | | | | 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) | | | |===================================================================================================================================================| | 41 | 2 | Accept | 3.0951 | 5.1977 | 2.8242 | 2.8242 | ensemble | Method: Bag | | | | | | | | | | NumLearningCycles: 250 | | | | | | | | | | MinLeafSize: 70 | | 42 | 2 | Best | 2.8242 | 5.2948 | 2.8242 | 2.8242 | ensemble | Method: Bag | | | | | | | | | | NumLearningCycles: 207 | | | | | | | | | | MinLeafSize: 8 | | 43 | 2 | Accept | 2.9041 | 5.4999 | 2.8242 | 2.8242 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 233 | | | | | | | | | | MinLeafSize: 2 | | 44 | 5 | Accept | 2.9804 | 0.074442 | 2.8242 | 2.8242 | tree | MinLeafSize: 8 | | 45 | 5 | Accept | 3.3765 | 0.047037 | 2.8242 | 2.8242 | tree | MinLeafSize: 117 | | 46 | 4 | Accept | 4.143 | 0.095028 | 2.8242 | 2.8242 | svm | BoxConstraint: 0.032384 | | | | | | | | | | KernelScale: 797.08 | | | | | | | | | | Epsilon: 64.843 | | 47 | 4 | Accept | 4.143 | 0.061103 | 2.8242 | 2.8242 | svm | BoxConstraint: 28.209 | | | | | | | | | | KernelScale: 77.831 | | | | | | | | | | Epsilon: 21.256 | | 48 | 3 | Accept | 2.8452 | 3.6683 | 2.8242 | 2.8243 | ensemble | Method: Bag | | | | | | | | | | NumLearningCycles: 200 | | | | | | | | | | MinLeafSize: 1 | | 49 | 3 | Accept | 2.8655 | 4.0616 | 2.8242 | 2.8243 | ensemble | Method: Bag | | | | | | | | | | NumLearningCycles: 202 | | | | | | | | | | MinLeafSize: 1 | | 50 | 6 | Accept | 4.143 | 0.10804 | 2.8242 | 2.8243 | svm | BoxConstraint: 267.23 | | | | | | | | | | KernelScale: 0.028148 | | | | | | | | | | Epsilon: 0.097477 | |===================================================================================================================================================| | 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 | 4.8036 | 16.322 | 2.8193 | 2.8188 | svm | BoxConstraint: 0.006061 | | | | | | | | | | KernelScale: 127.62 | | | | | | | | | | Epsilon: 0.0090183 | | 52 | 3 | Best | 2.8193 | 4.0637 | 2.8193 | 2.8188 | ensemble | Method: Bag | | | | | | | | | | NumLearningCycles: 200 | | | | | | | | | | MinLeafSize: 23 | | 53 | 3 | Accept | 2.8228 | 6.0192 | 2.8193 | 2.8188 | ensemble | Method: Bag | | | | | | | | | | NumLearningCycles: 298 | | | | | | | | | | MinLeafSize: 5 | | 54 | 3 | Accept | 2.8448 | 5.0715 | 2.8193 | 2.8188 | ensemble | Method: Bag | | | | | | | | | | NumLearningCycles: 249 | | | | | | | | | | MinLeafSize: 2 | | 55 | 6 | Accept | 3.2501 | 0.077577 | 2.8193 | 2.8188 | tree | MinLeafSize: 1 | | 56 | 4 | Accept | 2.9351 | 0.098541 | 2.8193 | 2.8188 | svm | BoxConstraint: 0.015396 | | | | | | | | | | KernelScale: 707.02 | | | | | | | | | | Epsilon: 1.8654 | | 57 | 4 | Accept | 4.143 | 0.062758 | 2.8193 | 2.8188 | svm | BoxConstraint: 0.20213 | | | | | | | | | | KernelScale: 0.56699 | | | | | | | | | | Epsilon: 803.81 | | 58 | 4 | Accept | 4.143 | 0.076261 | 2.8193 | 2.8188 | svm | BoxConstraint: 0.001047 | | | | | | | | | | KernelScale: 0.0019199 | | | | | | | | | | Epsilon: 4.501 | | 59 | 4 | Accept | 2.8469 | 3.5621 | 2.8193 | 2.8223 | ensemble | Method: Bag | | | | | | | | | | NumLearningCycles: 200 | | | | | | | | | | MinLeafSize: 35 | | 60 | 5 | Accept | 2.8288 | 3.9552 | 2.8193 | 2.8223 | ensemble | Method: Bag | | | | | | | | | | NumLearningCycles: 207 | | | | | | | | | | MinLeafSize: 14 | |===================================================================================================================================================| | 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 | 5 | Accept | 4.143 | 0.066618 | 2.8193 | 2.8223 | svm | BoxConstraint: 0.043338 | | | | | | | | | | KernelScale: 0.026299 | | | | | | | | | | Epsilon: 0.057475 | | 62 | 5 | Accept | 4.143 | 31.142 | 2.8193 | 2.8223 | svm | BoxConstraint: 13.655 | | | | | | | | | | KernelScale: 4.3086 | | | | | | | | | | Epsilon: 6.9116 | | 63 | 4 | Accept | 2.8697 | 7.1892 | 2.8193 | 2.8223 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 291 | | | | | | | | | | MinLeafSize: 8 | | 64 | 4 | Accept | 4.143 | 0.051217 | 2.8193 | 2.8223 | svm | BoxConstraint: 164.25 | | | | | | | | | | KernelScale: 422 | | | | | | | | | | Epsilon: 709.16 | | 65 | 4 | Accept | 15.816 | 29.101 | 2.8193 | 2.8223 | svm | BoxConstraint: 280.6 | | | | | | | | | | KernelScale: 20.045 | | | | | | | | | | Epsilon: 2.9565 | | 66 | 4 | Accept | 2.8697 | 6.626 | 2.8193 | 2.8224 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 300 | | | | | | | | | | MinLeafSize: 8 | | 67 | 3 | Accept | 4.143 | 30.413 | 2.8193 | 2.8223 | svm | BoxConstraint: 1.3468 | | | | | | | | | | KernelScale: 9.6762 | | | | | | | | | | Epsilon: 0.023868 | | 68 | 3 | Accept | 2.8398 | 7.0162 | 2.8193 | 2.8223 | ensemble | Method: Bag | | | | | | | | | | NumLearningCycles: 386 | | | | | | | | | | MinLeafSize: 3 | | 69 | 3 | Accept | 2.8358 | 6.4998 | 2.8193 | 2.8223 | ensemble | Method: Bag | | | | | | | | | | NumLearningCycles: 344 | | | | | | | | | | MinLeafSize: 21 | | 70 | 3 | Accept | 4.143 | 0.076191 | 2.8193 | 2.8223 | svm | BoxConstraint: 6.1442 | | | | | | | | | | KernelScale: 0.068257 | | | | | | | | | | Epsilon: 5.7363 | |===================================================================================================================================================| | 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 | 0.066335 | 2.8193 | 2.8223 | svm | BoxConstraint: 0.027503 | | | | | | | | | | KernelScale: 0.0041093 | | | | | | | | | | Epsilon: 0.051041 | | 72 | 3 | Accept | 4.143 | 0.07249 | 2.8193 | 2.8223 | svm | BoxConstraint: 0.52138 | | | | | | | | | | KernelScale: 0.43854 | | | | | | | | | | Epsilon: 0.67088 | | 73 | 5 | Accept | 2.8214 | 3.9165 | 2.8193 | 2.8215 | ensemble | Method: Bag | | | | | | | | | | NumLearningCycles: 207 | | | | | | | | | | MinLeafSize: 6 | | 74 | 5 | Accept | 2.8872 | 6.1359 | 2.8193 | 2.8215 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 252 | | | | | | | | | | MinLeafSize: 4 | | 75 | 3 | Accept | 2.9284 | 0.054998 | 2.8193 | 2.8215 | tree | MinLeafSize: 20 | | 76 | 3 | Accept | 2.8468 | 3.983 | 2.8193 | 2.8215 | ensemble | Method: Bag | | | | | | | | | | NumLearningCycles: 225 | | | | | | | | | | MinLeafSize: 33 | | 77 | 3 | Accept | 2.9969 | 0.10337 | 2.8193 | 2.8215 | tree | MinLeafSize: 40 | | 78 | 6 | Accept | 3.0866 | 0.058426 | 2.8193 | 2.8215 | svm | BoxConstraint: 0.0070395 | | | | | | | | | | KernelScale: 988.24 | | | | | | | | | | Epsilon: 0.0096375 | | 79 | 5 | Accept | 4.143 | 0.094698 | 2.8193 | 2.8215 | svm | BoxConstraint: 954.83 | | | | | | | | | | KernelScale: 0.0016114 | | | | | | | | | | Epsilon: 45.114 | | 80 | 5 | Accept | 3.2501 | 0.083131 | 2.8193 | 2.8215 | tree | MinLeafSize: 1 | |===================================================================================================================================================| | 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 | 6.269 | 2.8193 | 2.8215 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 294 | | | | | | | | | | MinLeafSize: 162 | | 82 | 3 | Accept | 2.8742 | 6.9216 | 2.8193 | 2.8215 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 293 | | | | | | | | | | MinLeafSize: 27 | | 83 | 3 | Accept | 4.143 | 0.051169 | 2.8193 | 2.8215 | svm | BoxConstraint: 0.47136 | | | | | | | | | | KernelScale: 0.11232 | | | | | | | | | | Epsilon: 0.058234 | | 84 | 2 | Accept | 9.656 | 19.111 | 2.8193 | 2.8215 | svm | BoxConstraint: 121.18 | | | | | | | | | | KernelScale: 196.01 | | | | | | | | | | Epsilon: 0.010913 | | 85 | 2 | Accept | 4.143 | 6.6385 | 2.8193 | 2.8215 | ensemble | Method: LSBoost | | | | | | | | | | NumLearningCycles: 294 | | | | | | | | | | MinLeafSize: 162 | | 86 | 2 | Accept | 3.0281 | 0.055432 | 2.8193 | 2.8215 | tree | MinLeafSize: 57 | | 87 | 2 | Accept | 3.1971 | 0.10328 | 2.8193 | 2.8215 | tree | MinLeafSize: 2 | | 88 | 2 | Accept | 3.1507 | 0.081176 | 2.8193 | 2.8215 | tree | MinLeafSize: 3 | | 89 | 6 | Accept | 2.8507 | 5.7074 | 2.8193 | 2.8214 | ensemble | Method: Bag | | | | | | | | | | NumLearningCycles: 275 | | | | | | | | | | MinLeafSize: 1 | | 90 | 5 | Accept | 4.143 | 0.078128 | 2.8193 | 2.8214 | svm | BoxConstraint: 220.96 | | | | | | | | | | KernelScale: 28.058 | | | | | | | | | | Epsilon: 66.219 | |===================================================================================================================================================| | 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 | 4.143 | 0.0599 | 2.8193 | 2.8214 | svm | BoxConstraint: 8.342 | | | | | | | | | | KernelScale: 70.835 | | | | | | | | | | Epsilon: 38.428 |
__________________________________________________________ Optimization completed. Total iterations: 91 Total elapsed time: 174.9553 seconds Total time for training and validation: 350.9822 seconds Best observed learner is an ensemble model with: Method: Bag NumLearningCycles: 200 MinLeafSize: 23 Observed log(1 + valLoss): 2.8193 Time for training and validation: 4.0637 seconds Best estimated learner (returned model) is an ensemble model with: Method: Bag NumLearningCycles: 207 MinLeafSize: 6 Estimated log(1 + valLoss): 2.8214 Estimated time for training and validation: 4.0733 seconds Documentation for fitrauto display
Итоговая модель возвращена fitrauto
соответствует лучшему предполагаемому ученику. Прежде, чем возвратить модель, функция переобучает его с помощью целых обучающих данных (XTrain
и YTrain
), перечисленный Learner
(или модель) тип и отображенные гиперзначения параметров.
Оцените эффективность набора тестов
Оцените эффективность модели на наборе тестов. testError
основан на среднеквадратической ошибке (MSE) набора тестов. Меньшие значения MSE указывают на лучшую эффективность.
testMSE = loss(Mdl,XTest,YTest); testError = log(1 + testMSE)
testError = 2.8921
Этот пример использует:
Используйте 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.1825 | 1.8704 | 2.6934 | 2.6935 | tree | MinLeafSize: 38 | | | | | | | | | | MaxNumSplits: 2 | | | | | | | | | | NumVariablesToSample: 1 | | 2 | 4 | Accept | 2.8075 | 1.8645 | 2.6934 | 2.6935 | tree | MinLeafSize: 1 | | | | | | | | | | MaxNumSplits: 44 | | | | | | | | | | NumVariablesToSample: 4 | | 3 | 4 | Best | 2.6934 | 1.854 | 2.6934 | 2.6935 | tree | MinLeafSize: 29 | | | | | | | | | | MaxNumSplits: 52 | | | | | | | | | | NumVariablesToSample: 6 | | 4 | 4 | Accept | 4.1439 | 2.6026 | 2.6934 | 2.6935 | svm | BoxConstraint: 0.010718 | | | | | | | | | | KernelScale: 1.7547 | | | | | | | | | | Epsilon: 182.6 | | 5 | 2 | Accept | 2.4136 | 7.0256 | 2.2154 | 2.6935 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.64294 | | | | | | | | | | MinLeafSize: 39 | | | | | | | | | | NumVariablesToSample: NaN | | 6 | 2 | Best | 2.2154 | 7.7597 | 2.2154 | 2.6935 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.033855 | | | | | | | | | | MinLeafSize: 6 | | | | | | | | | | NumVariablesToSample: NaN | | 7 | 2 | Accept | 4.1439 | 0.27852 | 2.2154 | 2.6935 | svm | BoxConstraint: 0.012677 | | | | | | | | | | KernelScale: 351.81 | | | | | | | | | | Epsilon: 140.99 | | 8 | 6 | Accept | 4.1439 | 0.85944 | 2.2154 | 2.6935 | svm | BoxConstraint: 37.191 | | | | | | | | | | KernelScale: 21.113 | | | | | | | | | | Epsilon: 33.874 | | 9 | 6 | Accept | 2.7394 | 1.4707 | 2.2154 | 2.6935 | svm | BoxConstraint: 0.057859 | | | | | | | | | | KernelScale: 448.87 | | | | | | | | | | Epsilon: 4.2169 | | 10 | 4 | Accept | 2.5848 | 5.8685 | 2.2154 | 2.4611 | 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 | 4 | Accept | 2.6816 | 5.073 | 2.2154 | 2.4611 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 51 | | | | | | | | | | NumVariablesToSample: 2 | | 12 | 4 | Accept | 2.4608 | 0.25674 | 2.2154 | 2.4611 | tree | MinLeafSize: 6 | | | | | | | | | | MaxNumSplits: 32 | | | | | | | | | | NumVariablesToSample: 5 | | 13 | 4 | Accept | 3.2336 | 6.4662 | 2.2154 | 2.4611 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.56281 | | | | | | | | | | MinLeafSize: 123 | | | | | | | | | | NumVariablesToSample: NaN | | 14 | 6 | Accept | 2.845 | 0.35832 | 2.2154 | 2.4611 | svm | BoxConstraint: 0.0027083 | | | | | | | | | | KernelScale: 413.17 | | | | | | | | | | Epsilon: 0.13572 | | 15 | 4 | Accept | 2.7122 | 5.2558 | 2.2154 | 2.4611 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.74839 | | | | | | | | | | MinLeafSize: 88 | | | | | | | | | | NumVariablesToSample: NaN | | 16 | 4 | Accept | 2.845 | 0.9025 | 2.2154 | 2.4611 | svm | BoxConstraint: 0.0027083 | | | | | | | | | | KernelScale: 413.17 | | | | | | | | | | Epsilon: 0.13572 | | 17 | 4 | Accept | 2.845 | 0.81343 | 2.2154 | 2.4611 | svm | BoxConstraint: 0.0027083 | | | | | | | | | | KernelScale: 413.17 | | | | | | | | | | Epsilon: 0.13572 | | 18 | 3 | Accept | 2.6527 | 4.4298 | 2.2154 | 2.4723 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 46 | | | | | | | | | | NumVariablesToSample: 2 | | 19 | 3 | Accept | 2.5035 | 0.29266 | 2.2154 | 2.4723 | tree | MinLeafSize: 5 | | | | | | | | | | MaxNumSplits: 18 | | | | | | | | | | NumVariablesToSample: 5 | | 20 | 6 | Accept | 2.8243 | 0.15229 | 2.2154 | 2.4616 | tree | MinLeafSize: 12 | | | | | | | | | | MaxNumSplits: 5 | | | | | | | | | | 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) | | | |===================================================================================================================================================| | 21 | 4 | Accept | 4.143 | 0.064514 | 2.2154 | 2.4607 | tree | MinLeafSize: 132 | | | | | | | | | | MaxNumSplits: 8 | | | | | | | | | | NumVariablesToSample: 5 | | 22 | 4 | Accept | 4.143 | 0.18836 | 2.2154 | 2.4607 | tree | MinLeafSize: 138 | | | | | | | | | | MaxNumSplits: 3 | | | | | | | | | | NumVariablesToSample: 7 | | 23 | 4 | Accept | 3.3663 | 0.13449 | 2.2154 | 2.4607 | tree | MinLeafSize: 83 | | | | | | | | | | MaxNumSplits: 41 | | | | | | | | | | NumVariablesToSample: 2 | | 24 | 3 | Accept | 2.3614 | 4.546 | 2.2154 | 2.4607 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 2 | | | | | | | | | | NumVariablesToSample: 2 | | 25 | 3 | Accept | 4.1439 | 0.58435 | 2.2154 | 2.4607 | svm | BoxConstraint: 0.0050384 | | | | | | | | | | KernelScale: 0.18651 | | | | | | | | | | Epsilon: 11.818 | | 26 | 6 | Accept | 4.1439 | 0.07419 | 2.2154 | 2.4607 | svm | BoxConstraint: 0.19519 | | | | | | | | | | KernelScale: 0.48473 | | | | | | | | | | Epsilon: 0.02267 | | 27 | 6 | Accept | 2.5796 | 0.081162 | 2.2154 | 2.4613 | tree | MinLeafSize: 8 | | | | | | | | | | MaxNumSplits: 85 | | | | | | | | | | NumVariablesToSample: 5 | | 28 | 5 | Accept | 5.9862 | 5.516 | 2.2154 | 2.4622 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.001143 | | | | | | | | | | MinLeafSize: 104 | | | | | | | | | | NumVariablesToSample: NaN | | 29 | 5 | Accept | 2.6716 | 0.071817 | 2.2154 | 2.4622 | tree | MinLeafSize: 6 | | | | | | | | | | MaxNumSplits: 43 | | | | | | | | | | NumVariablesToSample: 2 | | 30 | 2 | Accept | 4.1439 | 33.722 | 2.2154 | 2.4815 | svm | BoxConstraint: 0.15265 | | | | | | | | | | KernelScale: 1.4893 | | | | | | | | | | Epsilon: 0.44287 | |===================================================================================================================================================| | 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.2534 | 6.2607 | 2.2154 | 2.4815 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 12 | | | | | | | | | | NumVariablesToSample: 7 | | 32 | 2 | Accept | 2.9788 | 6.8285 | 2.2154 | 2.4815 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.010155 | | | | | | | | | | MinLeafSize: 13 | | | | | | | | | | NumVariablesToSample: NaN | | 33 | 2 | Accept | 2.7529 | 0.055823 | 2.2154 | 2.4815 | tree | MinLeafSize: 1 | | | | | | | | | | MaxNumSplits: 123 | | | | | | | | | | NumVariablesToSample: 2 | | 34 | 6 | Accept | 3.0557 | 0.4318 | 2.2154 | 2.494 | tree | MinLeafSize: 42 | | | | | | | | | | MaxNumSplits: 4 | | | | | | | | | | NumVariablesToSample: 4 | | 35 | 3 | Accept | 4.1439 | 0.27218 | 2.2154 | 2.494 | svm | BoxConstraint: 2.1967 | | | | | | | | | | KernelScale: 0.02117 | | | | | | | | | | Epsilon: 0.20631 | | 36 | 3 | Accept | 3.2946 | 0.066155 | 2.2154 | 2.494 | tree | MinLeafSize: 88 | | | | | | | | | | MaxNumSplits: 2 | | | | | | | | | | NumVariablesToSample: 2 | | 37 | 3 | Accept | 4.1439 | 0.13289 | 2.2154 | 2.494 | svm | BoxConstraint: 127.62 | | | | | | | | | | KernelScale: 0.0010166 | | | | | | | | | | Epsilon: 16.049 | | 38 | 3 | Accept | 4.1439 | 0.12273 | 2.2154 | 2.494 | svm | BoxConstraint: 77.831 | | | | | | | | | | KernelScale: 11.323 | | | | | | | | | | Epsilon: 24.046 | | 39 | 6 | Accept | 4.1439 | 0.090716 | 2.2154 | 2.494 | svm | BoxConstraint: 1.5262 | | | | | | | | | | KernelScale: 0.16982 | | | | | | | | | | Epsilon: 0.09432 | | 40 | 5 | Accept | 4.1439 | 0.060884 | 2.2154 | 2.494 | svm | BoxConstraint: 347.06 | | | | | | | | | | KernelScale: 0.024995 | | | | | | | | | | Epsilon: 0.012891 | |===================================================================================================================================================| | 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 | 4.1439 | 0.078944 | 2.2154 | 2.494 | svm | BoxConstraint: 0.017688 | | | | | | | | | | KernelScale: 968.17 | | | | | | | | | | Epsilon: 350.72 | | 42 | 4 | Accept | 2.5097 | 14.423 | 2.1926 | 2.1939 | svm | BoxConstraint: 5.9191 | | | | | | | | | | KernelScale: 699.18 | | | | | | | | | | Epsilon: 0.010916 | | 43 | 4 | Best | 2.1926 | 6.6572 | 2.1926 | 2.1939 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.03225 | | | | | | | | | | MinLeafSize: 6 | | | | | | | | | | NumVariablesToSample: NaN | | 44 | 4 | Accept | 4.1439 | 0.055712 | 2.1926 | 2.1939 | svm | BoxConstraint: 0.00076626 | | | | | | | | | | KernelScale: 0.27348 | | | | | | | | | | Epsilon: 0.18351 | | 45 | 2 | Accept | 13.985 | 32.958 | 2.1926 | 2.1967 | svm | BoxConstraint: 797.08 | | | | | | | | | | KernelScale: 43.175 | | | | | | | | | | Epsilon: 4.1489 | | 46 | 2 | Accept | 4.1439 | 30.972 | 2.1926 | 2.1967 | svm | BoxConstraint: 0.067167 | | | | | | | | | | KernelScale: 6.6015 | | | | | | | | | | Epsilon: 0.010914 | | 47 | 2 | Accept | 2.2235 | 6.0717 | 2.1926 | 2.1967 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.022919 | | | | | | | | | | MinLeafSize: 1 | | | | | | | | | | NumVariablesToSample: NaN | | 48 | 6 | Accept | 4.1439 | 0.054027 | 2.1926 | 2.1967 | svm | BoxConstraint: 1.4081 | | | | | | | | | | KernelScale: 1068.3 | | | | | | | | | | Epsilon: 47.856 | | 49 | 2 | Accept | 2.5906 | 4.7498 | 2.1926 | 2.0428 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.96713 | | | | | | | | | | MinLeafSize: 14 | | | | | | | | | | NumVariablesToSample: NaN | | 50 | 2 | Accept | 4.1439 | 0.080148 | 2.1926 | 2.0428 | svm | BoxConstraint: 19.339 | | | | | | | | | | KernelScale: 336.27 | | | | | | | | | | Epsilon: 745.75 | |===================================================================================================================================================| | 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 | 2 | Accept | 2.4027 | 0.12426 | 2.1926 | 2.0428 | tree | MinLeafSize: 8 | | | | | | | | | | MaxNumSplits: 80 | | | | | | | | | | NumVariablesToSample: 5 | | 52 | 2 | Accept | 3.3875 | 0.1023 | 2.1926 | 2.0428 | tree | MinLeafSize: 84 | | | | | | | | | | MaxNumSplits: 4 | | | | | | | | | | NumVariablesToSample: 7 | | 53 | 2 | Accept | 4.1439 | 0.050927 | 2.1926 | 2.0428 | svm | BoxConstraint: 94.294 | | | | | | | | | | KernelScale: 0.0014232 | | | | | | | | | | Epsilon: 0.0090047 | | 54 | 6 | Accept | 4.859 | 6.2453 | 2.1926 | 2.2036 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.0040831 | | | | | | | | | | MinLeafSize: 10 | | | | | | | | | | NumVariablesToSample: NaN | | 55 | 1 | Accept | 2.624 | 4.7525 | 2.1926 | 2.2036 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 51 | | | | | | | | | | NumVariablesToSample: 6 | | 56 | 1 | Accept | 2.7473 | 0.060583 | 2.1926 | 2.2036 | tree | MinLeafSize: 9 | | | | | | | | | | MaxNumSplits: 204 | | | | | | | | | | NumVariablesToSample: 2 | | 57 | 1 | Accept | 4.1439 | 0.066677 | 2.1926 | 2.2036 | svm | BoxConstraint: 0.0012156 | | | | | | | | | | KernelScale: 0.015427 | | | | | | | | | | Epsilon: 0.060481 | | 58 | 1 | Accept | 4.1439 | 0.094823 | 2.1926 | 2.2036 | svm | BoxConstraint: 0.44269 | | | | | | | | | | KernelScale: 0.004171 | | | | | | | | | | Epsilon: 0.12586 | | 59 | 1 | Accept | 3.0883 | 0.0586 | 2.1926 | 2.2036 | tree | MinLeafSize: 23 | | | | | | | | | | MaxNumSplits: 4 | | | | | | | | | | NumVariablesToSample: 2 | | 60 | 1 | Accept | 4.1439 | 0.056798 | 2.1926 | 2.2036 | svm | BoxConstraint: 0.038648 | | | | | | | | | | KernelScale: 1.6731 | | | | | | | | | | Epsilon: 181.22 | |===================================================================================================================================================| | 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 | 6 | Accept | 4.1439 | 0.067435 | 2.1926 | 2.2036 | svm | BoxConstraint: 0.0073804 | | | | | | | | | | KernelScale: 0.26555 | | | | | | | | | | Epsilon: 0.0091652 | | 62 | 2 | Accept | 2.4796 | 4.6971 | 2.1926 | 2.2036 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 5 | | | | | | | | | | NumVariablesToSample: 1 | | 63 | 2 | Accept | 2.5862 | 0.087002 | 2.1926 | 2.2036 | tree | MinLeafSize: 2 | | | | | | | | | | MaxNumSplits: 36 | | | | | | | | | | NumVariablesToSample: 4 | | 64 | 2 | Accept | 2.5227 | 4.8002 | 2.1926 | 2.2036 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 35 | | | | | | | | | | NumVariablesToSample: 5 | | 65 | 2 | Accept | 2.2692 | 5.7741 | 2.1926 | 2.2036 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.025248 | | | | | | | | | | MinLeafSize: 29 | | | | | | | | | | NumVariablesToSample: NaN | | 66 | 2 | Accept | 4.1439 | 0.061232 | 2.1926 | 2.2036 | svm | BoxConstraint: 0.015213 | | | | | | | | | | KernelScale: 121.18 | | | | | | | | | | Epsilon: 228.77 | | 67 | 6 | Accept | 3.0619 | 0.20501 | 2.1926 | 2.2036 | tree | MinLeafSize: 8 | | | | | | | | | | MaxNumSplits: 37 | | | | | | | | | | NumVariablesToSample: 1 | | 68 | 2 | Accept | 4.1439 | 32.145 | 2.1926 | 2.1946 | svm | BoxConstraint: 0.023727 | | | | | | | | | | KernelScale: 2.1083 | | | | | | | | | | Epsilon: 0.026879 | | 69 | 2 | Accept | 2.2059 | 6.3033 | 2.1926 | 2.1946 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.030274 | | | | | | | | | | MinLeafSize: 9 | | | | | | | | | | NumVariablesToSample: NaN | | 70 | 2 | Accept | 2.5736 | 5.4884 | 2.1926 | 2.1946 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.015531 | | | | | | | | | | MinLeafSize: 76 | | | | | | | | | | 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 | 2 | Accept | 2.2438 | 6.4062 | 2.1926 | 2.1946 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 6 | | | | | | | | | | NumVariablesToSample: 7 | | 72 | 2 | Accept | 4.1429 | 4.1039 | 2.1926 | 2.1946 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 134 | | | | | | | | | | NumVariablesToSample: 2 | | 73 | 5 | Accept | 4.143 | 4.4894 | 2.1926 | 2.1946 | ensemble | Method: LSBoost | | | | | | | | | | LearnRate: 0.17357 | | | | | | | | | | MinLeafSize: 177 | | | | | | | | | | NumVariablesToSample: NaN | | 74 | 5 | Accept | 4.1439 | 0.054069 | 2.1926 | 2.1946 | svm | BoxConstraint: 2.4711 | | | | | | | | | | KernelScale: 0.00086032 | | | | | | | | | | Epsilon: 0.65606 | | 75 | 3 | Accept | 4.1439 | 0.09691 | 2.1926 | 2.1949 | svm | BoxConstraint: 131.74 | | | | | | | | | | KernelScale: 0.0031145 | | | | | | | | | | Epsilon: 0.028465 | | 76 | 3 | Accept | 4.143 | 0.092964 | 2.1926 | 2.1949 | tree | MinLeafSize: 156 | | | | | | | | | | MaxNumSplits: 1 | | | | | | | | | | NumVariablesToSample: 5 | | 77 | 3 | Accept | 2.3039 | 4.4363 | 2.1926 | 2.1949 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 9 | | | | | | | | | | NumVariablesToSample: 3 | | 78 | 5 | Accept | 2.6824 | 0.088024 | 2.1926 | 2.1949 | tree | MinLeafSize: 11 | | | | | | | | | | MaxNumSplits: 6 | | | | | | | | | | NumVariablesToSample: 3 | | 79 | 5 | Accept | 4.1439 | 0.065162 | 2.1926 | 2.1949 | svm | BoxConstraint: 0.0010003 | | | | | | | | | | KernelScale: 0.85686 | | | | | | | | | | Epsilon: 699.42 | | 80 | 2 | Accept | 10.894 | 31.235 | 2.1926 | 2.1952 | svm | BoxConstraint: 0.05924 | | | | | | | | | | KernelScale: 16.477 | | | | | | | | | | Epsilon: 1.204 | |===================================================================================================================================================| | 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 | 2.3629 | 4.051 | 2.1926 | 2.1952 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 2 | | | | | | | | | | NumVariablesToSample: 2 | | 82 | 2 | Accept | 3.3755 | 0.057721 | 2.1926 | 2.1952 | tree | MinLeafSize: 79 | | | | | | | | | | MaxNumSplits: 65 | | | | | | | | | | NumVariablesToSample: 3 | | 83 | 2 | Accept | 2.3673 | 4.0629 | 2.1926 | 2.1952 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 1 | | | | | | | | | | NumVariablesToSample: 2 | | 84 | 6 | Accept | 2.6199 | 4.7274 | 2.1926 | 2.1952 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 53 | | | | | | | | | | NumVariablesToSample: 6 | | 85 | 2 | Accept | 3.1414 | 4.2529 | 2.1926 | 2.1985 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 75 | | | | | | | | | | NumVariablesToSample: 7 | | 86 | 2 | Accept | 2.2514 | 5.0768 | 2.1926 | 2.1985 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 4 | | | | | | | | | | NumVariablesToSample: 5 | | 87 | 2 | Accept | 4.1439 | 0.077312 | 2.1926 | 2.1985 | svm | BoxConstraint: 230.13 | | | | | | | | | | KernelScale: 15.715 | | | | | | | | | | Epsilon: 425.18 | | 88 | 2 | Accept | 4.1439 | 0.06662 | 2.1926 | 2.1985 | svm | BoxConstraint: 10.758 | | | | | | | | | | KernelScale: 0.020507 | | | | | | | | | | Epsilon: 4.9755 | | 89 | 2 | Accept | 2.2525 | 6.0028 | 2.1926 | 2.1985 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 2 | | | | | | | | | | NumVariablesToSample: 7 | | 90 | 5 | Accept | 2.5768 | 4.4924 | 2.1926 | 2.1985 | ensemble | Method: Bag | | | | | | | | | | LearnRate: NaN | | | | | | | | | | MinLeafSize: 40 | | | | | | | | | | NumVariablesToSample: 5 | |===================================================================================================================================================| | 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 | 4.1439 | 0.062303 | 2.1926 | 2.1985 | svm | BoxConstraint: 2.5681 | | | | | | | | | | KernelScale: 0.19989 | | | | | | | | | | Epsilon: 0.59994 |
__________________________________________________________ Optimization completed. Total iterations: 91 Total elapsed time: 279.9304 seconds Total time for training and validation: 366.0998 seconds Best observed learner is an ensemble model with: Method: LSBoost LearnRate: 0.03225 MinLeafSize: 6 NumVariablesToSample: NaN Observed log(1 + valLoss): 2.1926 Time for training and validation: 6.6572 seconds Best estimated learner (returned model) is an ensemble model with: Method: LSBoost LearnRate: 0.03225 MinLeafSize: 6 NumVariablesToSample: NaN Estimated log(1 + valLoss): 2.1985 Estimated time for training and validation: 6.572 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.8322
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"
| одно или несколько имен ученикаТипы моделей регрессии, чтобы попробовать во время оптимизации в виде значения в первой приведенной ниже таблице или одного или нескольких имен ученика во второй таблице. Задайте несколько имен ученика как массив строк или массив ячеек.
Значение | Описание |
---|---|
"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"
Гиперпараметры, чтобы оптимизировать в виде "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
— Опции для оптимизацииОпции для оптимизации в виде структуры. Все поля в структуре являются дополнительными.
Имя поля | Значения | Значение по умолчанию |
---|---|---|
Optimizer |
| "bayesopt" |
MaxObjectiveEvaluations | Максимальное количество итераций (оценки целевой функции) в виде положительного целого числа |
|
MaxTime | Ограничение по времени в виде положительного вещественного числа. Ограничение по времени находится в секундах, как измерено | Inf |
ShowPlots | Логическое значение, указывающее, показать ли график прогресса оптимизации. Если true , это поле строит наблюдаемую минимальную потерю валидации против номера итерации. Когда вы используете Байесовую оптимизацию, график также показывает предполагаемую минимальную потерю валидации. | true |
SaveIntermediateResults | Логическое значение, указывающее, сохранить ли результаты. Если true , это поле перезаписывает переменную рабочей области в каждой итерации. Переменной является BayesianOptimization возразите названному BayesoptResults если вы используете Байесовую оптимизацию и таблицу под названием ASHAResults если вы используете оптимизацию ASHA. | false |
Verbose | Отображение в командной строке:
| 1
|
UseParallel | Логическое значение, указывающее, запустить ли оптимизацию параллельно, которая требует Parallel Computing Toolbox™. Из-за невоспроизводимости синхронизации параллели, параллельная оптимизация не обязательно приводит к восстанавливаемым результатам. | false |
Repartition | Логическое значение, указывающее, повторно разделить ли перекрестную проверку в каждой итерации. Если
| false |
MaxTrainingSetSize | Максимальное количество наблюдений в каждом наборе обучающих данных для оптимизации ASHA в виде положительного целого числа. Это значение совпадает с самым большим размером набора обучающих данных. Примечание Если вы хотите задать это значение, | Самый большой доступный учебный размер раздела
|
MinTrainingSetSize | Минимальное количество наблюдений в каждом наборе обучающих данных для оптимизации ASHA в виде положительного целого числа. Это значение является нижней границей для самого маленького размера набора обучающих данных. Примечание Если вы хотите задать это значение, | 100
|
Задайте только одну из следующих трех опций. | ||
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
Веса наблюдения в виде положительного числового вектора или имени переменной в 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
возразите, используете ли вы Байесовую оптимизацию или таблицу, если вы используете оптимизацию ASHA. Для получения дополнительной информации смотрите Байесовую Оптимизацию и Оптимизацию ASHA.
Когда вы устанавливаете 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) | Преобразованная в журнал потеря валидации предполагаемого минимума — Когда вы используете Байесовую оптимизацию, По умолчанию, Примечание Этот столбец появляется только, когда вы используете Байесовую оптимизацию, то есть, когда |
Training set size | Количество наблюдений, используемых в каждом наборе обучающих данных в этой итерации — Использование Примечание Этот столбец появляется только, когда вы используете оптимизацию ASHA, то есть, когда |
Learner | Тип модели, оцененный в этой итерации — Задает учеников, используемых в оптимизации при помощи Learners аргумент значения имени. |
Hyperparameter: Value | Значения гиперпараметра в этой итерации — Задают гиперпараметры, используемые в оптимизации при помощи OptimizeHyperparameters аргумент значения имени. |
Отображение также включает эти описания модели:
Best observed learner
— Эта модель, с перечисленным типом ученика и значениями гиперпараметра, уступает, финал наблюдал минимальную (преобразованную в журнал) потерю валидации. Когда вы используете оптимизацию ASHA, fitrauto
переобучает модель на целом обучающем наборе данных и возвращает его как Mdl
вывод .
Best estimated learner
— Эта модель, с перечисленным типом ученика и гиперзначениями параметров, уступает, финал оценил минимальную потерю валидации (преобразованную в журнал), когда вы используете Байесовую оптимизацию. В этом случае, fitrauto
переобучает модель на целом обучающем наборе данных и возвращает его как Mdl
вывод .
Примечание
Best estimated learner
модель появляется только, когда вы используете Байесовую оптимизацию, то есть, когда Optimizer
поле HyperparameterOptimizationOptions
аргумент значения имени установлен в "bayesopt"
.
В зависимости от размера вашего набора данных, количества учеников, которых вы задаете, и метод оптимизации, который вы выбираете, fitrauto
может занять время, чтобы запуститься.
Если у вас есть лицензия Parallel Computing Toolbox, можно ускорить расчеты путем выполнения оптимизации параллельно. Для этого задайте "HyperparameterOptimizationOptions",struct("UseParallel",true)
. Можно включать дополнительные поля в структуру, чтобы управлять другими аспектами оптимизации. Смотрите HyperparameterOptimizationOptions
.
Если fitrauto
с Байесовой оптимизацией занимает много времени, чтобы запуститься из-за количества наблюдений в вашем наборе обучающих данных (например, более чем 10 000), рассмотреть использование fitrauto
с оптимизацией ASHA вместо этого. Оптимизация ASHA часто находит хорошие решения быстрее, чем Байесова оптимизация для наборов данных со многими наблюдениями. Чтобы использовать оптимизацию ASHA, задайте "HyperparameterOptimizationOptions",struct("Optimizer","asha")
. Можно включать дополнительные поля в структуру, чтобы управлять дополнительными аспектами оптимизации. В частности, если вы имеете ограничение времени, задаете MaxTime
поле HyperparameterOptimizationOptions
структура, чтобы ограничить номер секунд fitrauto
запуски.
Когда вы задаете "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
.
Асинхронный последовательный алгоритм сокращения вдвое (ASHA) в fitrauto
случайным образом выбирает несколько моделей с различными гиперзначениями параметров (см. Learners
и OptimizeHyperparameters
) и обучает их на небольшом подмножестве обучающих данных. Если эффективность конкретной модели обещает, модель продвинута и обучена на большей сумме обучающих данных. Этот процесс повторения и успешные модели обучен на прогрессивно больших объемах данных. По умолчанию, в конце оптимизации, fitrauto
выбирает модель, которая имеет самый низкий журнал (1 + valLoss) значение, где valLoss является среднеквадратической ошибкой (MSE) перекрестной проверки.
В каждой итерации ASHA любой выбирает ранее обученную модель и продвигает его (то есть, переобучает модель с помощью большего количества обучающих данных), или выбирает новую модель (тип ученика и гиперзначения параметров) использование случайного поиска. ASHA продвигает модели можно следующим образом:
Алгоритм ищет группу моделей с самым большим размером набора обучающих данных, для которого это условие не содержит: floor(g/4)
из моделей были продвинуты, где g
количество моделей в группе.
Среди группы моделей ASHA выбирает модель с самым низким журналом (1 + valLoss) значение и переобучает ту модель с 4*(Training Set Size)
наблюдения.
Если никакая такая группа моделей не существует, то ASHA выбирает новую модель вместо того, чтобы продвинуть старую и обучает новую модель с помощью самого маленького размера набора обучающих данных.
Когда модель обучена на подмножестве обучающих данных, ASHA вычисляет перекрестную проверку MSE в можно следующим образом:
Для каждого учебного сгиба алгоритм выбирает случайную выборку наблюдений (размера Training set size
) использование не расслоило выборку, и затем обучает модель на том подмножестве данных.
Алгоритм затем тестирует подобранную модель на тестовом сгибе (то есть, наблюдения не в учебном сгибе) и вычисляет MSE.
Наконец, алгоритм составляет в среднем результаты через все сгибы.
Для получения дополнительной информации о ASHA см. [1].
Когда вы используете оптимизацию ASHA, количество по умолчанию итераций зависит от количества наблюдений в данных, количества типов ученика, использования параллельной обработки и типа перекрестной проверки. Алгоритм выбирает количество итераций, таким образом что для типов ученика L (см. Learners
), fitrauto
обучает модели L на самом большом размере набора обучающих данных.
Эта таблица описывает количество по умолчанию итераций на основе данных технических требований, когда вы используете 5-кратную перекрестную проверку. Обратите внимание на то, что n представляет количество наблюдений, и L представляет количество типов ученика.
Количество наблюдений n | Количество по умолчанию итераций (запуститесь в сериале), | Количество по умолчанию итераций runInParallel, |
---|---|---|
n <500 | 30*L — n слишком мал, чтобы реализовать оптимизацию ASHA, и fitrauto реализует случайный поиск, чтобы найти и оценить модели вместо этого. | 30*L — n слишком мал, чтобы реализовать оптимизацию ASHA, и fitrauto реализует случайный поиск, чтобы найти и оценить модели вместо этого. |
500 ≤ n <2000 | 5*L | 5* (L + 1) |
2 000 ≤ n <8000 | 21*L | 21* (L + 1) |
8 000 ≤ n <32,000 | 85*L | 85* (L + 1) |
32 000 ≤ n | 341*L | 341* (L + 1) |
Если вы не уверены, какие модели работают лучше всего на ваш набор данных, можно альтернативно использовать приложение Regression Learner. Используя приложение, можно выполнить гиперпараметр, настраивающийся для различных моделей, и выбрать оптимизированную модель, которая выполняет лучше всего. Несмотря на то, что необходимо выбрать определенную модель, прежде чем можно будет настроить гиперпараметры модели, Regression Learner обеспечивает большую гибкость для выбора optimizable гиперпараметров и установки гиперзначений параметров. Приложение также позволяет вам обучать множество моделей линейной регрессии (см. Модели Линейной регрессии). Однако вы не можете оптимизировать параллельно, оптимизировать "linear"
или "kernel"
ученики, задайте веса наблюдения или используйте оптимизацию ASHA в приложении. Для получения дополнительной информации смотрите Гипероптимизацию параметров управления в Приложении Regression Learner.
Если вы знаете, какие модели могут удовлетворить вашим данным, можно альтернативно использовать соответствующие подходящие функции модели и задать OptimizeHyperparameters
аргумент значения имени, чтобы настроить гиперпараметры. Можно сравнить результаты через модели, чтобы выбрать лучшую модель регрессии. Поскольку пример этого процесса применился к моделям классификации, смотрите, что Двигающий Выбор Модели Автоматизации Использует Байесовую Оптимизацию.
[1] Литий, Лиам, Кевин Джемисон, Afshin Rostamizadeh, Екатерина Гонина, Мориц Хардт, Бенджамин Речт и Амит Тэлволкэр. “Система для Настройки Гиперпараметра С массовым параллелизмом”. ArXiv:1810.05934v5 [Cs], 16 марта 2020. https://arxiv.org/abs/1810.05934v5.
Чтобы выполнить параллельную гипероптимизацию параметров управления, используйте "HyperparameterOptimizationOptions",struct("UseParallel",true)
аргумент значения имени в вызове этой функции.
Для более общей информации о параллельных вычислениях смотрите функции MATLAB Запуска с Автоматической Параллельной Поддержкой (Parallel Computing Toolbox).
fitrensemble
| fitrgp
| fitrkernel
| fitrlinear
| fitrsvm
| fitrtree
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.