fitcdiscr

Подходящий классификатор дискриминантного анализа

Описание

Mdl = fitcdiscr(Tbl,ResponseVarName) возвращает подходящий дискриминантный анализ, основанный на модели на входных переменных (также известный как предикторы, функции или атрибуты) содержавшийся в таблице Tbl и выход (ответ или метки) содержавшийся в ResponseVarName.

Mdl = fitcdiscr(Tbl,formula) возвращает подходящий дискриминантный анализ, основанный на модели на входных переменных, содержавшихся в таблице Tbl. formula объяснительная модель ответа и подмножество переменных предикторов в Tbl используемый, чтобы соответствовать Mdl.

Mdl = fitcdiscr(Tbl,Y) возвращает подходящий дискриминантный анализ, основанный на модели на входных переменных, содержавшихся в таблице Tbl и ответ Y.

пример

Mdl = fitcdiscr(X,Y) возвращает классификатор дискриминантного анализа на основе входных переменных X и ответ Y.

пример

Mdl = fitcdiscr(___,Name,Value) соответствует классификатору дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение", с помощью любого из предыдущих синтаксисов. Например, можно оптимизировать гиперпараметры, чтобы минимизировать потерю перекрестной проверки модели или задать стоимость misclassification, априорных вероятностей для каждого класса или весов наблюдения.

Примеры

свернуть все

Загрузите ирисовый набор данных Фишера.

load fisheriris

Обучите модель дискриминантного анализа использование целого набора данных.

Mdl = fitcdiscr(meas,species)
Mdl = 
  ClassificationDiscriminant
             ResponseName: 'Y'
    CategoricalPredictors: []
               ClassNames: {'setosa'  'versicolor'  'virginica'}
           ScoreTransform: 'none'
          NumObservations: 150
              DiscrimType: 'linear'
                       Mu: [3x4 double]
                   Coeffs: [3x3 struct]


  Properties, Methods

Mdl ClassificationDiscriminant модель. Чтобы получить доступ к ее свойствам, используйте запись через точку. Например, отобразите средние значения группы для каждого предиктора.

Mdl.Mu
ans = 3×4

    5.0060    3.4280    1.4620    0.2460
    5.9360    2.7700    4.2600    1.3260
    6.5880    2.9740    5.5520    2.0260

Чтобы предсказать метки для новых наблюдений, передайте Mdl и данные о предикторе к predict.

В этом примере показано, как оптимизировать гиперпараметры автоматически с помощью fitcdiscr. Пример использует ирисовые данные Фишера.

Загрузите данные.

load fisheriris

Найдите гиперпараметры, которые минимизируют пятикратную потерю перекрестной проверки при помощи автоматической гипероптимизации параметров управления.

Для воспроизводимости установите случайный seed и используйте 'expected-improvement-plus' функция приобретения.

rng(1)
Mdl = fitcdiscr(meas,species,'OptimizeHyperparameters','auto',...
    'HyperparameterOptimizationOptions',...
    struct('AcquisitionFunctionName','expected-improvement-plus'))
