Подгонка классификатора дискриминантного анализа
возвращает подобранную дискриминантную модель анализа, основанную на входных переменных (также известных как предикторы, функции или атрибуты), содержащихся в таблице Mdl = fitcdiscr(Tbl,ResponseVarName)Tbl и выход (ответ или метки), содержащийся в ResponseVarName.
подходит для классификатора с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение", с использованием любого из предыдущих синтаксисов. Например, можно оптимизировать гиперпараметры, чтобы минимизировать потери перекрестной валидации модели или указать стоимость неправильной классификации, предыдущие вероятности для каждого класса или веса наблюдений.Mdl = fitcdiscr(___,Name,Value)
Загрузите набор данных радужки Фишера.
load fisheririsОбучите дискриминантную модель анализа, используя весь набор данных.
Mdl = fitcdiscr(meas,species)
Mdl =
ClassificationDiscriminant
ResponseName: 'Y'
CategoricalPredictors: []
ClassNames: {'setosa' 'versicolor' 'virginica'}
ScoreTransform: 'none'
NumObservations: 150
DiscrimType: 'linear'
Mu: [3x4 double]
Coeffs: [3x3 struct]
Properties, Methods
Mdl является ClassificationDiscriminant модель. Для доступа к его свойствам используйте запись через точку. Для примера отобразите средства группы для каждого предиктора.
Mdl.Mu
ans = 3×4
5.0060 3.4280 1.4620 0.2460
5.9360 2.7700 4.2600 1.3260
6.5880 2.9740 5.5520 2.0260
Чтобы предсказать метки для новых наблюдений, передайте Mdl и данные предиктора в predict.
В этом примере показано, как автоматически оптимизировать гиперпараметры с помощью fitcdiscr. В примере используются данные радужки глаза Фишера.
Загрузите данные.
load fisheririsНайдите гиперпараметры, которые минимизируют пятикратные потери при перекрестной проверке с помощью автоматической оптимизации гипероптимизации параметров управления.
Для воспроизводимости установите случайный seed и используйте 'expected-improvement-plus' функция сбора.
rng(1) Mdl = fitcdiscr(meas,species,'OptimizeHyperparameters','auto',... 'HyperparameterOptimizationOptions',... struct('AcquisitionFunctionName','expected-improvement-plus'))
|=====================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | Delta | Gamma | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 1 | Best | 0.66667 | 0.55243 | 0.66667 | 0.66667 | 13.261 | 0.25218 | | 2 | Best | 0.02 | 0.17844 | 0.02 | 0.064227 | 2.7404e-05 | 0.073264 | | 3 | Accept | 0.04 | 0.15491 | 0.02 | 0.020084 | 3.2455e-06 | 0.46974 | | 4 | Accept | 0.66667 | 0.11846 | 0.02 | 0.020118 | 14.879 | 0.98622 | | 5 | Accept | 0.046667 | 0.10819 | 0.02 | 0.019907 | 0.00031449 | 0.97362 | | 6 | Accept | 0.04 | 0.11485 | 0.02 | 0.028438 | 4.5092e-05 | 0.43616 | | 7 | Accept | 0.046667 | 0.10354 | 0.02 | 0.031424 | 2.0973e-05 | 0.9942 | | 8 | Accept | 0.02 | 0.1555 | 0.02 | 0.022424 | 1.0554e-06 | 0.0024286 | | 9 | Accept | 0.02 | 0.12372 | 0.02 | 0.021105 | 1.1232e-06 | 0.00014039 | | 10 | Accept | 0.02 | 0.13178 | 0.02 | 0.020948 | 0.00011837 | 0.0032994 | | 11 | Accept | 0.02 | 0.1158 | 0.02 | 0.020172 | 1.0292e-06 | 0.027725 | | 12 | Accept | 0.02 | 0.22338 | 0.02 | 0.020105 | 9.7792e-05 | 0.0022817 | | 13 | Accept | 0.02 | 0.15953 | 0.02 | 0.020038 | 0.00036014 | 0.0015136 | | 14 | Accept | 0.02 | 0.09463 | 0.02 | 0.019597 | 0.00021059 | 0.0044789 | | 15 | Accept | 0.02 | 0.09261 | 0.02 | 0.019461 | 1.1911e-05 | 0.0010135 | | 16 | Accept | 0.02 | 0.11499 | 0.02 | 0.01993 | 0.0017896 | 0.00071115 | | 17 | Accept | 0.02 | 0.1367 | 0.02 | 0.019551 | 0.00073745 | 0.0066899 | | 18 | Accept | 0.02 | 0.11117 | 0.02 | 0.019776 | 0.00079304 | 0.00011509 | | 19 | Accept | 0.02 | 0.13474 | 0.02 | 0.019678 | 0.007292 | 0.0007911 | | 20 | Accept | 0.046667 | 0.15404 | 0.02 | 0.019785 | 0.0074408 | 0.99945 | |=====================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | Delta | Gamma | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 21 | Accept | 0.02 | 0.10375 | 0.02 | 0.019043 | 0.0036004 | 0.0024547 | | 22 | Accept | 0.02 | 0.10974 | 0.02 | 0.019755 | 2.5238e-05 | 0.0015542 | | 23 | Accept | 0.02 | 0.11078 | 0.02 | 0.0191 | 1.5478e-05 | 0.0026899 | | 24 | Accept | 0.02 | 0.1206 | 0.02 | 0.019081 | 0.0040557 | 0.00046815 | | 25 | Accept | 0.02 | 0.20069 | 0.02 | 0.019333 | 2.959e-05 | 0.0011358 | | 26 | Accept | 0.02 | 0.10306 | 0.02 | 0.019369 | 2.3111e-06 | 0.0029205 | | 27 | Accept | 0.02 | 0.10212 | 0.02 | 0.019455 | 3.8898e-05 | 0.0011665 | | 28 | Accept | 0.02 | 0.17711 | 0.02 | 0.019449 | 0.0035925 | 0.0020278 | | 29 | Accept | 0.66667 | 0.14566 | 0.02 | 0.019479 | 998.93 | 0.064276 | | 30 | Accept | 0.02 | 0.1077 | 0.02 | 0.01947 | 8.1557e-06 | 0.0008004 |


