Подходящий классификатор дискриминантного анализа
Mdl = fitcdiscr(Tbl,ResponseVarName)Mdl = fitcdiscr(Tbl,formula)Mdl = fitcdiscr(Tbl,Y)Mdl = fitcdiscr(X,Y)Mdl = fitcdiscr(___,Name,Value) возвращает подходящий дискриминантный анализ, основанный на модели на входных переменных (также известный как предикторы, функции или атрибуты) содержавшийся в таблице Mdl = fitcdiscr(Tbl,ResponseVarName)Tbl и выводе (ответ или метки) содержавшийся в ResponseVarName.
соответствует классификатору дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение", с помощью любого из предыдущих синтаксисов. Например, можно оптимизировать гиперпараметры, чтобы минимизировать потерю перекрестной проверки модели или задать стоимость misclassification, априорных вероятностей для каждого класса или весов наблюдения.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 | 1.0739 | 0.66667 | 0.66667 | 13.261 | 0.25218 |
| 2 | Best | 0.02 | 0.24502 | 0.02 | 0.064227 | 2.7404e-05 | 0.073264 |
| 3 | Accept | 0.04 | 0.15206 | 0.02 | 0.020084 | 3.2455e-06 | 0.46974 |
| 4 | Accept | 0.66667 | 0.2126 | 0.02 | 0.020118 | 14.879 | 0.98622 |
| 5 | Accept | 0.046667 | 0.21423 | 0.02 | 0.019907 | 0.00031449 | 0.97362 |
| 6 | Accept | 0.04 | 0.1062 | 0.02 | 0.028438 | 4.5092e-05 | 0.43616 |
| 7 | Accept | 0.046667 | 0.10199 | 0.02 | 0.031424 | 2.0973e-05 | 0.9942 |
| 8 | Accept | 0.02 | 0.12136 | 0.02 | 0.022424 | 1.0554e-06 | 0.0024286 |
| 9 | Accept | 0.02 | 0.10635 | 0.02 | 0.021105 | 1.1232e-06 | 0.00014039 |
| 10 | Accept | 0.02 | 0.10791 | 0.02 | 0.020948 | 0.00011837 | 0.0032994 |
| 11 | Accept | 0.02 | 0.10468 | 0.02 | 0.020172 | 1.0292e-06 | 0.027725 |
| 12 | Accept | 0.02 | 0.14593 | 0.02 | 0.020105 | 9.7792e-05 | 0.0022817 |
| 13 | Accept | 0.02 | 0.12938 | 0.02 | 0.020038 | 0.00036014 | 0.0015136 |
| 14 | Accept | 0.02 | 0.11641 | 0.02 | 0.019597 | 0.00021059 | 0.0044789 |
| 15 | Accept | 0.02 | 0.10652 | 0.02 | 0.019461 | 1.1911e-05 | 0.0010135 |
| 16 | Accept | 0.02 | 0.091765 | 0.02 | 0.01993 | 0.0017896 | 0.00071115 |
| 17 | Accept | 0.02 | 0.11065 | 0.02 | 0.019551 | 0.00073745 | 0.0066899 |
| 18 | Accept | 0.02 | 0.10358 | 0.02 | 0.019776 | 0.00079304 | 0.00011509 |
| 19 | Accept | 0.02 | 0.10515 | 0.02 | 0.019678 | 0.007292 | 0.0007911 |
| 20 | Accept | 0.046667 | 0.11465 | 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.1242 | 0.02 | 0.019043 | 0.0036004 | 0.0024547 |
| 22 | Accept | 0.02 | 0.1073 | 0.02 | 0.019755 | 2.5238e-05 | 0.0015542 |
| 23 | Accept | 0.02 | 0.10701 | 0.02 | 0.0191 | 1.5478e-05 | 0.0026899 |
| 24 | Accept | 0.02 | 0.15249 | 0.02 | 0.019081 | 0.0040557 | 0.00046815 |
| 25 | Accept | 0.02 | 0.1324 | 0.02 | 0.019333 | 2.959e-05 | 0.0011358 |
| 26 | Accept | 0.02 | 0.10847 | 0.02 | 0.019369 | 2.3111e-06 | 0.0029205 |
| 27 | Accept | 0.02 | 0.10712 | 0.02 | 0.019455 | 3.8898e-05 | 0.0011665 |
| 28 | Accept | 0.02 | 0.11561 | 0.02 | 0.019449 | 0.0035925 | 0.0020278 |
| 29 | Accept | 0.66667 | 0.1475 | 0.02 | 0.019479 | 998.93 | 0.064276 |
| 30 | Accept | 0.02 | 0.16818 | 0.02 | 0.01947 | 8.1557e-06 | 0.0008004 |
__________________________________________________________
Optimization completed.
MaxObjectiveEvaluations of 30 reached.
Total function evaluations: 30
Total elapsed time: 43.4473 seconds.
Total objective function evaluation time: 4.8406
Best observed feasible point:
Delta Gamma
__________ ________
2.7404e-05 0.073264
Observed objective function value = 0.02
Estimated objective function value = 0.01947
Function evaluation time = 0.24502
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.11757
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 набора выборочных данных является большим набором данных, который содержит табличный файл данных о полете. Этот пример составляет длинную таблицу, содержащую данные, и использует их, чтобы запустить процедуру оптимизации.
Создайте 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
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
: : : : : : :
: : : : : : :
Когда вы выполняете вычисления на длинных массивах, среда выполнения по умолчанию использует или локальный сеанс работы с MATLAB или локальный параллельный пул (если у вас есть Parallel Computing Toolbox™). Можно использовать функцию mapreducer, чтобы изменить среду выполнения.
Определите рейсы, которые являются поздними на 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
Columns 1 through 5
10 21 3 642 8
10 26 1 1021 8
10 23 5 2055 21
10 23 5 1332 13
10 22 4 629 4
10 28 3 1446 59
10 8 4 928 3
10 10 6 859 11
: : : : :
: : : : :
Column 6
308
296
480
296
373
308
447
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' и установите seed генераторов случайных чисел с помощью rng и tallrng. Результаты могут отличаться в зависимости от количества рабочих и среды выполнения для длинных массивов. Для получения дополнительной информации смотрите Управление Где Ваши Выполнения Кода (MATLAB).
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 1.2 sec
- Pass 2 of 2: Completed in 2.9 sec
Evaluation completed in 5.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 2.2 sec
Evaluation completed in 2.3 sec
|======================================================================================|
| Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | DiscrimType |
| | result | | runtime | (observed) | (estim.) | |
|======================================================================================|
| 1 | Best | 0.11354 | 13.025 | 0.11354 | 0.11354 | quadratic |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 2 sec
Evaluation completed in 2.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.4 sec
Evaluation completed in 1.5 sec
| 2 | Accept | 0.11354 | 8.9294 | 0.11354 | 0.11354 | pseudoQuadra |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.4 sec
Evaluation completed in 2.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 1.9 sec
| 3 | Accept | 0.12869 | 9.0278 | 0.11354 | 0.11859 | pseudoLinear |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 2 sec
Evaluation completed in 2.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 2 sec
| 4 | Accept | 0.12745 | 9.718 | 0.11354 | 0.1208 | diagLinear |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 2.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 1.9 sec
| 5 | Accept | 0.12869 | 9.4755 | 0.11354 | 0.12238 | linear |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 2.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 1.9 sec
| 6 | Best | 0.11301 | 9.0462 | 0.11301 | 0.12082 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.5 sec
Evaluation completed in 2.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 2 sec
| 7 | Accept | 0.11301 | 8.6959 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 2 sec
Evaluation completed in 2.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 2 sec
| 8 | Accept | 0.11301 | 9.2616 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.5 sec
Evaluation completed in 2.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 2 sec
| 9 | Accept | 0.11301 | 8.6907 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 2 sec
Evaluation completed in 2.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 1.9 sec
| 10 | Accept | 0.11301 | 9.3004 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 2 sec
Evaluation completed in 2.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.5 sec
Evaluation completed in 1.5 sec
| 11 | Accept | 0.11301 | 8.8961 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 2 sec
Evaluation completed in 2.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 1.9 sec
| 12 | Accept | 0.11301 | 9.1222 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 2 sec
Evaluation completed in 2.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 1.9 sec
| 13 | Accept | 0.11301 | 9.2164 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 2 sec
Evaluation completed in 2.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 2 sec
| 14 | Accept | 0.11301 | 9.2715 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 2 sec
Evaluation completed in 2.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.3 sec
Evaluation completed in 1.4 sec
| 15 | Accept | 0.11301 | 8.8737 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.5 sec
Evaluation completed in 2.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 1.9 sec
| 16 | Accept | 0.11301 | 8.7873 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 2 sec
Evaluation completed in 2.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.4 sec
Evaluation completed in 1.5 sec
| 17 | Accept | 0.11301 | 8.6403 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 2.1 sec
Evaluation completed in 2.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 1.9 sec
| 18 | Accept | 0.11301 | 9.2828 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 2 sec
Evaluation completed in 2.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 2 sec
| 19 | Accept | 0.11301 | 9.2442 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 2 sec
Evaluation completed in 2.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 2 sec
| 20 | Accept | 0.11301 | 9.3528 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 2 sec
Evaluation completed in 2.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 2 sec
|======================================================================================|
| Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | DiscrimType |
| | result | | runtime | (observed) | (estim.) | |
|======================================================================================|
| 21 | Accept | 0.11301 | 9.4836 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 2.1 sec
Evaluation completed in 2.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 1.9 sec
| 22 | Accept | 0.11301 | 9.2958 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 2.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 1.9 sec
| 23 | Accept | 0.11301 | 8.9416 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 2 sec
Evaluation completed in 2.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 1.9 sec
| 24 | Accept | 0.11354 | 9.0714 | 0.11301 | 0.11301 | pseudoQuadra |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 2.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 2 sec
| 25 | Accept | 0.11301 | 9.2182 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.5 sec
Evaluation completed in 2.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.4 sec
Evaluation completed in 1.4 sec
| 26 | Accept | 0.11301 | 8.0149 | 0.11301 | 0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.5 sec
Evaluation completed in 2.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 2 sec
| 27 | Accept | 0.11354 | 8.6475 | 0.11301 | 0.11301 | quadratic |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 2 sec
Evaluation completed in 2.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 2 sec
| 28 | Accept | 0.11354 | 9.2114 | 0.11301 | 0.11301 | quadratic |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 2.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 2 sec
Evaluation completed in 2 sec
| 29 | Accept | 0.12869 | 9.5296 | 0.11301 | 0.11301 | pseudoLinear |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 2.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 1.9 sec
| 30 | Accept | 0.11301 | 8.9192 | 0.11301 | 0.11301 | diagQuadrati |
__________________________________________________________
Optimization completed.
MaxObjectiveEvaluations of 30 reached.
Total function evaluations: 30
Total elapsed time: 313.4344 seconds.
Total objective function evaluation time: 276.1909
Best observed feasible point:
DiscrimType
_____________
diagQuadratic
Observed objective function value = 0.11301
Estimated objective function value = 0.11301
Function evaluation time = 9.0462
Best estimated feasible point (according to models):
DiscrimType
_____________
diagQuadratic
Estimated objective function value = 0.11301
Estimated function evaluation time = 9.0901
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.2 sec
Evaluation completed in 2 sec
Mdl =
classreg.learning.classif.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: 313.4344
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 — Explanatory ответа и подмножество переменных прогнозаОбъяснительная модель ответа и подмножество переменных прогноза, заданных как вектор символов или скаляр строки в форме 'Y~X1+X2+X3'. В этой форме Y представляет переменную отклика, и X1, X2, и X3 представляет переменные прогноза. Переменные должны быть именами переменных в Tbl (Tbl.Properties.VariableNames).
Чтобы задать подмножество переменных в Tbl как предикторы для обучения модель, используйте формулу. Если вы задаете формулу, то программное обеспечение не использует переменных в Tbl, которые не появляются в formula.
Типы данных: 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'DiscrimType','quadratic','SaveMemory','on' задает квадратичный дискриминантный классификатор и не хранит ковариационную матрицу в выходном объекте.Вы не можете использовать аргумент пары "имя-значение" перекрестной проверки наряду с аргументом пары "имя-значение" 'OptimizeHyperparameters'. Можно изменить перекрестную проверку для 'OptimizeHyperparameters' только при помощи аргумента пары "имя-значение" 'HyperparameterOptimizationOptions'.
'ClassNames' — Имена классов, чтобы использовать для обученияИмена классов, чтобы использовать для обучения, заданного как пара, разделенная запятой, состоящая из 'ClassNames' и категориального, символа, или массива строк, логического или числового вектора или массива ячеек из символьных векторов. ClassNames должен иметь совпадающий тип данных как Y.
Если ClassNames является символьным массивом, то каждый элемент должен соответствовать одной строке массива.
Используйте ClassNames для:
Закажите классы во время обучения.
Задайте порядок любой размерности аргумента ввода или вывода, которая соответствует порядку класса. Например, используйте ClassNames, чтобы задать порядок размерностей Cost или порядка следования столбцов очков классификации, возвращенных predict.
Выберите подмножество классов для обучения. Например, предположите, что набором всех отличных имен классов в Y является {'a','b','c'}. Чтобы обучить модель с помощью наблюдений от классов 'a' и 'c' только, задайте 'ClassNames',{'a','c'}.
Значение по умолчанию для ClassNames является набором всех отличных имен классов в Y.
Пример: 'ClassNames',{'b','g'}
Типы данных: categorical | char | string | logical | single | double | cell
'Cost' — Стоимость misclassificationСтоимость misclassification точки, заданной как пара, разделенная запятой, состоящая из 'Cost' и одно из следующего:
Квадратная матрица, где Cost(i,j) является стоимостью классификации точки в класс j, если его истинным классом является i (т.е. строки соответствуют истинному классу и столбцам, соответствует предсказанному классу). Чтобы задать порядок класса для соответствующих строк и столбцов Cost, дополнительно задайте аргумент пары "имя-значение" ClassNames.
Структура S, имеющий два поля: S.ClassNames, содержащий названия группы как переменная того же типа как Y и S.ClassificationCosts, содержащий матрицу стоимости.
Значением по умолчанию является Cost(i,j)=1 если i~=j и Cost(i,j)=0 если i=j.
Типы данных: single | double | struct
'FillCoeffs' — Coeffs'on' | 'off'Флаг свойства Coeffs, заданный как пара, разделенная запятой, состоящая из 'FillCoeffs' и 'on' или 'off'. Установка флага к 'on' заполняет свойство Coeffs в объекте классификатора. Это может быть в вычислительном отношении интенсивно, особенно при перекрестной проверке. Значением по умолчанию является 'on', если вы не задаете пару "имя-значение" перекрестной проверки, в этом случае флаг установлен в 'off' по умолчанию.
Пример: 'FillCoeffs','off'
'PredictorNames' — Имена переменной прогнозаИмена переменной прогноза, заданные как пара, разделенная запятой, состоящая из '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' (значение по умолчанию) | вектор символов | представляет скаляр в виде строкиИмя переменной отклика, заданное как пара, разделенная запятой, состоящая из 'ResponseName' и вектора символов или скаляра строки.
Если вы предоставляете Y, то можно использовать 'ResponseName', чтобы задать имя для переменной отклика.
Если вы предоставляете ResponseVarName или formula, то вы не можете использовать 'ResponseName'.
Пример: 'ResponseName','response'
Типы данных: char | string
'SaveMemory' — Отметьте, чтобы сохранить ковариационную матрицу'off' (значение по умолчанию) | 'on'Отметьте, чтобы сохранить ковариационную матрицу, заданную как пара, разделенная запятой, состоящая из 'SaveMemory' и или 'on' или 'off'. Если вы задаете 'on', то fitcdiscr не хранит полную ковариационную матрицу, но вместо этого хранит достаточно информации, чтобы вычислить матрицу. Метод predict вычисляет полную ковариационную матрицу для прогноза и не хранит матрицу. Если вы задаете 'off', то fitcdiscr вычисляет и хранит полную ковариационную матрицу в Mdl.
Задайте SaveMemory как 'on', когда входная матрица будет содержать тысячи предикторов.
Пример: 'SaveMemory','on'
'ScoreTransform' — Выиграйте преобразование'none' (значение по умолчанию) | 'doublelogit' | 'invlogit' | 'ismax' | 'logit' | указатель на функцию |...Выиграйте преобразование, заданное как пара, разделенная запятой, состоящая из 'ScoreTransform' и вектора символов, представьте в виде строки скаляр или указатель на функцию.
Эта таблица суммирует доступные векторы символов и скаляры строки.
| Значение | Описание |
|---|---|
'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' | 2x – 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 является , где ones(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. Объект раздела задает тип перекрестной проверки и индексации для наборов обучения и валидации.
Чтобы создать перекрестную подтвержденную модель, можно использовать один из этих четырех аргументов пары "имя-значение" только: CVPartition, Holdout, KFold или Leaveout.
Пример: Предположим, что вы создаете случайный раздел для 5-кратной перекрестной проверки на 500 наблюдениях при помощи cvp = cvpartition(500,'KFold',5). Затем можно задать перекрестную подтвержденную модель при помощи 'CVPartition',cvp.
'Holdout' — Часть данных для валидации затяжкиЧасть данных используется для валидации затяжки, заданной как пара, разделенная запятой, состоящая из 'Holdout' и скалярного значения в области значений (0,1). Если вы задаете 'Holdout',p, то программное обеспечение завершает эти шаги:
Случайным образом выберите и зарезервируйте % p*100 данных как данные о валидации и обучите модель с помощью остальной части данных.
Сохраните компактную, обученную модель в свойстве Trained перекрестной подтвержденной модели.
Чтобы создать перекрестную подтвержденную модель, можно использовать один из этих четырех аргументов пары "имя-значение" только: CVPartition, Holdout, KFold или Leaveout.
Пример: 'Holdout',0.1
Типы данных: double | single
'KFold' — Количество сгибов10 (значение по умолчанию) | положительное целочисленное значение, больше, чем 1Количество сгибов, чтобы использовать в перекрестной подтвержденной модели, заданной как пара, разделенная запятой, состоящая из 'KFold' и положительного целочисленного значения, больше, чем 1. Если вы задаете 'KFold',k, то программное обеспечение завершает эти шаги:
Случайным образом разделите данные в наборы k.
Для каждого набора зарезервируйте набор как данные о валидации и обучите модель с помощью другого k – 1 набор.
Сохраните k компактные, обученные модели в ячейках k-by-1 вектор ячейки в свойстве Trained перекрестной подтвержденной модели.
Чтобы создать перекрестную подтвержденную модель, можно использовать один из этих четырех аргументов пары "имя-значение" только: CVPartition, Holdout, KFold или Leaveout.
Пример: 'KFold',5
Типы данных: single | double
'Leaveout' — Флаг перекрестной проверки "Пропускает один"'off' (значение по умолчанию) | 'on'Флаг перекрестной проверки "Пропускает один", заданный как пара, разделенная запятой, состоящая из 'Leaveout' и 'on' или 'off'. Если вы задаете 'Leaveout','on', то, для каждого из наблюдений n (где n является количеством наблюдений, исключая недостающие наблюдения, заданные в свойстве NumObservations модели), программное обеспечение завершает эти шаги:
Зарезервируйте наблюдение как данные о валидации и обучите модель с помощью другого n – 1 наблюдение.
Сохраните n компактные, обученные модели в ячейках n-by-1 вектор ячейки в свойстве Trained перекрестной подтвержденной модели.
Чтобы создать перекрестную подтвержденную модель, можно использовать один из этих четырех аргументов пары "имя-значение" только: CVPartition, Holdout, KFold или Leaveout.
Пример: 'Leaveout','on'
\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'
\Gamma Объем регуляризацииОбъем регуляризации, чтобы применяться при оценке ковариационной матрицы предикторов, заданных как пара, разделенная запятой, состоящая из 'Gamma' и скалярного значения в интервале [0,1]. Gamma обеспечивает более прекрасное управление структурой ковариационной матрицы, чем DiscrimType.
Если вы задаете 0, то программное обеспечение не использует регуляризацию, чтобы настроить ковариационную матрицу. Таким образом, программное обеспечение оценивает и использует неограниченную, эмпирическую ковариационную матрицу.
Для линейного дискриминантного анализа, если эмпирическая ковариационная матрица сингулярна, то программное обеспечение автоматически применяет минимальную регуляризацию, требуемую инвертировать ковариационную матрицу. Можно отобразить выбранный объем регуляризации путем ввода Mdl.Gamma в командной строке.
Для квадратичного дискриминантного анализа, если по крайней мере один класс имеет эмпирическую ковариационную матрицу, которая сингулярна, затем программное обеспечение выдает ошибку.
Если вы задаете значение в интервале (0,1), то необходимо реализовать линейный дискриминантный анализ, в противном случае программное обеспечение выдает ошибку. Следовательно, программное обеспечение устанавливает DiscrimType на 'linear'.
Если вы задаете 1, то программное обеспечение использует максимальную регуляризацию для оценки ковариационной матрицы. Таким образом, программное обеспечение ограничивает ковариационную матрицу, чтобы быть диагональным. Также можно установить DiscrimType на 'diagLinear' или 'diagQuadratic' для диагональных ковариационных матриц.
Пример: 'Gamma',1
Типы данных: single | double
'OptimizeHyperparameters' — Параметры, чтобы оптимизировать'none' (значение по умолчанию) | 'auto' | 'all' | массив строк или массив ячеек имеющих право названий параметра | вектор объектов optimizableVariableПараметры, чтобы оптимизировать, заданный как пара, разделенная запятой, состоящая из 'OptimizeHyperparameters' и одно из следующего:
'none' Не оптимизировать.
'auto' Используйте {'Delta','Gamma'}.
все Оптимизируйте все имеющие право параметры.
Массив строк или массив ячеек имеющих право названий параметра.
Вектор объектов 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].
Установите параметры не по умолчанию путем передачи вектора объектов optimizableVariable, которые имеют значения не по умолчанию. Например,
load fisheriris params = hyperparameters('fitcdiscr',meas,species); params(1).Range = [1e-4,1e6];
Передайте params как значение OptimizeHyperparameters.
По умолчанию итеративное отображение появляется в командной строке, и графики появляются согласно количеству гиперпараметров в оптимизации. Для оптимизации и графиков, целевая функция является журналом (1 + потеря перекрестной проверки) для регрессии и misclassification уровня для классификации. Чтобы управлять итеративным отображением, установите поле 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 | Объект 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'.
Выходным аргументом FitInfo является пустой массив структур, в настоящее время зарезервированный для возможного будущего использования.
Выходным аргументом HyperparameterOptimizationResults является объект BayesianOptimization или таблица гиперпараметров с присваиваемыми значениями, которые описывают оптимизацию перекрестной проверки гиперпараметров.
'HyperparameterOptimizationResults' непуст, когда аргумент пары "имя-значение" 'OptimizeHyperparameters' непуст в то время, когда вы создаете модель. Значения в 'HyperparameterOptimizationResults' зависят от значения, которое вы задаете для аргумента пары "имя-значение" 'HyperparameterOptimizationOptions', когда вы создаете модель.
Если вы задаете 'bayesopt' (значение по умолчанию), то HyperparameterOptimizationResults является объектом класса BayesianOptimization.
Если вы задаете 'gridsearch' или 'randomsearch', то HyperparameterOptimizationResults является таблицей гиперпараметров используемые, наблюдаемые значения целевой функции (потеря перекрестной проверки), и ранг наблюдений от самого низкого (лучше всего) к (худшему) самому высокому.
Поддерживаемые аргументы пары "имя-значение" и любые различия:
'ClassNames'
'Cost'
'DiscrimType'
'HyperparameterOptimizationOptions' — Для перекрестной проверки высокая оптимизация поддерживает только валидацию 'Holdout'. Например, можно задать fitcdiscr(X,Y,'OptimizeHyperparameters','auto','HyperparameterOptimizationOptions',struct('Holdout',0.2)).
'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
Для получения дополнительной информации смотрите Длинные массивы (MATLAB).
Чтобы запуститься параллельно, установите опцию 'UseParallel' на true.
Чтобы выполнить параллельную гипероптимизацию параметров управления, используйте аргумент пары "имя-значение" 'HyperparameterOptions', struct('UseParallel',true) в вызове этой функции.
Для получения дополнительной информации о параллельной гипероптимизации параметров управления смотрите Параллельную Байесовую Оптимизацию.
Для более общей информации о параллельных вычислениях смотрите функции MATLAB Выполнения с Автоматической Параллельной Поддержкой (Parallel Computing Toolbox).
ClassificationDiscriminant | ClassificationPartitionedModel | classify | crossval | predict
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.