|=====================================================================================================|
| Iter | Eval   | Objective   | Objective   | BestSoFar   | BestSoFar   |        Delta |        Gamma |
|      | result |             | runtime     | (observed)  | (estim.)    |              |              |
|=====================================================================================================|
|    1 | Best   |     0.66667 |      1.0907 |     0.66667 |     0.66667 |       13.261 |      0.25218 |
|    2 | Best   |        0.02 |    0.099698 |        0.02 |    0.064227 |   2.7404e-05 |     0.073264 |
|    3 | Accept |        0.04 |      0.1121 |        0.02 |    0.020084 |   3.2455e-06 |      0.46974 |
|    4 | Accept |     0.66667 |    0.081014 |        0.02 |    0.020118 |       14.879 |      0.98622 |
|    5 | Accept |    0.046667 |     0.12032 |        0.02 |    0.019907 |   0.00031449 |      0.97362 |
|    6 | Accept |        0.04 |    0.074027 |        0.02 |    0.028438 |   4.5092e-05 |      0.43616 |
|    7 | Accept |    0.046667 |    0.066533 |        0.02 |    0.031424 |   2.0973e-05 |       0.9942 |
|    8 | Accept |        0.02 |    0.067014 |        0.02 |    0.022424 |   1.0554e-06 |    0.0024286 |
|    9 | Accept |        0.02 |    0.067049 |        0.02 |    0.021105 |   1.1232e-06 |   0.00014039 |
|   10 | Accept |        0.02 |     0.06981 |        0.02 |    0.020948 |   0.00011837 |    0.0032994 |
|   11 | Accept |        0.02 |    0.068447 |        0.02 |    0.020172 |   1.0292e-06 |     0.027725 |
|   12 | Accept |        0.02 |    0.067554 |        0.02 |    0.020105 |   9.7792e-05 |    0.0022817 |
|   13 | Accept |        0.02 |    0.070962 |        0.02 |    0.020038 |   0.00036014 |    0.0015136 |
|   14 | Accept |        0.02 |    0.065973 |        0.02 |    0.019597 |   0.00021059 |    0.0044789 |
|   15 | Accept |        0.02 |    0.066822 |        0.02 |    0.019461 |   1.1911e-05 |    0.0010135 |
|   16 | Accept |        0.02 |    0.072618 |        0.02 |     0.01993 |    0.0017896 |   0.00071115 |
|   17 | Accept |        0.02 |    0.069112 |        0.02 |    0.019551 |   0.00073745 |    0.0066899 |
|   18 | Accept |        0.02 |    0.068305 |        0.02 |    0.019776 |   0.00079304 |   0.00011509 |
|   19 | Accept |        0.02 |    0.067392 |        0.02 |    0.019678 |     0.007292 |    0.0007911 |
|   20 | Accept |    0.046667 |    0.078876 |        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.067218 |        0.02 |    0.019043 |    0.0036004 |    0.0024547 |
|   22 | Accept |        0.02 |    0.079969 |        0.02 |    0.019755 |   2.5238e-05 |    0.0015542 |
|   23 | Accept |        0.02 |    0.070177 |        0.02 |      0.0191 |   1.5478e-05 |    0.0026899 |
|   24 | Accept |        0.02 |    0.064725 |        0.02 |    0.019081 |    0.0040557 |   0.00046815 |
|   25 | Accept |        0.02 |    0.065815 |        0.02 |    0.019333 |    2.959e-05 |    0.0011358 |
|   26 | Accept |        0.02 |    0.066704 |        0.02 |    0.019369 |   2.3111e-06 |    0.0029205 |
|   27 | Accept |        0.02 |    0.065487 |        0.02 |    0.019455 |   3.8898e-05 |    0.0011665 |
|   28 | Accept |        0.02 |    0.063646 |        0.02 |    0.019449 |    0.0035925 |    0.0020278 |
|   29 | Accept |     0.66667 |    0.070781 |        0.02 |    0.019479 |       998.93 |     0.064276 |
|   30 | Accept |        0.02 |    0.067911 |        0.02 |     0.01947 |   8.1557e-06 |    0.0008004 |

