В этом примере показано, как использовать байесовскую оптимизацию для выбора оптимальных параметров для обучения классификатора ядра с помощью 'OptimizeHyperparameters' аргумент «имя-значение». Набор данных образца airlinesmall.csv - большой набор данных, содержащий табличный файл данных о полетах авиакомпании. В этом примере создается таблица высокого уровня, содержащая данные, и извлекаются метки классов и данные предиктора из таблицы высокого уровня для выполнения процедуры оптимизации.
При выполнении вычислений в массивах TALL MATLAB ® использует либо параллельный пул (по умолчанию при наличии Toolbox™ Parallel Computing), либо локальный сеанс MATLAB. Если требуется выполнить пример с использованием локального сеанса MATLAB при наличии панели инструментов Parallel Computing Toolbox, можно изменить глобальную среду выполнения с помощью mapreducer функция.
Создайте хранилище данных, которое ссылается на расположение папки с данными. Данные могут содержаться в одном файле, коллекции файлов или во всей папке. Для папок, содержащих коллекцию файлов, можно указать расположение всей папки или использовать подстановочный символ. '*.csv', для включения в хранилище данных нескольких файлов с одинаковым расширением. Выберите подмножество переменных для работы и обработайте 'NA' значения как отсутствующие данные, так что datastore заменяет их на NaN значения. Создайте таблицу высокого уровня, содержащую данные в хранилище данных.
ds = datastore('airlinesmall.csv'); ds.SelectedVariableNames = {'Month','DayofMonth','DayOfWeek',... 'DepTime','ArrDelay','Distance','DepDelay'}; ds.TreatAsMissing = 'NA'; tt = tall(ds) % Tall table
Starting parallel pool (parpool) using the 'local' profile ...
Connected to the parallel pool (number of workers: 6).
tt =
M×7 tall table
Month DayofMonth DayOfWeek DepTime ArrDelay Distance DepDelay
_____ __________ _________ _______ ________ ________ ________
10 21 3 642 8 308 12
10 26 1 1021 8 296 1
10 23 5 2055 21 480 20
10 23 5 1332 13 296 12
10 22 4 629 4 373 -1
10 28 3 1446 59 308 63
10 8 4 928 3 447 -2
10 10 6 859 11 954 -1
: : : : : : :
: : : : : : :
Определите рейсы с опозданием на 10 минут или более, определив логическую переменную, которая является истинной для позднего полета. Эта переменная содержит метки класса. Предварительный просмотр этой переменной включает первые несколько строк.
Y = tt.DepDelay > 10 % Class labelsY = M×1 tall logical array 1 0 1 1 0 1 0 0 : :
Создайте массив с высоким значением для данных предиктора.
X = tt{:,1:end-1} % Predictor dataX =
M×6 tall double matrix
10 21 3 642 8 308
10 26 1 1021 8 296
10 23 5 2055 21 480
10 23 5 1332 13 296
10 22 4 629 4 373
10 28 3 1446 59 308
10 8 4 928 3 447
10 10 6 859 11 954
: : : : : :
: : : : : :
Удалить строки в X и Y которые содержат отсутствующие данные.
R = rmmissing([X Y]); % Data with missing entries removed
X = R(:,1:end-1);
Y = R(:,end); OptimizeHyperparametersАвтоматическая оптимизация гиперпараметров с помощью 'OptimizeHyperparameters' аргумент «имя-значение».
Стандартизация переменных предиктора.
Z = zscore(X);
Найдите оптимальные значения для 'KernelScale' и 'Lambda' аргументы «имя-значение», которые минимизируют потери в наборе проверки удержания. По умолчанию программа выбирает и резервирует 20% данных в качестве данных проверки и обучает модель, используя остальные данные. Можно изменить долю удержания с помощью 'HyperparameterOptimizationOptions' аргумент «имя-значение». Для воспроизводимости используйте 'expected-improvement-plus' функция обнаружения и установка начальных значений генераторов случайных чисел с помощью rng и tallrng. Результаты могут варьироваться в зависимости от количества работников и среды выполнения для массивов tall. Дополнительные сведения см. в разделе Управление местом запуска кода.
rng('default') tallrng('default') Mdl = fitckernel(Z,Y,'Verbose',0,'OptimizeHyperparameters','auto',... 'HyperparameterOptimizationOptions',struct('AcquisitionFunctionName','expected-improvement-plus'))
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 2: Completed in 7.1 sec - Pass 2 of 2: Completed in 2.2 sec Evaluation completed in 12 sec
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.6 sec Evaluation completed in 1.8 sec |=====================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | KernelScale | Lambda | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 1 | Best | 0.19672 | 125.49 | 0.19672 | 0.19672 | 1.2297 | 0.0080902 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.93 sec Evaluation completed in 1.1 sec | 2 | Accept | 0.19672 | 53.653 | 0.19672 | 0.19672 | 0.039643 | 2.5756e-05 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.5 sec Evaluation completed in 1.6 sec | 3 | Accept | 0.19672 | 52.453 | 0.19672 | 0.19672 | 0.02562 | 1.2555e-08 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.2 sec | 4 | Accept | 0.19672 | 57.223 | 0.19672 | 0.19672 | 92.644 | 1.2056e-07 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.4 sec Evaluation completed in 1.5 sec | 5 | Best | 0.11469 | 89.981 | 0.11469 | 0.12698 | 11.173 | 0.00024836 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.94 sec Evaluation completed in 1.1 sec | 6 | Best | 0.11365 | 82.031 | 0.11365 | 0.11373 | 10.609 | 0.00025761 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.92 sec Evaluation completed in 1.1 sec | 7 | Accept | 0.19672 | 50.604 | 0.11365 | 0.11373 | 0.0059498 | 0.00043861 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.89 sec Evaluation completed in 1 sec | 8 | Accept | 0.12122 | 91.341 | 0.11365 | 0.11371 | 11.44 | 0.00045722 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.97 sec Evaluation completed in 1.1 sec | 9 | Best | 0.10417 | 42.696 | 0.10417 | 0.10417 | 8.0424 | 6.7998e-05 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.87 sec Evaluation completed in 1 sec | 10 | Accept | 0.10433 | 42.215 | 0.10417 | 0.10417 | 9.6694 | 1.4948e-05 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.87 sec Evaluation completed in 1 sec | 11 | Best | 0.10409 | 41.618 | 0.10409 | 0.10411 | 6.2099 | 6.1093e-06 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.88 sec Evaluation completed in 1 sec | 12 | Best | 0.10383 | 44.635 | 0.10383 | 0.10404 | 5.6767 | 7.6134e-08 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.89 sec Evaluation completed in 1 sec | 13 | Accept | 0.10408 | 45.429 | 0.10383 | 0.10365 | 8.1769 | 8.5993e-09 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.89 sec Evaluation completed in 1 sec | 14 | Accept | 0.10404 | 41.928 | 0.10383 | 0.10361 | 7.6191 | 6.4079e-07 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.93 sec Evaluation completed in 1.1 sec | 15 | Best | 0.10351 | 42.094 | 0.10351 | 0.10362 | 4.2987 | 9.2645e-08 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.88 sec Evaluation completed in 1 sec | 16 | Accept | 0.10404 | 44.684 | 0.10351 | 0.10362 | 4.8747 | 1.7838e-08 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.87 sec Evaluation completed in 1 sec | 17 | Accept | 0.10657 | 88.006 | 0.10351 | 0.10357 | 4.8239 | 0.00016344 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.88 sec Evaluation completed in 1 sec | 18 | Best | 0.10299 | 41.303 | 0.10299 | 0.10358 | 3.5555 | 2.7165e-06 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.89 sec Evaluation completed in 1 sec | 19 | Accept | 0.10366 | 41.301 | 0.10299 | 0.10324 | 3.8035 | 1.3542e-06 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.87 sec Evaluation completed in 0.99 sec | 20 | Accept | 0.10337 | 41.345 | 0.10299 | 0.10323 | 3.806 | 1.8101e-06 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.89 sec Evaluation completed in 1 sec |=====================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | KernelScale | Lambda | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 21 | Accept | 0.10345 | 41.418 | 0.10299 | 0.10322 | 3.3655 | 9.082e-09 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.86 sec Evaluation completed in 0.98 sec | 22 | Accept | 0.19672 | 60.129 | 0.10299 | 0.10322 | 999.62 | 1.2609e-06 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.88 sec Evaluation completed in 1 sec | 23 | Accept | 0.10315 | 41.133 | 0.10299 | 0.10306 | 3.6716 | 1.2445e-08 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.88 sec Evaluation completed in 1 sec | 24 | Accept | 0.19672 | 48.262 | 0.10299 | 0.10306 | 0.0010004 | 2.6214e-08 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.89 sec Evaluation completed in 1 sec | 25 | Accept | 0.19672 | 48.334 | 0.10299 | 0.10306 | 0.21865 | 0.0026529 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.86 sec Evaluation completed in 0.98 sec | 26 | Accept | 0.19672 | 60.229 | 0.10299 | 0.10306 | 299.92 | 0.0032109 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.87 sec Evaluation completed in 0.99 sec | 27 | Accept | 0.19672 | 48.361 | 0.10299 | 0.10306 | 0.002436 | 0.0040428 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 1.4 sec | 28 | Accept | 0.19672 | 52.539 | 0.10299 | 0.10305 | 0.50559 | 3.3667e-08 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.88 sec Evaluation completed in 1 sec | 29 | Accept | 0.10354 | 43.957 | 0.10299 | 0.10313 | 3.7754 | 9.5626e-09 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.93 sec Evaluation completed in 1.1 sec | 30 | Accept | 0.10405 | 41.388 | 0.10299 | 0.10315 | 8.9864 | 2.3136e-07 |