__________________________________________________________
Optimization completed.
MaxObjectiveEvaluations of 30 reached.
Total function evaluations: 30
Total elapsed time: 50.4135 seconds
Total objective function evaluation time: 4.3606
Best observed feasible point:
Delta Gamma
__________ ________
2.7404e-05 0.073264
Observed objective function value = 0.02
Estimated objective function value = 0.022693
Function evaluation time = 0.17844
Best estimated feasible point (according to models):
Delta Gamma
__________ _________
2.5238e-05 0.0015542
Estimated objective function value = 0.01947
Estimated function evaluation time = 0.13427
Mdl =
ClassificationDiscriminant
ResponseName: 'Y'
CategoricalPredictors: []
ClassNames: {'setosa' 'versicolor' 'virginica'}
ScoreTransform: 'none'
NumObservations: 150
HyperparameterOptimizationResults: [1x1 BayesianOptimization]
DiscrimType: 'linear'
Mu: [3x4 double]
Coeffs: [3x3 struct]
Properties, Methods
Подгонка достигает около 2% потерь при 5-кратной перекрестной валидации по умолчанию.
В этом примере показано, как автоматически оптимизировать гиперпараметры модели дискриминантного анализа с помощью длинный массив. Набор выборочных данных airlinesmall.csv является большим набором данных, который содержит табличный файл данных о рейсах авиакомпании. Этот пример создает длинная таблица, содержащий данные, и использует его, чтобы запустить процедуру оптимизации.
При выполнении вычислений на длинные массивы MATLAB ® использует либо параллельный пул (по умолчанию, если у вас есть Parallel Computing Toolbox™), либо локальный сеанс работы с MATLAB. Если вы хотите запустить пример с помощью локального сеанса работы с MATLAB, когда у вас есть Parallel Computing Toolbox, можно изменить глобальное окружение выполнения, используя mapreducer функция.
Создайте datastore, которое ссылается на расположение папки с данными. Выберите подмножество переменных для работы и обработки 'NA' значения как отсутствующие данные, так что datastore заменяет их на NaN значения. Создайте длинная таблица, который содержит данные в datastore.
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); Стандартизируйте переменные предиктора.
Z = zscore(X);
Оптимизируйте гиперпараметры автоматически с помощью 'OptimizeHyperparameters' аргумент пары "имя-значение". Нахождение оптимального 'DiscrimType' значение, которое минимизирует потери перекрестной валидации удержания. (Определение 'auto' использует 'DiscrimType'.) Для воспроизводимости используйте 'expected-improvement-plus' и установите начальные значения генераторов случайных чисел, используя rng и tallrng. Результаты могут варьироваться в зависимости от количества рабочих процессов и окружения выполнения для длинных массивов. Для получения дополнительной информации смотрите Управление, Где Ваш Код Запуски.
rng('default') tallrng('default') [Mdl,FitInfo,HyperparameterOptimizationResults] = fitcdiscr(Z,Y,... 'OptimizeHyperparameters','auto',... 'HyperparameterOptimizationOptions',struct('Holdout',0.3,... 'AcquisitionFunctionName','expected-improvement-plus'))
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 2: Completed in 5.7 sec - Pass 2 of 2: Completed in 4.3 sec Evaluation completed in 16 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 2.5 sec Evaluation completed in 2.8 sec |======================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | DiscrimType | | | result | | runtime | (observed) | (estim.) | | |======================================================================================| | 1 | Best | 0.11354 | 25.315 | 0.11354 | 0.11354 | quadratic |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.5 sec Evaluation completed in 2.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.4 sec Evaluation completed in 1.6 sec | 2 | Accept | 0.11354 | 7.9367 | 0.11354 | 0.11354 | pseudoQuadra |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.87 sec Evaluation completed in 2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.78 sec Evaluation completed in 0.91 sec | 3 | Accept | 0.12869 | 6.5057 | 0.11354 | 0.11859 | pseudoLinear |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.9 sec Evaluation completed in 1.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.3 sec Evaluation completed in 1.4 sec | 4 | Accept | 0.12745 | 6.4167 | 0.11354 | 0.1208 | diagLinear |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.85 sec Evaluation completed in 1.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.8 sec Evaluation completed in 0.93 sec | 5 | Accept | 0.12869 | 6.1236 | 0.11354 | 0.12238 | linear |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.85 sec Evaluation completed in 1.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.75 sec Evaluation completed in 0.9 sec | 6 | Best | 0.11301 | 5.4147 | 0.11301 | 0.12082 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.82 sec Evaluation completed in 1.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.77 sec Evaluation completed in 0.89 sec | 7 | Accept | 0.11301 | 5.297 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.84 sec Evaluation completed in 1.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.8 sec Evaluation completed in 0.93 sec | 8 | Accept | 0.11301 | 5.6152 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.3 sec Evaluation completed in 2.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.75 sec Evaluation completed in 0.88 sec | 9 | Accept | 0.11301 | 5.9147 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.88 sec Evaluation completed in 1.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.3 sec Evaluation completed in 1.4 sec | 10 | Accept | 0.11301 | 6.0504 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.82 sec Evaluation completed in 1.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.3 sec Evaluation completed in 1.4 sec | 11 | Accept | 0.11301 | 5.9595 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.86 sec Evaluation completed in 1.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.76 sec Evaluation completed in 0.91 sec | 12 | Accept | 0.11301 | 5.4266 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.88 sec Evaluation completed in 1.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.75 sec Evaluation completed in 0.87 sec | 13 | Accept | 0.11301 | 5.3869 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.83 sec Evaluation completed in 1.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.8 sec Evaluation completed in 0.97 sec | 14 | Accept | 0.11301 | 5.4876 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.85 sec Evaluation completed in 1.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.73 sec Evaluation completed in 0.85 sec | 15 | Accept | 0.11301 | 5.4052 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.87 sec Evaluation completed in 1.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.78 sec Evaluation completed in 0.9 sec | 16 | Accept | 0.11301 | 5.4434 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.89 sec Evaluation completed in 1.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.8 sec Evaluation completed in 0.93 sec | 17 | Accept | 0.11301 | 5.5804 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.94 sec Evaluation completed in 1.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.79 sec Evaluation completed in 0.92 sec | 18 | Accept | 0.11354 | 5.616 | 0.11301 | 0.11301 | pseudoQuadra |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.85 sec Evaluation completed in 1.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.76 sec Evaluation completed in 0.88 sec | 19 | Accept | 0.11301 | 5.4031 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.76 sec Evaluation completed in 1.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.75 sec Evaluation completed in 0.88 sec | 20 | Accept | 0.11301 | 5.1974 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.77 sec Evaluation completed in 1.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.75 sec Evaluation completed in 0.87 sec |======================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | DiscrimType | | | result | | runtime | (observed) | (estim.) | | |======================================================================================| | 21 | Accept | 0.11301 | 5.1418 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.3 sec Evaluation completed in 2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.73 sec Evaluation completed in 0.86 sec | 22 | Accept | 0.11301 | 5.9864 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.88 sec Evaluation completed in 1.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.78 sec Evaluation completed in 0.91 sec | 23 | Accept | 0.11354 | 5.5656 | 0.11301 | 0.11301 | quadratic |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.82 sec Evaluation completed in 1.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.77 sec Evaluation completed in 0.9 sec | 24 | Accept | 0.11354 | 5.3012 | 0.11301 | 0.11301 | pseudoQuadra |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.4 sec Evaluation completed in 2.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.77 sec Evaluation completed in 0.9 sec | 25 | Accept | 0.11301 | 6.2276 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.86 sec Evaluation completed in 1.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.77 sec Evaluation completed in 0.89 sec | 26 | Accept | 0.11301 | 5.5308 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.92 sec Evaluation completed in 1.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.88 sec Evaluation completed in 1 sec | 27 | Accept | 0.11301 | 5.7396 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.83 sec Evaluation completed in 1.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.78 sec Evaluation completed in 0.9 sec | 28 | Accept | 0.11354 | 5.4403 | 0.11301 | 0.11301 | quadratic |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.86 sec Evaluation completed in 1.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.81 sec Evaluation completed in 0.93 sec | 29 | Accept | 0.11301 | 5.3572 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.89 sec Evaluation completed in 1.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.74 sec Evaluation completed in 0.85 sec | 30 | Accept | 0.11354 | 5.2718 | 0.11301 | 0.11301 | quadratic |