__________________________________________________________
Optimization completed.
MaxObjectiveEvaluations of 30 reached.
Total function evaluations: 30
Total elapsed time: 23.9743 seconds.
Total objective function evaluation time: 3.2267

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.099698

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.068908
Mdl = 
  ClassificationDiscriminant
                         ResponseName: 'Y'
                CategoricalPredictors: []
                           ClassNames: {'setosa'  'versicolor'  'virginica'}
                       ScoreTransform: 'none'
                      NumObservations: 150
    HyperparameterOptimizationResults: [1×1 BayesianOptimization]
                          DiscrimType: 'linear'
                                   Mu: [3×4 double]
                               Coeffs: [3×3 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

          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' функция приобретения и набор 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: 0% complete
Evaluation 0% complete
- Pass 1 of 2: Completed in 6.5 sec
- Pass 2 of 2: Completed in 4.8 sec
Evaluation completed in 19 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 2.6 sec
Evaluation completed in 2.9 sec
|======================================================================================|
| Iter | Eval   | Objective   | Objective   | BestSoFar   | BestSoFar   |  DiscrimType |
|      | result |             | runtime     | (observed)  | (estim.)    |              |
|======================================================================================|
|    1 | Best   |     0.11354 |      29.439 |     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.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.88 sec
Evaluation completed in 1 sec
|    2 | Accept |     0.11354 |      7.6757 |     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.82 sec
Evaluation completed in 0.95 sec
|    3 | Accept |     0.12869 |       6.819 |     0.11354 |     0.11859 | pseudoLinear |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.82 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.9 sec
|    4 | Accept |     0.12745 |      6.1437 |     0.11354 |      0.1208 |   diagLinear |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.82 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.88 sec
|    5 | Accept |     0.12869 |      6.2058 |     0.11354 |     0.12238 |       linear |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.8 sec
Evaluation completed in 1.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.74 sec
Evaluation completed in 0.87 sec
|    6 | Best   |     0.11301 |      5.6591 |     0.11301 |     0.12082 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.91 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.87 sec
|    7 | Accept |     0.11301 |      5.7062 |     0.11301 |     0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.79 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.87 sec
|    8 | Accept |     0.11301 |      5.6338 |     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.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
|    9 | Accept |     0.11301 |      5.6792 |     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.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
|   10 | Accept |     0.11301 |      5.6936 |     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 0.78 sec
Evaluation completed in 0.91 sec
|   11 | Accept |     0.11301 |      5.7416 |     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.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.76 sec
Evaluation completed in 0.88 sec
|   12 | Accept |     0.11301 |      5.8429 |     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 0.74 sec
Evaluation completed in 0.86 sec
|   13 | Accept |     0.11301 |      5.6494 |     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.77 sec
Evaluation completed in 0.9 sec
|   14 | Accept |     0.11301 |      5.6808 |     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.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.72 sec
Evaluation completed in 0.84 sec
|   15 | Accept |     0.11354 |      5.6261 |     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.75 sec
Evaluation completed in 0.87 sec
|   16 | Accept |     0.11301 |      5.5662 |     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.75 sec
Evaluation completed in 0.87 sec
|   17 | Accept |     0.11301 |      5.5904 |     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 1.3 sec
Evaluation completed in 1.4 sec
|   18 | Accept |     0.11301 |      6.2936 |     0.11301 |     0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.81 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.6236 |     0.11301 |     0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.8 sec
Evaluation completed in 1.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.85 sec
Evaluation completed in 0.97 sec
|   20 | Accept |     0.11301 |      5.6608 |     0.11301 |     0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.81 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.87 sec
|======================================================================================|
| Iter | Eval   | Objective   | Objective   | BestSoFar   | BestSoFar   |  DiscrimType |
|      | result |             | runtime     | (observed)  | (estim.)    |              |
|======================================================================================|
|   21 | Accept |     0.11301 |      5.5474 |     0.11301 |     0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.79 sec
Evaluation completed in 1.4 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.11354 |      5.5354 |     0.11301 |     0.11301 |    quadratic |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.8 sec
Evaluation completed in 1.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.74 sec
Evaluation completed in 0.86 sec
|   23 | Accept |     0.11354 |      5.5548 |     0.11301 |     0.11301 |    quadratic |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.8 sec
Evaluation completed in 1.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.82 sec
Evaluation completed in 0.94 sec
|   24 | Accept |     0.11301 |      5.6123 |     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.73 sec
Evaluation completed in 0.85 sec
|   25 | Accept |     0.11301 |      5.5319 |     0.11301 |     0.11301 | diagQuadrati |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.78 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.86 sec
|   26 | Accept |     0.11301 |      5.5199 |     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.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.75 sec
Evaluation completed in 0.86 sec
|   27 | Accept |     0.12869 |      5.9427 |     0.11301 |     0.11301 | pseudoLinear |
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.74 sec
Evaluation completed in 0.88 sec
|   28 | Accept |     0.11301 |      5.6447 |     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.74 sec
Evaluation completed in 0.87 sec
|   29 | Accept |     0.11354 |      5.5633 |     0.11301 |     0.11301 |    quadratic |
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.86 sec
|   30 | Accept |     0.11301 |      5.6907 |     0.11301 |     0.11301 | diagQuadrati |

__________________________________________________________
Optimization completed.
MaxObjectiveEvaluations of 30 reached.
Total function evaluations: 30
Total elapsed time: 238.5681 seconds.
Total objective function evaluation time: 198.0735

Best observed feasible point:
     DiscrimType 
    _____________

    diagQuadratic

Observed objective function value = 0.11301
Estimated objective function value = 0.11301
Function evaluation time = 5.6591

Best estimated feasible point (according to models):
     DiscrimType 
    _____________

    diagQuadratic

Estimated objective function value = 0.11301
Estimated function evaluation time = 5.8946

Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.69 sec
Evaluation completed in 1.4 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: 238.5681
                         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 как предикторы, затем задайте переменную отклика при помощи ResponseVarName.

Если Tbl содержит переменную отклика, и вы хотите использовать только подмножество остающихся переменных в Tbl как предикторы, затем задайте формулу при помощи formula.

Если Tbl не содержит переменную отклика, затем задает переменную отклика при помощи Y. Длина переменной отклика и количество строк в Tbl должно быть равным.

Типы данных: table

Имя переменной отклика в виде имени переменной в Tbl.

Необходимо задать ResponseVarName как вектор символов или строковый скаляр. Например, если переменная отклика Y хранится как Tbl.Y, затем задайте его как 'Y'. В противном случае программное обеспечение обрабатывает все столбцы Tbl, включая Y, как предикторы, когда обучение модель.

Переменная отклика должна быть категориальным, символом, или массивом строк, логическим или числовым вектором или массивом ячеек из символьных векторов. Если Y символьный массив, затем каждый элемент переменной отклика должен соответствовать одной строке массива.

Хорошая практика должна задать порядок классов при помощи ClassNames аргумент пары "имя-значение".

Типы данных: char | string

Объяснительная модель переменной отклика и подмножество переменных предикторов в виде вектора символов или строкового скаляра в форме 'Y~X1+X2+X3'. В этой форме, Y представляет переменную отклика и X1x2 , и 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 представляет классификацию соответствующей строки X.

Программное обеспечение рассматривает NaN, '' (пустой символьный вектор), "" (пустая строка), <missing>, и <undefined> значения в Y быть отсутствующими значениями. Следовательно, программное обеспечение не обучает наблюдения использования с недостающим ответом.

Типы данных: categorical | char | string | logical | single | double | cell

Значения предиктора в виде числовой матрицы. Каждый столбец 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 должен иметь совпадающий тип данных как 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

Стоимость 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' и неотрицательное скалярное значение. Если коэффициент Mdl имеет величину, меньшую, чем Delta, Mdl наборы этот коэффициент к 0, и можно устранить соответствующий предиктор из модели. Установите Delta к более высокому значению, чтобы устранить больше предикторов.

Delta должен быть 0 для квадратичных дискриминантных моделей.

Типы данных: single | double

Дискриминантный тип в виде разделенной запятой пары, состоящей из 'DiscrimType' и вектор символов или строковый скаляр в этой таблице.

ЗначениеОписаниеОбработка ковариации предиктора
'linear'Упорядоченный линейный дискриминантный анализ (LDA)
  • Все классы имеют ту же ковариационную матрицу.

  • Σ^γ=(1γ)Σ^+γdiag(Σ^).

    Σ^ эмпирическая, объединенная ковариационная матрица, и γ является объемом регуляризации.

'diaglinear'LDAВсе классы имеют то же самое, диагональную ковариационную матрицу.
'pseudolinear'LDAВсе классы имеют ту же ковариационную матрицу. Программное обеспечение инвертирует ковариационную матрицу с помощью псевдо инверсии.
'quadratic'Квадратичный дискриминантный анализ (QDA)Ковариационные матрицы могут варьироваться среди классов.
'diagquadratic'QDAКовариационные матрицы являются диагональными и могут варьироваться среди классов.
'pseudoquadratic'QDAКовариационные матрицы могут варьироваться среди классов. Программное обеспечение инвертирует ковариационную матрицу с помощью псевдо инверсии.

Примечание

Чтобы использовать регуляризацию, необходимо задать 'linear'. Чтобы задать объем регуляризации, используйте Gamma аргумент пары "имя-значение".

Пример: 'DiscrimType','quadratic'

Coeffs флаг свойства в виде разделенной запятой пары, состоящей из 'FillCoeffs' и 'on' или 'off'. Установка флага к 'on' заполняет Coeffs свойство в объекте классификатора. Это может быть в вычислительном отношении интенсивно, особенно при перекрестной проверке. Значением по умолчанию является 'on', если вы не задаете пару "имя-значение" перекрестной проверки, в этом случае флаг установлен в 'off' по умолчанию.

Пример: 'FillCoeffs','off'

Объем регуляризации, чтобы применяться при оценке ковариационной матрицы предикторов в виде разделенной запятой пары, состоящей из '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'Априорные вероятности класса являются частотами родственника класса в Y.
'uniform'Все априорные вероятности класса равны 1/K, где K является количеством классов.
числовой векторКаждым элементом является априорная вероятность класса. Закажите элементы согласно Mdl.ClassNames или задайте порядок с помощью ClassNames аргумент пары "имя-значение". Программное обеспечение нормирует элементы, таким образом, что они суммируют к 1.
структура

Структура S с двумя полями:

  • S.ClassNames содержит имена классов как переменную того же типа как Y.

  • S.ClassProbs содержит вектор соответствующих априорных вероятностей. Программное обеспечение нормирует элементы, таким образом, что они суммируют к 1.

Если вы устанавливаете значения для обоих Weights и Prior, веса повторно нормированы, чтобы составить в целом значение априорной вероятности в соответствующем классе.

Пример: 'Prior','uniform'

Типы данных: char | string | single | double | struct

Имя переменной отклика в виде разделенной запятой пары, состоящей из 'ResponseName' и вектор символов или строковый скаляр.

  • Если вы предоставляете Y, затем можно использовать 'ResponseName' задавать имя для переменной отклика.

  • Если вы предоставляете ResponseVarName или formula, затем вы не можете использовать 'ResponseName'.

Пример: 'ResponseName','response'

Типы данных: char | string

Отметьте, чтобы сохранить ковариационную матрицу в виде разделенной запятой пары, состоящей из 'SaveMemory' и любой 'on' или 'off'. Если вы задаете 'on', затем fitcdiscr не хранит полную ковариационную матрицу, но вместо этого хранит достаточно информации, чтобы вычислить матрицу. predict метод вычисляет полную ковариационную матрицу для предсказания и не хранит матрицу. Если вы задаете 'off', затем fitcdiscr вычисляет и хранит полную ковариационную матрицу в Mdl.

Задайте SaveMemory как 'on' когда входная матрица содержит тысячи предикторов.

Пример: 'SaveMemory','on'

Выиграйте преобразование в виде разделенной запятой пары, состоящей из '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. Программное обеспечение взвешивает наблюдения в каждой строке 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' и 'on' или 'off'.

Если вы задаете 'on', затем программное обеспечение реализует 10-кратную перекрестную проверку.

Чтобы заменить эту установку перекрестной проверки, используйте один из этих аргументов пары "имя-значение": CVPartition, Holdout, KFold, или Leaveout. Чтобы создать перекрестную подтвержденную модель, можно использовать один аргумент пары "имя-значение" перекрестной проверки за один раз только.

В качестве альтернативы перекрестный подтвердите позже путем передачи Mdl к crossval.

Пример: 'CrossVal','on'

Раздел перекрестной проверки в виде разделенной запятой пары, состоящей из 'CVPartition' и cvpartition объект раздела создается cvpartition. Объект раздела задает тип перекрестной проверки и индексации для наборов обучения и валидации.

Чтобы создать перекрестную подтвержденную модель, можно использовать один из этих четырех аргументов пары "имя-значение" только: CVPartition, Holdout, KFold, или Leaveout.

Пример: Предположим, что вы создаете случайный раздел для 5-кратной перекрестной проверки на 500 наблюдениях при помощи cvp = cvpartition(500,'KFold',5). Затем можно задать перекрестную подтвержденную модель при помощи 'CVPartition',cvp.

Часть данных, используемых в валидации затяжки в виде разделенной запятой пары, состоящей из 'Holdout' и скалярное значение в области значений (0,1). Если вы задаете 'Holdout',p, затем программное обеспечение завершает эти шаги:

  1. Случайным образом выберите и зарезервируйте p*100% из данных как данные о валидации, и обучают модель с помощью остальной части данных.

  2. Сохраните компактную, обученную модель в Trained свойство перекрестной подтвержденной модели.

Чтобы создать перекрестную подтвержденную модель, можно использовать один из этих четырех аргументов пары "имя-значение" только: CVPartition, Holdout, KFold, или Leaveout.

Пример: 'Holdout',0.1

Типы данных: double | single

Количество сгибов, чтобы использовать в перекрестной подтвержденной модели в виде разделенной запятой пары, состоящей из 'KFold' и положительное целочисленное значение, больше, чем 1. Если вы задаете 'KFold',k, затем программное обеспечение завершает эти шаги:

  1. Случайным образом разделите данные в k наборы.

  2. Для каждого набора зарезервируйте набор как данные о валидации и обучите модель с помощью другого k – 1 набор.

  3. Сохраните k компактные, обученные модели в ячейках k- 1 вектор ячейки в Trained свойство перекрестной подтвержденной модели.

Чтобы создать перекрестную подтвержденную модель, можно использовать один из этих четырех аргументов пары "имя-значение" только: CVPartition, Holdout, KFold, или Leaveout.

Пример: 'KFold',5

Типы данных: single | double

Флаг перекрестной проверки "Пропускает один" в виде разделенной запятой пары, состоящей из 'Leaveout' и 'on' или 'off'. Если вы задаете 'Leaveout','on', затем, для каждого из наблюдений n (где n является количеством наблюдений, исключая недостающие наблюдения, заданные в NumObservations свойство модели), программное обеспечение завершает эти шаги:

  1. Зарезервируйте наблюдение как данные о валидации и обучите модель с помощью другого n – 1 наблюдение.

  2. Сохраните n компактные, обученные модели в ячейках n-by-1 вектор ячейки в Trained свойство перекрестной подтвержденной модели.

Чтобы создать перекрестную подтвержденную модель, можно использовать один из этих четырех аргументов пары "имя-значение" только: CVPartition, Holdout, KFold, или Leaveout.

Пример: 'Leaveout','on'

Опции гипероптимизации параметров управления

свернуть все

Параметры, чтобы оптимизировать в виде разделенной запятой пары, состоящей из 'OptimizeHyperparameters' и одно из следующего:

  • 'none' — Не оптимизировать.

  • 'auto' — Используйте {'Delta','Gamma'}.

  • 'all' — Оптимизируйте все имеющие право параметры.

  • Массив строк или массив ячеек имеющих право названий параметра.

  • Вектор optimizableVariable объекты, обычно выход hyperparameters.

Оптимизация пытается минимизировать потерю перекрестной проверки (ошибка) для fitcdiscr путем варьирования параметров. Для получения информации о потере перекрестной проверки (хотя в различном контексте), смотрите Потерю Классификации. Чтобы управлять типом перекрестной проверки и другими аспектами оптимизации, используйте HyperparameterOptimizationOptions пара "имя-значение".

Примечание

'OptimizeHyperparameters' значения заменяют любые значения, вы устанавливаете использование других аргументов пары "имя-значение". Например, установка 'OptimizeHyperparameters' к 'auto' вызывает 'auto' значения, чтобы применяться.

Имеющие право параметры для fitcdiscr :

  • Deltafitcdiscr поисковые запросы среди положительных значений, по умолчанию масштабируемых журналом в области значений [1e-6,1e3].

  • DiscrimTypefitcdiscr поисковые запросы среди 'linear', 'quadratic', 'diagLinear', 'diagQuadratic', 'pseudoLinear', и 'pseudoQuadratic'.

  • Gammafitcdiscr поисковые запросы среди действительных значений в области значений [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' и структура. Этот аргумент изменяет эффект OptimizeHyperparameters аргумент пары "имя-значение". Все поля в структуре являются дополнительными.

Имя поляЗначенияЗначение по умолчанию
Optimizer
  • 'bayesopt' — Используйте Байесовую оптимизацию. Внутренне, эта установка вызывает bayesopt.

  • 'gridsearch' — Используйте поиск сетки с NumGridDivisions значения на размерность.

  • 'randomsearch' — Поиск наугад среди MaxObjectiveEvaluations 'points'.

'gridsearch' поисковые запросы в произвольном порядке, с помощью универсальной выборки без замены от сетки. После оптимизации можно получить таблицу в порядке сетки при помощи команды sortrows(Mdl.HyperparameterOptimizationResults).

'bayesopt'
AcquisitionFunctionName

  • 'expected-improvement-per-second-plus'

  • 'expected-improvement'

  • 'expected-improvement-plus'

  • 'expected-improvement-per-second'

  • 'lower-confidence-bound'

  • 'probability-of-improvement'

Приобретение функционирует, чьи имена включают per-second не приводите к восстанавливаемым результатам, потому что оптимизация зависит от времени выполнения целевой функции. Приобретение функционирует, чьи имена включают plus измените их поведение, когда они сверхиспользуют область. Для получения дополнительной информации смотрите Типы Функции Приобретения.

'expected-improvement-per-second-plus'
MaxObjectiveEvaluationsМаксимальное количество оценок целевой функции.30 для 'bayesopt' или 'randomsearch', и целая сетка для 'gridsearch'
MaxTime

Ограничение по времени в виде положительного действительного. Ограничение по времени находится в секундах, как измерено tic и toc. Время выполнения может превысить MaxTime потому что MaxTime не делает оценок функции обработки прерываний.

Inf
NumGridDivisionsДля 'gridsearch', количество значений в каждой размерности. Значение может быть вектором положительных целых чисел, дающих количество значений для каждой размерности или скаляр, который применяется ко всем размерностям. Это поле проигнорировано для категориальных переменных.10
ShowPlotsЛогическое значение, указывающее, показать ли графики. Если true, это поле строит лучшее значение целевой функции против номера итерации. Если существуют один или два параметра оптимизации, и если Optimizer 'bayesopt', затем ShowPlots также строит модель целевой функции против параметров.true
SaveIntermediateResultsЛогическое значение, указывающее, сохранить ли результаты когда Optimizer 'bayesopt'. Если true, это поле перезаписывает переменную рабочей области под названием 'BayesoptResults' в каждой итерации. Переменной является BayesianOptimization объект.false
Verbose

Отобразитесь к командной строке.

  • 0 — Никакое итеративное отображение

  • 1 Итеративное отображение

  • 2 — Итеративное отображение с дополнительной информацией

Для получения дополнительной информации смотрите bayesopt Verbose аргумент пары "имя-значение".

1
UseParallelЛогическое значение, указывающее, запустить ли Байесовую оптимизацию параллельно, которая требует Parallel Computing Toolbox™. Из-за невоспроизводимости синхронизации параллели, параллельная Байесова оптимизация не обязательно приводит к восстанавливаемым результатам. Для получения дополнительной информации смотрите Параллельную Байесовую Оптимизацию.false
Repartition

Логическое значение, указывающее, повторно разделить ли перекрестную проверку в каждой итерации. Если false, оптимизатор использует один раздел в оптимизации.

true обычно дает большинство устойчивых результатов, потому что эта установка принимает шум разделения во внимание. Однако для хороших результатов, true требует, по крайней мере, вдвое большего количества вычислений функции.

false
Используйте не больше, чем одни из следующих трех имен полей.
CVPartitioncvpartition объект, как создано cvpartition.'Kfold',5 если вы не задаете поля перекрестной проверки
HoldoutСкаляр в области значений (0,1) представление части затяжки.
KfoldЦелое число, больше, чем 1.

Пример: 'HyperparameterOptimizationOptions',struct('MaxObjectiveEvaluations',60)

Типы данных: struct

Выходные аргументы

свернуть все

Обученная модель классификации дискриминантных анализов, возвращенная как ClassificationDiscriminant объект модели или ClassificationPartitionedModel перекрестный подтвержденный объект модели.

Если вы устанавливаете какой-либо из аргументов пары "имя-значение" KFold, Holdout, CrossVal, или CVPartition, затем Mdl ClassificationPartitionedModel перекрестный подтвержденный объект модели. В противном случае, Mdl ClassificationDiscriminant объект модели.

К ссылочным свойствам Mdl, используйте запись через точку. Например, чтобы отобразить предполагаемые средние значения компонента в Командном окне, введите Mdl.Mu.

Больше о

свернуть все

Дискриминантная классификация

Модель для дискриминантного анализа:

  • Каждый класс (Y) генерирует данные (X) использование многомерного нормального распределения. Таким образом, модель принимает X имеет Гауссово распределение смеси (gmdistribution).

    • Для линейного дискриминантного анализа модель имеет ту же ковариационную матрицу для каждого класса, только средние значения варьируются.

    • Для квадратичного дискриминантного анализа варьируются и средние значения и ковариации каждого класса.

predict классифицирует, чтобы минимизировать ожидаемую стоимость классификации:

y^=argminy=1,...,Kk=1KP^(k|x)C(y|k),

где

  • y^ предсказанная классификация.

  • K является количеством классов.

  • P^(k|x) апостериорная вероятность класса k для наблюдения x.

  • C(y|k) стоимость классификации наблюдения как y, когда его истинным классом является k.

Для получения дополнительной информации см., что Предсказание Использует Модели Дискриминантного анализа.

Советы

После обучения модель можно сгенерировать код C/C++, который предсказывает метки для новых данных. Генерация кода C/C++ требует MATLAB Coder™. Для получения дополнительной информации смотрите Введение в Генерацию кода.

Альтернативная функциональность

Функции

classify функция также выполняет дискриминантный анализ. classify является обычно более неудобным использовать.

  • classify требует, чтобы вы соответствовали классификатору каждый раз, когда вы делаете новое предсказание.

  • classify не выполняет перекрестную проверку или гипероптимизацию параметров управления.

  • classify требует, чтобы вы соответствовали классификатору при изменении априорных вероятностей.

Расширенные возможности

Введенный в R2014a