__________________________________________________________
Optimization completed.
MaxObjectiveEvaluations of 30 reached.
Total function evaluations: 30
Total elapsed time: 1677.1387 seconds
Total objective function evaluation time: 1645.7748
Best observed feasible point:
KernelScale Lambda
___________ __________
3.5555 2.7165e-06
Observed objective function value = 0.10299
Estimated objective function value = 0.10332
Function evaluation time = 41.3029
Best estimated feasible point (according to models):
KernelScale Lambda
___________ __________
3.6716 1.2445e-08
Estimated objective function value = 0.10315
Estimated function evaluation time = 42.3461
Mdl =
ClassificationKernel
PredictorNames: {'x1' 'x2' 'x3' 'x4' 'x5' 'x6'}
ResponseName: 'Y'
ClassNames: [0 1]
Learner: 'svm'
NumExpansionDimensions: 256
KernelScale: 3.6716
Lambda: 1.2445e-08
BoxConstraint: 665.9442
Properties, Methods
bayesoptКроме того, можно использовать bayesopt функция для поиска оптимальных значений гиперпараметров.
Разбейте набор данных на учебные и тестовые наборы. Укажите образец с удержанием 1/3 для тестового набора.
rng('default') % For reproducibility tallrng('default') % For reproducibility Partition = cvpartition(Y,'Holdout',1/3); trainingInds = training(Partition); % Indices for the training set testInds = test(Partition); % Indices for the test set
Извлеките данные обучения и тестирования и стандартизируйте данные предиктора.
Ytrain = Y(trainingInds); % Training class labels Xtrain = X(trainingInds,:); [Ztrain,mu,stddev] = zscore(Xtrain); % Standardized training data Ytest = Y(testInds); % Testing class labels Xtest = X(testInds,:); Ztest = (Xtest-mu)./stddev; % Standardized test data
Определение переменных sigma и lambda чтобы найти оптимальные значения для 'KernelScale' и 'Lambda' аргументы «имя-значение». Использовать optimizableVariable и укажите широкий диапазон для переменных, поскольку оптимальные значения неизвестны. Примените логарифмическое преобразование к переменным для поиска оптимальных значений в логарифмической шкале.
N = gather(numel(Ytrain)); % Evaluate the length of the tall training array in memoryEvaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: 0% complete Evaluation 0% complete
- Pass 1 of 1: Completed in 0.95 sec Evaluation 91% complete