__________________________________________________________
Optimization completed.
MaxObjectiveEvaluations of 30 reached.
Total function evaluations: 30
Total elapsed time: 229.5689 seconds.
Total objective function evaluation time: 191.058
Best observed feasible point:
DiscrimType
_____________
diagQuadratic
Observed objective function value = 0.11301
Estimated objective function value = 0.11301
Function evaluation time = 5.4147
Best estimated feasible point (according to models):
DiscrimType
_____________
diagQuadratic
Estimated objective function value = 0.11301
Estimated function evaluation time = 5.784
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.76 sec
Evaluation completed in 1.4 sec
Mdl =
CompactClassificationDiscriminant
PredictorNames: {'x1' 'x2' 'x3' 'x4' 'x5' 'x6'}
ResponseName: 'Y'
CategoricalPredictors: []
ClassNames: [0 1]
ScoreTransform: 'none'
DiscrimType: 'diagQuadratic'
Mu: [2×6 double]
Coeffs: [2×2 struct]
Properties, Methods
FitInfo = struct with no fields.
HyperparameterOptimizationResults =
BayesianOptimization with properties:
ObjectiveFcn: @createObjFcn/tallObjFcn
VariableDescriptions: [1×1 optimizableVariable]
Options: [1×1 struct]
MinObjective: 0.1130
XAtMinObjective: [1×1 table]
MinEstimatedObjective: 0.1130
XAtMinEstimatedObjective: [1×1 table]
NumObjectiveEvaluations: 30
TotalElapsedTime: 229.5689
NextPoint: [1×1 table]
XTrace: [30×1 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]
Tbl - Выборочные данныеВыборочные данные, используемых для обучения модели, заданная как таблица. Каждая строка Tbl соответствует одному наблюдению, и каждый столбец соответствует одной переменной предиктора. Опционально Tbl может содержать один дополнительный столбец для переменной отклика. Многополюсные переменные и массивы ячеек, отличные от массивов ячеек векторов символов, не разрешены.
Если Tbl содержит переменную отклика, и необходимо использовать все оставшиеся переменные в Tbl в качестве предикторов, затем задайте переменную отклика при помощи ResponseVarName.
Если Tbl содержит переменную отклика, и необходимо использовать только подмножество остальных переменных в Tbl в качестве предикторов задайте формулу при помощи formula.
Если Tbl не содержит переменную отклика, затем задает переменную отклика при помощи Y. Длина переменной отклика и количество строк в Tbl должно быть равным.
Типы данных: table
ResponseVarName - Имя переменной откликаTblИмя переменной отклика, заданное как имя переменной в Tbl.
Вы должны задать ResponseVarName как вектор символов или строковый скаляр. Для примера, если переменная отклика Y хранится как Tbl.Y, затем укажите его следующим 'Y'. В противном случае программное обеспечение обрабатывает все столбцы Tbl, включая Y, как предикторы при обучении модели.
Переменная отклика должна быть категориальными символьными или строковыми массивами; логический или числовой вектор; или массив ячеек из векторов символов. Если Y является символьным массивом, тогда каждый элемент переменной отклика должен соответствовать одной строке массива.
Хорошей практикой является определение порядка классов при помощи ClassNames аргумент имя-значение.
Типы данных: 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 представляет классификацию соответствующей строки X.
Программное обеспечение рассматривает NaN, '' (пустой символьный вектор), "" (пустая строка), <missing>, и <undefined> значения в Y чтобы быть отсутствующими значениями. Следовательно, программное обеспечение не обучается, используя наблюдения с отсутствующим ответом.
Типы данных: categorical | char | string | logical | single | double | cell
X - Данные предиктораПредикторные значения, заданные как числовая матрица. Каждый столбец X представляет одну переменную, и каждая строка представляет одно наблюдение.
fitcdiscr рассматривает NaN значения в X как отсутствующие значения. fitcdiscr не использует наблюдения с отсутствующими значениями для X в подгонке.
Типы данных: single | double
Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.
'DiscrimType','quadratic','SaveMemory','on' задает квадратичный классификатор дискриминантов и не хранит матрицу ковариации в объекте выхода.Примечание
Вы не можете использовать какой-либо аргумент пары "имя-значение" перекрестной проверки наряду с 'OptimizeHyperparameters' аргумент пары "имя-значение". Можно изменить перекрестную валидацию для 'OptimizeHyperparameters' только при помощи 'HyperparameterOptimizationOptions' аргумент пары "имя-значение".
'ClassNames' - Имена классов, используемых для обученияИмена классов, используемых для обучения, заданные как категориальные символьные или строковые массивы; логический или числовой вектор; или массив ячеек из векторов символов. ClassNames должен иметь тот совпадающий тип данных, что и переменная отклика в Tbl или Y.
Если ClassNames является символьный массив, тогда каждый элемент должен соответствовать одной строке массива.
Использование ClassNames кому:
Задайте порядок классов во время обучения.
Задайте порядок любой размерности входного или выходного аргумента, которая соответствует порядку классов. Для примера используйте ClassNames для определения порядка размерностей Cost или порядок столбцов классификационных оценок, возвращаемых predict.
Выберите подмножество классов для обучения. Например, предположим, что набор всех различных имен классов в Y является {'a','b','c'}. Чтобы обучить модель с помощью наблюдений из классов 'a' и 'c' только, задайте 'ClassNames',{'a','c'}.
Значение по умолчанию для ClassNames - набор всех различных имен классов в переменной отклика в Tbl или Y.
Пример: 'ClassNames',{'b','g'}
Типы данных: categorical | char | string | logical | single | double | cell
'Cost' - Стоимость неправильной классификацииСтоимость неправильной классификации точки, заданная как разделенная разделенными запятой парами, состоящая из 'Cost' и одно из следующих:
Квадратная матрица, где Cost(i,j) - стоимость классификации точки в класс j если его класс true i (т.е. строки соответствуют истинному классу, а столбцы - предсказанному классу). Чтобы задать порядок классов для соответствующих строк и столбцов Cost, дополнительно задайте ClassNames аргумент пары "имя-значение".
Структурные S имеющий два поля: S.ClassNames содержащие имена групп как переменные того же типа, что и Y, и S.ClassificationCosts содержащая матрицу затрат.
Значение по умолчанию является Cost(i,j)=1 если i~=j, и Cost(i,j)=0 если i=j.
Типы данных: single | double | struct
'Delta' - Порог линейного коэффициента0 (по умолчанию) | неотрицательное скалярное значениеЛинейный порог коэффициента, заданный как разделенная разделенными запятой парами, состоящая из 'Delta' и неотрицательное скалярное значение. Если коэффициент Mdl имеет величину меньше Delta, Mdl устанавливает этот коэффициент равным 0, и можно исключить из модели соответствующий предиктор. Задайте Delta к более высокому значению, чтобы исключить больше предикторов.
Delta должен быть 0 для квадратичных дискриминантных моделей.
Типы данных: single | double
'DiscrimType' - Дискриминантный тип'linear' (по умолчанию) | 'quadratic' | 'diaglinear' | 'diagquadratic' | 'pseudolinear' | 'pseudoquadratic'Дискриминантный тип, заданный как разделенная разделенными запятой парами, состоящая из 'DiscrimType' и вектор символов или строковый скаляр в этой таблице.
| Значение | Описание | Лечение Ковариации предиктора |
|---|---|---|
'linear' | Регуляризованный линейный дискриминантный анализ (LDA) |
|
'diaglinear' | LDA | Все классы имеют одинаковую диагональную ковариационную матрицу. |
'pseudolinear' | LDA | Все классы имеют одинаковую ковариационную матрицу. Программа инвертирует ковариационную матрицу, используя псевдоанверс. |
'quadratic' | Квадратичный дискриминантный анализ (QDA) | Ковариационные матрицы могут варьироваться среди классов. |
'diagquadratic' | QDA | Ковариационные матрицы диагональны и могут варьироваться среди классов. |
'pseudoquadratic' | QDA | Ковариационные матрицы могут варьироваться среди классов. Программа инвертирует ковариационную матрицу, используя псевдоанверс. |
Примечание
Чтобы использовать регуляризацию, необходимо задать 'linear'. Чтобы задать количество регуляризации, используйте Gamma аргумент пары "имя-значение".
Пример: 'DiscrimType','quadratic'
'FillCoeffs' — Coeffs флаг свойств'on' | 'off'Coeffs флаг свойства, заданный как разделенная разделенными запятой парами, состоящая из 'FillCoeffs' и 'on' или 'off'. Установка флага на 'on' заполняет Coeffs свойство в объекте классификатора. Это может быть интенсивным в вычислительном отношении, особенно при перекрестной проверке. Значение по умолчанию является 'on', если вы не задаете пару "имя-значение" перекрестной проверки, в этом случае флаг устанавливается на 'off' по умолчанию.
Пример: 'FillCoeffs','off'
'Gamma' - Количество регуляризацииКоличество регуляризации для применения при оценке ковариационной матрицы предикторов, заданное как разделенная разделенными запятой парами, состоящая из 'Gamma' и скалярное значение в интервале [0,1]. Gamma обеспечивает более мелкий контроль над ковариацией матрицы, чем DiscrimType.
Если вы задаете 0, тогда программное обеспечение не использует регуляризацию, чтобы настроить ковариационную матрицу. То есть программное обеспечение оценивает и использует неограниченную, эмпирическую ковариационную матрицу.
Для линейного дискриминантного анализа, если эмпирическая ковариационная матрица сингулярна, то программное обеспечение автоматически применяет минимальную регуляризацию, необходимую для инвертирования ковариационной матрицы. Выбранную сумму регуляризации можно просмотреть путем ввода Mdl.Gamma в командной строке.
Для квадратичного дискриминантного анализа, если по крайней мере один класс имеет эмпирическую ковариационную матрицу, которая сингулярна, то программа выдает ошибку.
Если вы задаете значение в интервале (0,1), то необходимо реализовать линейный дискриминантный анализ, в противном случае программа выдает ошибку. Следовательно, программное обеспечение устанавливает DiscrimType на 'linear'.
Если вы задаете 1затем программное обеспечение использует максимальную регуляризацию для ковариации матрицы. То есть программное обеспечение ограничивает матрицу ковариации диагональю. Также можно задать DiscrimType на 'diagLinear' или 'diagQuadratic' для диагональных ковариационных матриц.
Пример: 'Gamma',1
Типы данных: single | double
'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 выбрать, какие переменные предиктора использовать в обучении. То есть, fitcdiscr использует только переменные предиктора в PredictorNames и переменной отклика во время обучения.
PredictorNames должен быть подмножеством Tbl.Properties.VariableNames и не может включать имя переменной отклика.
По умолчанию PredictorNames содержит имена всех переменных предиктора.
Хорошей практикой является определение предикторов для обучения с использованием любой из 'PredictorNames' или formula, но не то и другое.
Пример: 'PredictorNames',{'SepalLength','SepalWidth','PetalLength','PetalWidth'}
Типы данных: string | cell
'Prior' - Предыдущие вероятности'empirical' (по умолчанию) | 'uniform' | вектор скалярных значений | структурыПредыдущие вероятности для каждого класса, заданные как разделенная разделенными запятой парами, состоящая из 'Prior' и значение в этой таблице.
| Значение | Описание |
|---|---|
'empirical' | Предшествующие вероятности классов являются относительными частотами классов в Y. |
'uniform' | Все предыдущие вероятности классов равны 1/ K, где K - количество классов. |
| числовой вектор | Каждый элемент является классом предыдущей вероятности. Упорядочивайте элементы согласно Mdl.ClassNames или укажите порядок с помощью ClassNames аргумент пары "имя-значение". Программное обеспечение нормализует элементы так, что они суммируются с 1. |
| структура | Структурный
|
Если вы задаете значения для обоих Weights и Priorвеса перенормированы, чтобы суммировать значение предшествующей вероятности в соответствующем классе.
Пример: 'Prior','uniform'
Типы данных: char | string | single | double | struct
'ResponseName' - Имя переменной отклика'Y' (по умолчанию) | символьный вектор | строковый скалярИмя переменной отклика, заданное как вектор символов или строковый скаляр.
Если вы поставляете Y, тогда можно использовать 'ResponseName' чтобы задать имя для переменной отклика.
Если вы поставляете ResponseVarName или formula, тогда вы не можете использовать 'ResponseName'.
Пример: 'ResponseName','response'
Типы данных: char | string
'SaveMemory' - Флаг для сохранения ковариационной матрицы'off' (по умолчанию) | 'on'Флаг для сохранения ковариационной матрицы, заданный как разделенная разделенными запятой парами, состоящая из 'SaveMemory' и любой из них 'on' или 'off'. Если вы задаете 'on', затем fitcdiscr не хранит полную ковариационную матрицу, но вместо этого хранит достаточно информации для вычисления матрицы. The predict метод вычисляет полную ковариационную матрицу для предсказания и не хранит матрицу. Если вы задаете 'off', затем fitcdiscr вычисляет и хранит полную ковариационную матрицу в Mdl.
Задайте SaveMemory как 'on' когда матрица входа содержит тысячи предикторов.
Пример: 'SaveMemory','on'
'ScoreTransform' - Преобразование счета'none' (по умолчанию) | 'doublelogit' | 'invlogit' | 'ismax' | 'logit' | указатель на функцию |...Преобразование счета, заданное как вектор символов, строковый скаляр или указатель на функцию.
В этой таблице результирующие векторы символов и строковые скаляры.
| Значение | Описание |
|---|---|
'doublelogit' | 1/(1 + e–2x) |
'invlogit' | журнал (x/( 1 - x)) |
'ismax' | Устанавливает счет для класса с самым большим счетом равным 1 и устанавливает счета для всех других классов равным 0 |
'logit' | 1/(1 + e–x) |
'none' или 'identity' | x (без преобразования) |
'sign' | -1 для x < 0 0 для x = 0 1 для x > 0 |
'symmetric' | 2 x – 1 |
'symmetricismax' | Устанавливает счет для класса с самым большим счетом равным 1 и устанавливает счета для всех других классов равной -1 |
'symmetriclogit' | 2/(1 + e–x) – 1 |
Для функции MATLAB или функции, которую вы задаете, используйте указатель на функцию для преобразования счета. Указатель на функцию должен принять матрицу (исходные счета) и вернуть матрицу того же размера (преобразованные счета).
Пример: 'ScoreTransform','logit'
Типы данных: char | string | function_handle
'Weights' - Веса наблюденийTblВеса наблюдений, заданные как разделенная разделенными запятой парами, состоящая из 'Weights' и числовой вектор положительных значений или имени переменной в Tbl. Программа взвешивает наблюдения в каждой строке X или Tbl с соответствующим значением в Weights. Размер Weights должно равняться количеству строк X или Tbl.
Если вы задаете входные данные как таблицу Tbl, затем Weights может быть именем переменной в Tbl который содержит числовой вектор. В этом случае необходимо задать Weights как вектор символов или строковый скаляр. Для примера, если вектор весов W хранится как Tbl.W, затем укажите его следующим 'W'. В противном случае программное обеспечение обрабатывает все столбцы Tbl, включая W, как предикторы или реакция при обучении модели.
Программное обеспечение нормализует Weights суммировать до значения предшествующей вероятности в соответствующем классе.
По умолчанию Weights это таковые , где (n,1)n количество наблюдений в X или Tbl.
Типы данных: double | single | char | string
'CrossVal' - флаг перекрестной валидации'off' (по умолчанию) | 'on'Флаг перекрестной проверки, заданный как разделенная разделенными запятой парами, состоящая из 'Crossval' и 'on' или 'off'.
Если вы задаете 'on'затем программное обеспечение реализует 10-кратную перекрестную валидацию.
Чтобы переопределить этот параметр перекрестной проверки, используйте один из следующих аргументов пары "имя-значение": CVPartition, Holdout, KFold, или Leaveout. Чтобы создать перекрестно проверенную модель, можно использовать один аргумент пары "имя-значение" перекрестной валидации только за раз.
Другой способ - выполнить перекрестную проверку позже путем передачи Mdl на crossval.
Пример: 'CrossVal','on'
'CVPartition' - Раздел перекрестной проверки[] (по умолчанию) | cvpartition Объект разделаРаздел перекрестной проверки, заданный как cvpartition объект раздела, созданный cvpartition. Объект раздела задает тип перекрестной валидации и индексацию для наборов обучения и валидации.
Чтобы создать перекрестно проверенную модель, можно задать только один из следующих четырех аргументов в виде имя-значение: CVPartition, Holdout, KFold, или Leaveout.
Пример: Предположим, что вы создаете случайный разбиение для 5-кратной перекрестной валидации при 500 наблюдениях при помощи cvp = cvpartition(500,'KFold',5). Затем можно задать перекрестно проверенную модель при помощи 'CVPartition',cvp.
'Holdout' - Доля данных для валидации отключенияДоля данных, используемых для валидации удержания, заданная в виде скалярного значения в области значений (0,1). Если вы задаете 'Holdout',p, затем программное обеспечение завершает следующие шаги:
Случайный выбор и резервирование p*100% данных в качестве данных валидации и train модели с использованием остальных данных.
Сохраните компактную, обученную модель в Trained свойство перекрестно проверенной модели.
Чтобы создать перекрестно проверенную модель, можно задать только один из следующих четырех аргументов в виде имя-значение: CVPartition, Holdout, KFold, или Leaveout.
Пример: 'Holdout',0.1
Типы данных: double | single
'KFold' - Количество складок10 (по умолчанию) | положительное целое значение, больше 1Количество складок для использования в перекрестно проверенной модели, заданное как положительное целое значение, больше 1. Если вы задаете 'KFold',k, затем программное обеспечение завершает следующие шаги:
Случайным образом разделите данные на k наборы.
Для каждого набора зарезервируйте набор как данные валидации и обучите модель, используя другой k - 1 комплект.
Сохраните k компактные, обученные модели в k-by-1 вектор камеры в Trained свойство перекрестно проверенной модели.
Чтобы создать перекрестно проверенную модель, можно задать только один из следующих четырех аргументов в виде имя-значение: CVPartition, Holdout, KFold, или Leaveout.
Пример: 'KFold',5
Типы данных: single | double
'Leaveout' - Оставьте один из флагов перекрестной проверки'off' (по умолчанию) | 'on'Выходной флаг перекрестной проверки, заданный как 'on' или 'off'. Если вы задаете 'Leaveout','on', затем для каждого из n наблюдений (где n - количество наблюдений, исключая недостающие наблюдения, заданное в NumObservations свойство модели), программное обеспечение завершает следующие шаги:
Зарезервируйте одно наблюдение как данные валидации и обучите модель с помощью другого n - 1 наблюдений.
Сохраните n компактные обученные модели в векторе камеры n-на-1 в Trained свойство перекрестно проверенной модели.
Чтобы создать перекрестно проверенную модель, можно задать только один из следующих четырех аргументов в виде имя-значение: CVPartition, Holdout, KFold, или Leaveout.
Пример: 'Leaveout','on'
'OptimizeHyperparameters' - Параметры для оптимизации'none' (по умолчанию) | 'auto' | 'all' | строковые массивы или массив ячеек из допустимых имен параметров | вектор optimizableVariable объектыОптимизируемые параметры, заданные как разделенная разделенными запятой парами, состоящая из 'OptimizeHyperparameters' и одно из следующих:
'none' - Не оптимизировать.
'auto' - Использовать {'Delta','Gamma'}.
'all' - Оптимизируйте все подходящие параметры.
Строковые массивы или массив ячеек с допустимыми именами параметров.
Вектор optimizableVariable объекты, как правило, выходные данные hyperparameters.
Оптимизация пытается минимизировать потери перекрестной валидации (ошибка) для fitcdiscr путем изменения параметров. Для получения информации о потерях при перекрестной проверке (хотя и в другом контексте), смотрите Классификационные потери. Чтобы контролировать тип перекрестной валидации и другие аспекты оптимизации, используйте HyperparameterOptimizationOptions Пара "имя-значение".
Примечание
'OptimizeHyperparameters' значения переопределяют все значения, которые вы устанавливаете, используя другие аргументы пары "имя-значение". Для примера установка 'OptimizeHyperparameters' на 'auto' вызывает 'auto' значения для применения.
Подходящие параметры для fitcdiscr являются:
Delta — fitcdiscr поиск среди положительных значений, по умолчанию логарифмический в области значений [1e-6,1e3].
DiscrimType — fitcdiscr поиск среди 'linear', 'quadratic', 'diagLinear', 'diagQuadratic', 'pseudoLinear', и 'pseudoQuadratic'.
Gamma — fitcdiscr ищет среди вещественных значений в области значений [0,1].
Установите параметры nondefault путем передачи вектора optimizableVariable объекты, которые имеют значения nondefault. Для примера,
load fisheriris params = hyperparameters('fitcdiscr',meas,species); params(1).Range = [1e-4,1e6];
Передайте params как значение OptimizeHyperparameters.
По умолчанию итеративное отображение появляется в командной строке, и графики появляются согласно количеству гиперпараметров в оптимизации. Для оптимизации и графиков целевой функцией является журнал ( 1 + потери перекрестной валидации) для регрессии и коэффициент неправильной классификации для классификации. Чтобы управлять итеративным отображением, установите Verbose поле 'HyperparameterOptimizationOptions' аргумент пары "имя-значение". Чтобы управлять графиками, установите ShowPlots поле 'HyperparameterOptimizationOptions' аргумент пары "имя-значение".
Для получения примера смотрите Оптимизацию Дискриминантной Модели Анализа.
Пример: 'auto'
'HyperparameterOptimizationOptions' - Опции для оптимизацииОпции оптимизации, заданные как разделенная разделенными запятой парами, состоящая из 'HyperparameterOptimizationOptions' и структуру. Этот аргумент изменяет эффект OptimizeHyperparameters аргумент пары "имя-значение". Все поля в структуре являются необязательными.
| Имя поля | Значения | Дефолт |
|---|---|---|
Optimizer |
| 'bayesopt' |
AcquisitionFunctionName |
Функции сбора данных, имена которых включают | 'expected-improvement-per-second-plus' |
MaxObjectiveEvaluations | Максимальное количество вычислений целевой функции. | 30 для 'bayesopt' или 'randomsearch', и вся сетка для 'gridsearch' |
MaxTime | Временной предел, заданный как положительный действительный. Предел времени в секундах, что измеряется | Inf |
NumGridDivisions | Для 'gridsearch', количество значений в каждой размерности. Значение может быть вектором положительных целых чисел, дающих количество значений для каждой размерности, или скаляром, который применяется ко всем размерностям. Это поле игнорируется для категориальных переменных. | 10 |
ShowPlots | Логическое значение, указывающее, показывать ли графики. Если true, это поле строит график наилучшего значения целевой функции относительно числа итерации. Если существует один или два параметра оптимизации и если Optimizer является 'bayesopt', затем ShowPlots также строит график модели целевой функции относительно параметров. | true |
SaveIntermediateResults | Логическое значение, указывающее, сохранять ли результаты при Optimizer является 'bayesopt'. Если true, это поле перезаписывает переменную рабочей области с именем 'BayesoptResults' при каждой итерации. Переменная является BayesianOptimization объект. | false |
Verbose | Отображение в командной строке.
Для получения дополнительной информации смотрите | 1 |
UseParallel | Логическое значение, указывающее, запускать ли байесовскую оптимизацию параллельно, что требует Parallel Computing Toolbox™. Из-за непродуктивности параллельной синхронизации параллельная байесовская оптимизация не обязательно приводит к воспроизводимым результатам. Для получения дополнительной информации см. «Параллельная байесовская оптимизация». | false |
Repartition | Логическое значение, указывающее, следует ли повторять перекрестную валидацию при каждой итерации. Если
| false |
| Используйте не более одного из следующих трех имен полей. | ||
CVPartition | A cvpartition объект, созданный cvpartition. | 'Kfold',5 если вы не задаете какое-либо поле перекрестной проверки |
Holdout | Скаляр в области значений (0,1) представляющий фракцию удержания. | |
Kfold | Целое число, больше 1. | |
Пример: 'HyperparameterOptimizationOptions',struct('MaxObjectiveEvaluations',60)
Типы данных: struct
Mdl - Обученная классификационная модель анализа дискриминантовClassificationDiscriminant объект модели | ClassificationPartitionedModel перекрестно проверенный объект моделиОбученная модель классификации дискриминантного анализа, возвращенная как ClassificationDiscriminant объект модели или ClassificationPartitionedModel перекрестно проверенный объект модели.
Если вы задаете любой из аргументов пары "имя-значение" KFold, Holdout, CrossVal, или CVPartition, затем Mdl является ClassificationPartitionedModel перекрестно проверенный объект модели. В противном случае Mdl является ClassificationDiscriminant объект модели.
Ссылка на свойства Mdl, используйте запись через точку. Для примера, чтобы отобразить предполагаемые средства компонента в Командном окне, введите Mdl.Mu.
Модель для дискриминантного анализа:
Каждый класс (Y) генерирует данные (X) с использованием многомерного нормального распределения. То есть модель принимает X имеет Гауссово-смешанное распределение (gmdistribution).
Для линейного дискриминантного анализа модель имеет ту же ковариационную матрицу для каждого класса, варьируются только средства.
Для квадратичного дискриминантного анализа как средства, так и ковариации каждого класса варьируются.
predict классифицирует так, чтобы минимизировать ожидаемые классификационные затраты:
где
- предсказанная классификация.
K - количество классов.
- апостериорная вероятность k классов для x наблюдений.
- стоимость классификации наблюдения как y, когда его истинный класс k.
Для получения дополнительной информации смотрите Предсказание с использованием дискриминантных моделей анализа.
После обучения модели можно сгенерировать код C/C + +, который предсказывает метки для новых данных. Для генерации кода C/C + + требуется MATLAB Coder™. Для получения дополнительной информации смотрите Введение в генерацию кода .
classify функция также выполняет дискриминантный анализ. classify обычно более неловко использовать.
classify требует, чтобы вы подгоняли классификатор каждый раз, когда вы делаете новое предсказание.
classify не выполняет перекрестную валидацию или оптимизацию гипероптимизации параметров управления.
classify требует, чтобы вы подгоняли классификатор при изменении предыдущих вероятностей.
Указания и ограничения по применению:
Поддерживаемые синтаксисы:
Mdl = fitcdiscr(Tbl,Y)
Mdl = fitcdiscr(X,Y)
Mdl = fitcdiscr(___,Name,Value)
[Mdl,FitInfo,HyperparameterOptimizationResults] = fitcdiscr(___,Name,Value) — fitcdiscr возвращает дополнительные выходные аргументы FitInfo и HyperparameterOptimizationResults когда вы задаете 'OptimizeHyperparameters' аргумент пары "имя-значение".
The FitInfo выходной аргумент является пустым массивом структур, зарезервированным в настоящее время для возможного будущего использования.
The HyperparameterOptimizationResults выходной аргумент является BayesianOptimization объект или таблица гиперпараметров со связанными значениями, которые описывают оптимизацию гиперпараметров перекрестной валидации.
'HyperparameterOptimizationResults' не пуст, когда 'OptimizeHyperparameters' аргумент пары "имя-значение" не пуст в то время, когда вы создаете модель. Значения в 'HyperparameterOptimizationResults' зависят от значения, заданного для 'HyperparameterOptimizationOptions' аргумент пары "имя-значение" при создании модели.
Если вы задаете 'bayesopt' (по умолчанию), затем HyperparameterOptimizationResults является объектом класса BayesianOptimization.
Если вы задаете 'gridsearch' или 'randomsearch', затем HyperparameterOptimizationResults - таблица используемых гиперпараметров, наблюдаемых значений целевой функции (потери перекрестной валидации) и ранга наблюдений от самого низкого (лучшего) до самого высокого (худшего).
Поддерживаемые аргументы пары "имя-значение" и любые различия:
'ClassNames'
'Cost'
'DiscrimType'
'HyperparameterOptimizationOptions' - Для перекрестной валидации tall optimization поддерживает только 'Holdout' валидация. По умолчанию программное обеспечение выбирает и резервирует 20% данных в качестве данных валидации удержания и обучает модель, используя остальную часть данных. Вы можете задать другое значение для задержанной дроби с помощью этого аргумента. Для примера задайте 'HyperparameterOptimizationOptions',struct('Holdout',0.3) зарезервировать 30% данных в качестве данных валидации.
'OptimizeHyperparameters' - Единственным подходящим параметром для оптимизации является 'DiscrimType'. Определение 'auto' использует 'DiscrimType'.
'PredictorNames'
'Prior'
'ResponseName'
'ScoreTransform'
'Weights'
Для длинные массивы и длинные таблицы, fitcdiscr возвращает CompactClassificationDiscriminant объект, который содержит большую часть тех же свойств, что и ClassificationDiscriminant объект. Основное различие заключается в том, что компактный объект чувствителен к требованиям памяти. Компактный объект не включает свойства, которые включают данные или включают массив того же размера, что и данные. Компактный объект не содержит эти ClassificationDiscriminant свойства:
ModelParameters
NumObservations
HyperparameterOptimizationResults
RowsUsed
XCentered
W
X
Y
Кроме того, компактный объект не поддерживает эти ClassificationDiscriminant методы:
compact
crossval
cvshrink
resubEdge
resubLoss
resubMargin
resubPredict
Для получения дополнительной информации см. Раздел «Длинные массивы»
Чтобы выполнить параллельную оптимизацию гипероптимизации параметров управления, используйте 'HyperparameterOptimizationOptions', struct('UseParallel',true) аргумент имя-значение в вызове этой функции.
Для получения дополнительной информации об оптимизации параллельной гипероптимизации параметров управления смотрите Parallel Bayesian Optimization.
Общие сведения о параллельных вычислениях см. в разделе Запуск функций MATLAB с поддержкой автоматических параллелей (Parallel Computing Toolbox).
ClassificationDiscriminant | ClassificationPartitionedModel | classify | crossval | predict
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.