Подходящий классификатор дискриминантного анализа
возвращает подходящий дискриминантный анализ, основанный на модели на входных переменных (также известный как предикторы, функции или атрибуты) содержавшийся в таблице 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 | 0.75791 | 0.66667 | 0.66667 | 13.261 | 0.25218 | | 2 | Best | 0.02 | 0.34797 | 0.02 | 0.064227 | 2.7404e-05 | 0.073264 | | 3 | Accept | 0.04 | 0.40928 | 0.02 | 0.020084 | 3.2455e-06 | 0.46974 | | 4 | Accept | 0.66667 | 0.32684 | 0.02 | 0.020118 | 14.879 | 0.98622 | | 5 | Accept | 0.046667 | 0.26092 | 0.02 | 0.019907 | 0.00031449 | 0.97362 | | 6 | Accept | 0.04 | 0.31441 | 0.02 | 0.028438 | 4.5092e-05 | 0.43616 | | 7 | Accept | 0.046667 | 0.11891 | 0.02 | 0.031424 | 2.0973e-05 | 0.9942 | | 8 | Accept | 0.02 | 0.14694 | 0.02 | 0.022424 | 1.0554e-06 | 0.0024286 | | 9 | Accept | 0.02 | 0.14588 | 0.02 | 0.021105 | 1.1232e-06 | 0.00014039 | | 10 | Accept | 0.02 | 0.29107 | 0.02 | 0.020948 | 0.00011837 | 0.0032994 | | 11 | Accept | 0.02 | 0.22426 | 0.02 | 0.020172 | 1.0292e-06 | 0.027725 | | 12 | Accept | 0.02 | 0.15171 | 0.02 | 0.020105 | 9.7792e-05 | 0.0022817 | | 13 | Accept | 0.02 | 0.2478 | 0.02 | 0.020038 | 0.00036014 | 0.0015136 | | 14 | Accept | 0.02 | 0.26002 | 0.02 | 0.019597 | 0.00021059 | 0.0044789 | | 15 | Accept | 0.02 | 0.1999 | 0.02 | 0.019461 | 1.1911e-05 | 0.0010135 | | 16 | Accept | 0.02 | 0.19897 | 0.02 | 0.01993 | 0.0017896 | 0.00071115 | | 17 | Accept | 0.02 | 0.24214 | 0.02 | 0.019551 | 0.00073745 | 0.0066899 | | 18 | Accept | 0.02 | 0.27559 | 0.02 | 0.019776 | 0.00079304 | 0.00011509 | | 19 | Accept | 0.02 | 0.19535 | 0.02 | 0.019678 | 0.007292 | 0.0007911 | | 20 | Accept | 0.046667 | 0.32905 | 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.18496 | 0.02 | 0.019043 | 0.0036004 | 0.0024547 | | 22 | Accept | 0.02 | 0.18311 | 0.02 | 0.019755 | 2.5238e-05 | 0.0015542 | | 23 | Accept | 0.02 | 0.16375 | 0.02 | 0.0191 | 1.5478e-05 | 0.0026899 | | 24 | Accept | 0.02 | 0.24526 | 0.02 | 0.019081 | 0.0040557 | 0.00046815 | | 25 | Accept | 0.02 | 0.17768 | 0.02 | 0.019333 | 2.959e-05 | 0.0011358 | | 26 | Accept | 0.02 | 0.1466 | 0.02 | 0.019369 | 2.3111e-06 | 0.0029205 | | 27 | Accept | 0.02 | 0.25178 | 0.02 | 0.019455 | 3.8898e-05 | 0.0011665 | | 28 | Accept | 0.02 | 0.1833 | 0.02 | 0.019449 | 0.0035925 | 0.0020278 | | 29 | Accept | 0.66667 | 0.1745 | 0.02 | 0.019479 | 998.93 | 0.064276 | | 30 | Accept | 0.02 | 0.12085 | 0.02 | 0.01947 | 8.1557e-06 | 0.0008004 | __________________________________________________________ Optimization completed. MaxObjectiveEvaluations of 30 reached. Total function evaluations: 30 Total elapsed time: 51.0581 seconds. Total objective function evaluation time: 7.2767 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.34797 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.18635
Mdl = ClassificationDiscriminant ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' NumObservations: 150 HyperparameterOptimizationResults: [1x1 BayesianOptimization] DiscrimType: 'linear' Mu: [3x4 double] Coeffs: [3x3 struct] Properties, Methods
Подгонка достигла приблизительно 2%-й потери для 5-кратной перекрестной проверки по умолчанию.
В этом примере показано, как оптимизировать гиперпараметры модели дискриминантного анализа автоматически с помощью длинного массива. Выборочные данные установили airlinesmall.csv
большой набор данных, который содержит табличный файл данных о полете. Этот пример составляет длинную таблицу, содержащую данные, и использует их, чтобы запустить процедуру оптимизации.
Когда вы выполняете вычисления на длинных массивах, MATLAB® использует любого параллельный пул (значение по умолчанию, если у вас есть Parallel Computing Toolbox™), или локальный сеанс работы с MATLAB. Если вы хотите запустить пример с помощью локального сеанса работы с MATLAB, когда у вас есть Parallel Computing Toolbox, можно изменить глобальную среду выполнения при помощи mapreducer
функция.
Создайте datastore, который ссылается на местоположение папки с данными. Выберите подмножество переменных, чтобы работать с и обработать 'NA'
значения как недостающие данные так, чтобы datastore
заменяет их на NaN
значения. Составьте длинную таблицу, которая содержит данные в datastore.
ds = datastore('airlinesmall.csv'); ds.SelectedVariableNames = {'Month','DayofMonth','DayOfWeek',... 'DepTime','ArrDelay','Distance','DepDelay'}; ds.TreatAsMissing = 'NA'; tt = tall(ds) % Tall table
Starting parallel pool (parpool) using the 'local' profile ... Connected to the parallel pool (number of workers: 6). tt = M×7 tall table Month DayofMonth DayOfWeek DepTime ArrDelay Distance DepDelay _____ __________ _________ _______ ________ ________ ________ 10 21 3 642 8 308 12 10 26 1 1021 8 296 1 10 23 5 2055 21 480 20 10 23 5 1332 13 296 12 10 22 4 629 4 373 -1 10 28 3 1446 59 308 63 10 8 4 928 3 447 -2 10 10 6 859 11 954 -1 : : : : : : : : : : : : : :
Определите рейсы, которые являются поздними на 10 минут или больше путем определения логической переменной, которая верна для позднего рейса. Эта переменная содержит метки класса. Предварительный просмотр этой переменной включает первые несколько строк.
Y = tt.DepDelay > 10 % Class labels
Y = M×1 tall logical array 1 0 1 1 0 1 0 0 : :
Создайте длинный массив для данных о предикторе.
X = tt{:,1:end-1} % Predictor data
X = M×6 tall double matrix Columns 1 through 4 10 21 3 642 10 26 1 1021 10 23 5 2055 10 23 5 1332 10 22 4 629 10 28 3 1446 10 8 4 928 10 10 6 859 : : : : : : : : Columns 5 through 6 8 308 8 296 21 480 13 296 4 373 59 308 3 447 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'
функция приобретения и набор 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 5.8 sec - Pass 2 of 2: Completed in 5.1 sec Evaluation completed in 17 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 2.7 sec Evaluation completed in 2.8 sec |======================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | DiscrimType | | | result | | runtime | (observed) | (estim.) | | |======================================================================================| | 1 | Best | 0.11354 | 27.911 | 0.11354 | 0.11354 | quadratic | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.4 sec Evaluation completed in 2.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 1.3 sec | 2 | Accept | 0.11354 | 9.1078 | 0.11354 | 0.11354 | pseudoQuadra | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 2.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.7 sec Evaluation completed in 1.7 sec | 3 | Accept | 0.12869 | 9.0635 | 0.11354 | 0.11859 | pseudoLinear | 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 1.2 sec Evaluation completed in 1.2 sec | 4 | Accept | 0.12745 | 8.1875 | 0.11354 | 0.1208 | diagLinear | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 2.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 1.2 sec | 5 | Accept | 0.12869 | 8.1795 | 0.11354 | 0.12238 | linear | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 1.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 1.2 sec | 6 | Best | 0.11301 | 7.3598 | 0.11301 | 0.12082 | diagQuadrati | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 2.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.2 sec | 7 | Accept | 0.11301 | 8.1574 | 0.11301 | 0.11301 | diagQuadrati | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 1.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.6 sec Evaluation completed in 1.7 sec | 8 | Accept | 0.11301 | 7.8032 | 0.11301 | 0.11301 | diagQuadrati | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.8 sec Evaluation completed in 2.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 1.2 sec | 9 | Accept | 0.11301 | 8.2363 | 0.11301 | 0.11301 | diagQuadrati | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.1 sec | 10 | Accept | 0.11301 | 7.3819 | 0.11301 | 0.11301 | diagQuadrati | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 1.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.1 sec | 11 | Accept | 0.11301 | 7.0881 | 0.11301 | 0.11301 | diagQuadrati | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.1 sec | 12 | Accept | 0.11301 | 6.9635 | 0.11301 | 0.11301 | diagQuadrati | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 1.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.1 sec | 13 | Accept | 0.11301 | 6.9543 | 0.11301 | 0.11301 | diagQuadrati | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.7 sec Evaluation completed in 2.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.7 sec Evaluation completed in 1.7 sec | 14 | Accept | 0.11301 | 8.415 | 0.11301 | 0.11301 | diagQuadrati | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.1 sec | 15 | Accept | 0.11301 | 6.9447 | 0.11301 | 0.11301 | diagQuadrati | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 1.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.1 sec | 16 | Accept | 0.11301 | 6.968 | 0.11301 | 0.11301 | diagQuadrati | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.1 sec | 17 | Accept | 0.11301 | 7.2919 | 0.11301 | 0.11301 | diagQuadrati | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 1.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.1 sec | 18 | Accept | 0.11301 | 7.0682 | 0.11301 | 0.11301 | diagQuadrati | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.7 sec Evaluation completed in 2.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.1 sec | 19 | Accept | 0.11301 | 7.8015 | 0.11301 | 0.11301 | diagQuadrati | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1 sec Evaluation completed in 1.1 sec | 20 | Accept | 0.11301 | 6.9002 | 0.11301 | 0.11301 | diagQuadrati | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 1.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.1 sec |======================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | DiscrimType | | | result | | runtime | (observed) | (estim.) | | |======================================================================================| | 21 | Accept | 0.11301 | 6.9957 | 0.11301 | 0.11301 | diagQuadrati | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.1 sec | 22 | Accept | 0.11301 | 6.9259 | 0.11301 | 0.11301 | diagQuadrati | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 1.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.1 sec | 23 | Accept | 0.11354 | 7.0707 | 0.11301 | 0.11301 | quadratic | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.8 sec Evaluation completed in 2.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1 sec Evaluation completed in 1.1 sec | 24 | Accept | 0.11354 | 7.5755 | 0.11301 | 0.11301 | pseudoQuadra | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.2 sec | 25 | Accept | 0.11301 | 6.9713 | 0.11301 | 0.11301 | diagQuadrati | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 1.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.6 sec Evaluation completed in 1.6 sec | 26 | Accept | 0.11354 | 7.4111 | 0.11301 | 0.11301 | quadratic | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 1.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.1 sec | 27 | Accept | 0.11301 | 6.9108 | 0.11301 | 0.11301 | diagQuadrati | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1 sec Evaluation completed in 1.1 sec | 28 | Accept | 0.11354 | 6.712 | 0.11301 | 0.11301 | pseudoQuadra | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.7 sec Evaluation completed in 2.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.1 sec | 29 | Accept | 0.11354 | 7.3625 | 0.11301 | 0.11301 | quadratic | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 1.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.1 sec | 30 | Accept | 0.11354 | 6.9669 | 0.11301 | 0.11301 | quadratic | __________________________________________________________ Optimization completed. MaxObjectiveEvaluations of 30 reached. Total function evaluations: 30 Total elapsed time: 286.0737 seconds. Total objective function evaluation time: 244.685 Best observed feasible point: DiscrimType _____________ diagQuadratic Observed objective function value = 0.11301 Estimated objective function value = 0.11301 Function evaluation time = 7.3598 Best estimated feasible point (according to models): DiscrimType _____________ diagQuadratic Estimated objective function value = 0.11301 Estimated function evaluation time = 7.6251 Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1 sec Evaluation completed in 1.7 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: 286.0737 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
функция. Следующий код возвращает логический 1
TRUE
) для каждой переменной, которая имеет допустимое имя переменной.
cellfun(@isvarname,Tbl.Properties.VariableNames)
Tbl
не допустимы, затем преобразуют их при помощи matlab.lang.makeValidName
функция.Tbl.Properties.VariableNames = matlab.lang.makeValidName(Tbl.Properties.VariableNames);
Типы данных: 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'
и категориальное, символ, или массив строк, логический или числовой вектор или массив ячеек из символьных векторов. 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.ClassNames
содержа названия группы как переменную того же типа как Y
, и S.ClassificationCosts
содержа матрицу стоимости.
Значением по умолчанию является Cost(i,j)=1
если i~=j
, и Cost(i,j)=0
если i=j
.
Типы данных: single
| double
| struct
'Delta'
— Линейный содействующий порог
(значение по умолчанию) | неотрицательное скалярное значениеЛинейный содействующий порог, заданный как разделенная запятой пара, состоящая из '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'
и массив строк уникальных имен или массив ячеек уникальных векторов символов. Функциональность '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
единицы (
, где 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'
— Количество сгибов
(значение по умолчанию) | положительное целочисленное значение, больше, чем 1Количество сгибов, чтобы использовать в перекрестной подтвержденной модели, заданной как разделенная запятой пара, состоящая из 'KFold'
и положительное целочисленное значение, больше, чем 1. Если вы задаете 'KFold',k
, затем программное обеспечение завершает эти шаги:
Случайным образом разделите данные в k
наборы.
Для каждого набора зарезервируйте набор как данные о валидации и обучите модель с помощью другого k
– 1 набор.
Сохраните k
компактные, обученные модели в ячейках k
- 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'
'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
.
По умолчанию итеративное отображение появляется в командной строке, и графики появляются согласно количеству гиперпараметров в оптимизации. Для оптимизации и графиков, целевая функция является журналом (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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.