Evaluation completed in 1.1 sec
sigma = optimizableVariable('sigma',[1e-3,1e3],'Transform','log'); lambda = optimizableVariable('lambda',[(1e-3)/N, (1e3)/N],'Transform','log');
Создайте целевую функцию для байесовской оптимизации. Целевая функция принимает в таблице, которая содержит переменные sigma и lambda, а затем вычисляет значение потери классификации для двоичной модели классификации ядра Гаусса, обученной с использованием fitckernel функция. Набор 'Verbose',0 в fitckernel подавление итеративного отображения диагностической информации.
minfn = @(z)gather(loss(fitckernel(Ztrain,Ytrain, ... 'KernelScale',z.sigma,'Lambda',z.lambda,'Verbose',0), ... Ztest,Ytest));
Оптимизация параметров [sigma,lambda] модели классификации ядра в отношении потери классификации с помощью bayesopt. По умолчанию bayesopt отображает итеративную информацию об оптимизации в командной строке. Для воспроизводимости установите значение AcquisitionFunctionName опция для 'expected-improvement-plus'. Функция сбора данных по умолчанию зависит от времени выполнения и, следовательно, может давать различные результаты.
results = bayesopt(minfn,[sigma,lambda],'AcquisitionFunctionName','expected-improvement-plus')
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.3 sec |=====================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | sigma | lambda | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 1 | Best | 0.19651 | 84.526 | 0.19651 | 0.19651 | 1.2297 | 0.012135 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.2 sec | 2 | Accept | 0.19651 | 112.57 | 0.19651 | 0.19651 | 0.039643 | 3.8633e-05 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.3 sec | 3 | Accept | 0.19651 | 80.282 | 0.19651 | 0.19651 | 0.02562 | 1.8832e-08 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.3 sec | 4 | Accept | 0.19651 | 52.306 | 0.19651 | 0.19651 | 92.644 | 1.8084e-07 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.2 sec | 5 | Accept | 0.19651 | 52.717 | 0.19651 | 0.19651 | 978.95 | 0.00015066 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.2 sec | 6 | Accept | 0.19651 | 90.336 | 0.19651 | 0.19651 | 0.0089609 | 0.0059189 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.2 sec | 7 | Accept | 0.19651 | 110.35 | 0.19651 | 0.19651 | 0.0010228 | 1.292e-08 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.3 sec | 8 | Accept | 0.19651 | 76.594 | 0.19651 | 0.19651 | 0.27475 | 0.0044831 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.2 sec | 9 | Accept | 0.19651 | 77.641 | 0.19651 | 0.19651 | 0.81326 | 1.0753e-07 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.2 sec | 10 | Accept | 0.19651 | 100.21 | 0.19651 | 0.19651 | 0.0040507 | 0.00011333 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.2 sec | 11 | Accept | 0.19651 | 52.287 | 0.19651 | 0.19651 | 964.67 | 1.2786e-08 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.2 sec | 12 | Accept | 0.19651 | 107.7 | 0.19651 | 0.19651 | 0.24069 | 0.0070503 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.2 sec | 13 | Accept | 0.19651 | 52.092 | 0.19651 | 0.19651 | 974.15 | 0.010898 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.3 sec | 14 | Accept | 0.19651 | 92.184 | 0.19651 | 0.19651 | 0.0013246 | 0.0011748 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.2 sec | 15 | Accept | 0.19651 | 87.893 | 0.19651 | 0.19651 | 0.0067415 | 1.9074e-07 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.3 sec | 16 | Accept | 0.19651 | 110.46 | 0.19651 | 0.19651 | 0.020448 | 1.247e-08 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.2 sec | 17 | Accept | 0.19651 | 104.12 | 0.19651 | 0.19651 | 0.0016556 | 0.0001784 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.2 sec | 18 | Accept | 0.19651 | 85.263 | 0.19651 | 0.19651 | 0.0047914 | 2.3289e-06 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.2 sec | 19 | Accept | 0.19651 | 52.102 | 0.19651 | 0.19651 | 90.015 | 0.00024412 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.3 sec | 20 | Accept | 0.19651 | 82.238 | 0.19651 | 0.19651 | 0.68775 | 2.7178e-07 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.2 sec |=====================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | sigma | lambda | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 21 | Accept | 0.19651 | 49.468 | 0.19651 | 0.19651 | 49.073 | 0.00014766 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.2 sec | 22 | Accept | 0.19651 | 49.183 | 0.19651 | 0.19651 | 25.955 | 8.4946e-05 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.2 sec | 23 | Accept | 0.19651 | 84.781 | 0.19651 | 0.19651 | 0.002241 | 1.6284e-06 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.2 sec | 24 | Accept | 0.19651 | 90.023 | 0.19651 | 0.19651 | 0.060661 | 0.00041011 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.2 sec | 25 | Accept | 0.19651 | 87.349 | 0.19651 | 0.19651 | 0.035771 | 0.0023369 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.3 sec | 26 | Accept | 0.19651 | 49.932 | 0.19651 | 0.19651 | 713.45 | 3.5177e-08 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.2 sec | 27 | Accept | 0.19651 | 87.169 | 0.19651 | 0.19651 | 0.012395 | 1.8186e-06 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.2 sec | 28 | Accept | 0.19651 | 94.87 | 0.19651 | 0.19651 | 0.042872 | 0.0015886 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.2 sec | 29 | Best | 0.10795 | 37.932 | 0.10795 | 0.19346 | 1.5886 | 4.9128e-07 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.3 sec | 30 | Accept | 0.19651 | 52.241 | 0.10795 | 0.19356 | 236.64 | 5.0506e-06 |


