Классификатор дискриминантного анализа
возвращает подобранную модель дискриминантного анализа на основе входных переменных (также известных как предикторы, признаки или атрибуты), содержащихся в таблице 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Найдите гиперпараметры, которые минимизируют пятикратные потери при перекрестной проверке, используя автоматическую оптимизацию гиперпараметров.
Для воспроизводимости задайте случайное начальное число и используйте '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% для пятикратной перекрестной проверки по умолчанию.
В этом примере показано, как оптимизировать гиперпараметры дискриминантной модели анализа автоматически с использованием массива высокого уровня. Набор данных образца airlinesmall.csv - большой набор данных, содержащий табличный файл данных о полетах авиакомпании. В этом примере создается таблица высокого уровня, содержащая данные, и используется для выполнения процедуры оптимизации.
При выполнении вычислений в массивах TALL MATLAB ® использует либо параллельный пул (по умолчанию при наличии Toolbox™ Parallel Computing), либо локальный сеанс MATLAB. Если требуется выполнить пример с использованием локального сеанса MATLAB при наличии панели инструментов Parallel Computing Toolbox, можно изменить глобальную среду выполнения с помощью mapreducer функция.
Создайте хранилище данных, которое ссылается на расположение папки с данными. Выберите подмножество переменных для работы и обработайте 'NA' значения как отсутствующие данные, так что datastore заменяет их на NaN значения. Создайте таблицу высокого уровня, содержащую данные в хранилище данных.
ds = datastore('airlinesmall.csv'); ds.SelectedVariableNames = {'Month','DayofMonth','DayOfWeek',... 'DepTime','ArrDelay','Distance','DepDelay'}; ds.TreatAsMissing = 'NA'; tt = tall(ds) % Tall table
Starting parallel pool (parpool) using the 'local' profile ...
Connected to the parallel pool (number of workers: 6).
tt =
M×7 tall table
Month DayofMonth DayOfWeek DepTime ArrDelay Distance DepDelay
_____ __________ _________ _______ ________ ________ ________
10 21 3 642 8 308 12
10 26 1 1021 8 296 1
10 23 5 2055 21 480 20
10 23 5 1332 13 296 12
10 22 4 629 4 373 -1
10 28 3 1446 59 308 63
10 8 4 928 3 447 -2
10 10 6 859 11 954 -1
: : : : : : :
: : : : : : :
Определите рейсы с опозданием на 10 минут или более, определив логическую переменную, которая является истинной для позднего полета. Эта переменная содержит метки класса. Предварительный просмотр этой переменной включает первые несколько строк.
Y = tt.DepDelay > 10 % Class labelsY = M×1 tall logical array 1 0 1 1 0 1 0 0 : :
Создайте массив с высоким значением для данных предиктора.
X = tt{:,1:end-1} % Predictor dataX =
M×6 tall double matrix
10 21 3 642 8 308
10 26 1 1021 8 296
10 23 5 2055 21 480
10 23 5 1332 13 296
10 22 4 629 4 373
10 28 3 1446 59 308
10 8 4 928 3 447
10 10 6 859 11 954
: : : : : :
: : : : : :
Удалить строки в X и Y которые содержат отсутствующие данные.
R = rmmissing([X Y]); % Data with missing entries removed
X = R(:,1:end-1);
Y = R(:,end); Стандартизация переменных предиктора.
Z = zscore(X);
Автоматическая оптимизация гиперпараметров с помощью 'OptimizeHyperparameters' аргумент пары имя-значение. Найти оптимальный вариант 'DiscrimType' значение, которое минимизирует потери при перекрестной проверке удержания. (Указание 'auto' использование 'DiscrimType'.) Для воспроизводимости используйте 'expected-improvement-plus' функция обнаружения и установка начальных значений генераторов случайных чисел с помощью rng и tallrng. Результаты могут варьироваться в зависимости от количества работников и среды выполнения для массивов tall. Дополнительные сведения см. в разделе Управление местом запуска кода.
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 если его истинный класс 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 не сохраняет полную ковариационную матрицу, а вместо этого сохраняет достаточно информации для вычисления матрицы. predict способ вычисляет полную ковариационную матрицу для прогнозирования и не сохраняет матрицу. При указании 'off', то fitcdiscr вычисляет и сохраняет полную ковариационную матрицу в Mdl.
Определить SaveMemory как 'on' когда входная матрица содержит тысячи предикторов.
Пример: 'SaveMemory','on'
'ScoreTransform' - Преобразование баллов'none' (по умолчанию) | 'doublelogit' | 'invlogit' | 'ismax' | 'logit' | дескриптор функции |...Преобразование оценки, указанное как вектор символа, скаляр строки или дескриптор функции.
В этой таблице представлены доступные векторы символов и строковые скаляры.
| Стоимость | Описание |
|---|---|
'doublelogit' | 1/( 1 + e-2x) |
'invlogit' | log (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, Holdout, KFold, или Leaveout.
Пример: Предположим, что вы создаете случайный раздел для пятикратной перекрестной проверки 500 наблюдений с помощью cvp = cvpartition(500,'KFold',5). Затем можно указать модель с перекрестной проверкой с помощью 'CVPartition',cvp.
'Holdout' - Доля данных для проверки отсутствияДоля данных, используемых для проверки удержания, заданная как скалярное значение в диапазоне (0,1). При указании 'Holdout',p, затем программное обеспечение выполняет следующие действия:
Случайный выбор и резервирование p*100% данных в качестве данных проверки и обучение модели с использованием остальных данных.
Храните компактную обучаемую модель в 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-by-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].
Установка параметров, не используемых по умолчанию, путем передачи вектора optimizableVariable объекты, не имеющие значений по умолчанию. Например,
load fisheriris params = hyperparameters('fitcdiscr',meas,species); params(1).Range = [1e-4,1e6];
Проход params как значение OptimizeHyperparameters.
По умолчанию итеративное отображение отображается в командной строке, а графики отображаются в соответствии с количеством гиперпараметров в оптимизации. Для оптимизации и графиков целевой функцией является log ( 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 | Логическое значение, указывающее, выполнять ли байесовскую оптимизацию параллельно, что требует 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 классифицирует таким образом, чтобы минимизировать ожидаемые затраты на классификацию:
C (y' k),
где
^ - прогнозируемая классификация.
K - количество классов.
k 'x) - задняя вероятность класса k для наблюдения x.
) - стоимость классификации наблюдения как y, когда его истинным классом является k.
Дополнительные сведения см. в разделе Прогнозирование с использованием моделей дискриминантного анализа.
После обучения модели можно создать код C/C + +, который предсказывает метки для новых данных. Для создания кода C/C + + требуется Coder™ MATLAB. Дополнительные сведения см. в разделе Введение в создание кода .
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' проверка. По умолчанию программа выбирает и резервирует 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
Дополнительные сведения см. в разделе Массивы Tall.
Чтобы выполнить параллельную оптимизацию гиперпараметров, используйте 'HyperparameterOptimizationOptions', struct('UseParallel',true) аргумент name-value в вызове этой функции.
Дополнительные сведения об оптимизации параллельных гиперпараметров см. в разделе Параллельная байесовская оптимизация.
Общие сведения о параллельных вычислениях см. в разделе Запуск функций MATLAB с автоматической параллельной поддержкой (панель инструментов параллельных вычислений).
ClassificationDiscriminant | ClassificationPartitionedModel | classify | crossval | predict
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.