__________________________________________________________
Optimization completed.
MaxObjectiveEvaluations of 30 reached.
Total function evaluations: 30
Total elapsed time: 2455.5118 seconds
Total objective function evaluation time: 2346.8025
Best observed feasible point:
sigma lambda
______ __________
1.5886 4.9128e-07
Observed objective function value = 0.10795
Estimated objective function value = 0.19356
Function evaluation time = 37.9317
Best estimated feasible point (according to models):
sigma lambda
______ __________
1.5886 4.9128e-07
Estimated objective function value = 0.19356
Estimated function evaluation time = 66.1901
results =
BayesianOptimization with properties:
ObjectiveFcn: @(z)gather(loss(fitckernel(Ztrain,Ytrain,'KernelScale',z.sigma,'Lambda',z.lambda,'Verbose',0),Ztest,Ytest))
VariableDescriptions: [1×2 optimizableVariable]
Options: [1×1 struct]
MinObjective: 0.1079
XAtMinObjective: [1×2 table]
MinEstimatedObjective: 0.1936
XAtMinEstimatedObjective: [1×2 table]
NumObjectiveEvaluations: 30
TotalElapsedTime: 2.4555e+03
NextPoint: [1×2 table]
XTrace: [30×2 table]
ObjectiveTrace: [30×1 double]
ConstraintsTrace: []
UserDataTrace: {30×1 cell}
ObjectiveEvaluationTimeTrace: [30×1 double]
IterationTimeTrace: [30×1 double]
ErrorTrace: [30×1 double]
FeasibilityTrace: [30×1 logical]
FeasibilityProbabilityTrace: [30×1 double]
IndexOfMinimumTrace: [30×1 double]
ObjectiveMinimumTrace: [30×1 double]
EstimatedObjectiveMinimumTrace: [30×1 double]
Возврат наиболее подходящей точки в байесовской модели results с помощью bestPoint функция. Использовать критерий по умолчанию min-visited-upper-confidence-interval, которая определяет наилучшую осуществимую точку как посещаемую точку, которая минимизирует верхний доверительный интервал для значения целевой функции.
zbest = bestPoint(results)
zbest=1×2 table
sigma lambda
______ __________
1.5886 4.9128e-07
Стол zbest содержит оптимальные оценочные значения для 'KernelScale' и 'Lambda' аргументы «имя-значение». Эти значения можно указать при обучении нового оптимизированного классификатора ядра с помощью
Mdl = fitckernel(Ztrain,Ytrain,'KernelScale',zbest.sigma,'Lambda',zbest.lambda)
Для больших массивов процедура оптимизации может занять много времени. Если набор данных слишком велик для выполнения процедуры оптимизации, можно попытаться оптимизировать параметры, используя только частичные данные. Используйте datasample функции и указать 'Replace','false' для выборки данных без замены.
bayesopt | bestPoint | cvpartition | datastore | fitckernel | gather | loss | optimizableVariable | tall