Автоматизированный выбор классификатора с байесовой оптимизацией

В этом примере показано, как использовать fitcauto автоматически попробовать выбор типов модели классификации с различными гиперзначениями параметров, учитывая учебный предиктор и данные об ответе. Функция использует Байесовую оптимизацию, чтобы выбрать модели и их гиперзначения параметров, и вычисляет ошибку классификации перекрестных проверок для каждой модели. После того, как оптимизация завершена, fitcauto возвращает модель, обученную на целом наборе данных, который, как ожидают, лучше всего классифицирует новые данные. Проверяйте производительность модели на тестовых данных.

Загрузка демонстрационных данных

Этот пример использует 1 994 данных о переписи, хранимых в census1994.mat. Набор данных состоит из демографической информации из Бюро переписи США, которое может использоваться, чтобы предсказать, передает ли индивидуум 50 000$ в год.

Загрузите выборочные данные census1994, который содержит обучающие данные adultdata и тестовые данные adulttest. Предварительно просмотрите первые несколько строк обучающего набора данных.

load census1994
head(adultdata)
ans=8×15 table
    age       workClass          fnlwgt      education    education_num       marital_status           occupation        relationship     race      sex      capital_gain    capital_loss    hours_per_week    native_country    salary
    ___    ________________    __________    _________    _____________    _____________________    _________________    _____________    _____    ______    ____________    ____________    ______________    ______________    ______

    39     State-gov                77516    Bachelors         13          Never-married            Adm-clerical         Not-in-family    White    Male          2174             0                40          United-States     <=50K 
    50     Self-emp-not-inc         83311    Bachelors         13          Married-civ-spouse       Exec-managerial      Husband          White    Male             0             0                13          United-States     <=50K 
    38     Private             2.1565e+05    HS-grad            9          Divorced                 Handlers-cleaners    Not-in-family    White    Male             0             0                40          United-States     <=50K 
    53     Private             2.3472e+05    11th               7          Married-civ-spouse       Handlers-cleaners    Husband          Black    Male             0             0                40          United-States     <=50K 
    28     Private             3.3841e+05    Bachelors         13          Married-civ-spouse       Prof-specialty       Wife             Black    Female           0             0                40          Cuba              <=50K 
    37     Private             2.8458e+05    Masters           14          Married-civ-spouse       Exec-managerial      Wife             White    Female           0             0                40          United-States     <=50K 
    49     Private             1.6019e+05    9th                5          Married-spouse-absent    Other-service        Not-in-family    Black    Female           0             0                16          Jamaica           <=50K 
    52     Self-emp-not-inc    2.0964e+05    HS-grad            9          Married-civ-spouse       Exec-managerial      Husband          White    Male             0             0                45          United-States     >50K  

Каждая строка содержит демографическую информацию для одного взрослого. Последний столбец salary показывает, есть ли у человека зарплата, меньше чем или равная 50 000$ в год или больше, чем 50 000$ в год.

Используйте автоматизированный выбор модели

Используйте fitcauto автоматически найти соответствующий классификатор для данных в adultdata. Установите веса наблюдения и задайте, чтобы запустить Байесовую оптимизацию параллельно, которая требует Parallel Computing Toolbox™. Из-за невоспроизводимости синхронизации параллели, параллельная Байесова оптимизация не обязательно приводит к восстанавливаемым результатам.

Из-за сложности оптимизации этот процесс может занять время, специально для больших наборов данных. По умолчанию, fitcauto предоставляет график оптимизации и итеративное отображение результатов оптимизации. Для получения дополнительной информации о том, как интерпретировать эти результаты, смотрите Многословное Отображение.

options = struct('UseParallel',true);
[mdl,results] = fitcauto(adultdata,'salary','Weights','fnlwgt', ...
    'HyperparameterOptimizationOptions',options);
Warning: It is recommended that you first standardize all numeric predictors when optimizing the Naive Bayes 'Width' parameter. Ignore this warning if you have done that.
Starting parallel pool (parpool) using the 'local' profile ...
Connected to the parallel pool (number of workers: 6).
Copying objective function to workers...
Done copying objective function to workers.
Learner types to explore: ensemble, nb, tree
Total iterations (MaxObjectiveEvaluations): 90
Total time (MaxTime): Inf
|===========================================================================================================================================|
| Iter | Active  | Eval   | Validation | Time for training | Observed min    | Estimated min   | Learner      | Hyperparameter:       Value |
|      | workers | result | loss       | & validation (sec)| validation loss | validation loss |              |                             |
|===========================================================================================================================================|
|    1 |       5 | Accept |    0.23856 |            2.6087 |          0.1821 |         0.20863 |         tree | MinLeafSize:          10889 |
|    2 |       5 | Best   |     0.1821 |            2.5782 |          0.1821 |         0.20863 |         tree | MinLeafSize:           4990 |
|    3 |       6 | Best   |    0.14971 |             50.17 |         0.14971 |         0.14971 |           nb | DistributionNames:   kernel |
|      |         |        |            |                   |                 |                 |              | Width:              0.41891 |
|    4 |       6 | Accept |    0.17743 |            67.443 |         0.14971 |         0.14971 |     ensemble | Method:                 Bag |
|      |         |        |            |                   |                 |                 |              | NumLearningCycles:      225 |
|      |         |        |            |                   |                 |                 |              | MinLeafSize:           3144 |
|    5 |       6 | Accept |    0.17705 |            68.174 |         0.14971 |         0.14971 |     ensemble | Method:                 Bag |
|      |         |        |            |                   |                 |                 |              | NumLearningCycles:      225 |
|      |         |        |            |                   |                 |                 |              | MinLeafSize:           3144 |
|    6 |       6 | Accept |     0.1623 |             1.029 |         0.14971 |         0.15664 |           nb | DistributionNames:   normal |
|      |         |        |            |                   |                 |                 |              | Width:                  NaN |
|    7 |       6 | Accept |     0.1745 |            1.2602 |         0.14971 |         0.15664 |         tree | MinLeafSize:           1292 |
|    8 |       6 | Best   |    0.14014 |            2.7929 |         0.14014 |         0.15664 |         tree | MinLeafSize:             40 |
|    9 |       6 | Accept |    0.15209 |            98.452 |         0.14014 |         0.15664 |     ensemble | Method:                 Bag |
|      |         |        |            |                   |                 |                 |              | NumLearningCycles:      239 |
|      |         |        |            |                   |                 |                 |              | MinLeafSize:            161 |
|   10 |       6 | Accept |    0.16032 |            99.589 |         0.14014 |         0.15807 |           nb | DistributionNames:   kernel |
|      |         |        |            |                   |                 |                 |              | Width:               9.0144 |
|===========================================================================================================================================|
| Iter | Active  | Eval   | Validation | Time for training | Observed min    | Estimated min   | Learner      | Hyperparameter:       Value |
|      | workers | result | loss       | & validation (sec)| validation loss | validation loss |              |                             |
|===========================================================================================================================================|
|   11 |       6 | Accept |    0.17807 |             1.446 |         0.14014 |         0.15807 |         tree | MinLeafSize:           3849 |
|   12 |       6 | Accept |    0.16427 |            116.76 |         0.14014 |         0.15807 |     ensemble | Method:                 Bag |
|      |         |        |            |                   |                 |                 |              | NumLearningCycles:      294 |
|      |         |        |            |                   |                 |                 |              | MinLeafSize:            963 |
|   13 |       6 | Accept |    0.15706 |            53.771 |         0.14014 |         0.15807 |     ensemble | Method:          LogitBoost |
|      |         |        |            |                   |                 |                 |              | NumLearningCycles:      241 |
|      |         |        |            |                   |                 |                 |              | MinLeafSize:              6 |
|   14 |       6 | Accept |    0.14443 |            1.8727 |         0.14014 |         0.15807 |         tree | MinLeafSize:            229 |
|   15 |       6 | Accept |    0.14941 |            49.309 |         0.14014 |         0.15523 |           nb | DistributionNames:   kernel |
|      |         |        |            |                   |                 |                 |              | Width:              0.26346 |
|   16 |       6 | Accept |    0.15139 |            105.88 |         0.14014 |         0.15523 |     ensemble | Method:                 Bag |
|      |         |        |            |                   |                 |                 |              | NumLearningCycles:      257 |
|      |         |        |            |                   |                 |                 |              | MinLeafSize:              2 |
|   17 |       6 | Accept |    0.15434 |            3.5748 |         0.14014 |         0.15262 |         tree | MinLeafSize:              8 |
|   18 |       6 | Accept |    0.14968 |            49.046 |         0.14014 |         0.15262 |           nb | DistributionNames:   kernel |
|      |         |        |            |                   |                 |                 |              | Width:              0.40347 |
|   19 |       6 | Accept |    0.14421 |            2.9271 |         0.14014 |         0.14824 |         tree | MinLeafSize:             23 |
|   20 |       6 | Accept |    0.14923 |            1.6667 |         0.14014 |         0.14673 |         tree | MinLeafSize:            354 |
|===========================================================================================================================================|
| Iter | Active  | Eval   | Validation | Time for training | Observed min    | Estimated min   | Learner      | Hyperparameter:       Value |
|      | workers | result | loss       | & validation (sec)| validation loss | validation loss |              |                             |
|===========================================================================================================================================|
|   21 |       6 | Best   |    0.13996 |            3.0956 |         0.13996 |           0.145 |         tree | MinLeafSize:             39 |
|   22 |       6 | Accept |    0.15111 |            83.972 |         0.13996 |           0.145 |     ensemble | Method:                 Bag |
|      |         |        |            |                   |                 |                 |              | NumLearningCycles:      208 |
|      |         |        |            |                   |                 |                 |              | MinLeafSize:             14 |
|   23 |       6 | Accept |    0.19568 |            98.149 |         0.13996 |           0.145 |           nb | DistributionNames:   kernel |
|      |         |        |            |                   |                 |                 |              | Width:               8643.5 |
|   24 |       6 | Accept |    0.23856 |           0.49289 |         0.13996 |         0.14508 |         tree | MinLeafSize:           8801 |
|   25 |       6 | Accept |     0.1623 |             0.606 |         0.13996 |         0.14508 |           nb | DistributionNames:   normal |
|      |         |        |            |                   |                 |                 |              | Width:                  NaN |
|   26 |       6 | Accept |     0.1623 |           0.38862 |         0.13996 |         0.14508 |           nb | DistributionNames:   normal |
|      |         |        |            |                   |                 |                 |              | Width:                  NaN |
|   27 |       6 | Accept |     0.1623 |           0.34002 |         0.13996 |         0.14508 |           nb | DistributionNames:   normal |
|      |         |        |            |                   |                 |                 |              | Width:                  NaN |
|   28 |       6 | Accept |    0.15847 |            49.535 |         0.13996 |         0.14508 |     ensemble | Method:          LogitBoost |
|      |         |        |            |                   |                 |                 |              | NumLearningCycles:      212 |
|      |         |        |            |                   |                 |                 |              | MinLeafSize:            376 |
|   29 |       6 | Accept |    0.15639 |            63.923 |         0.13996 |         0.14508 |     ensemble | Method:          LogitBoost |
|      |         |        |            |                   |                 |                 |              | NumLearningCycles:      288 |
|      |         |        |            |                   |                 |                 |              | MinLeafSize:           1774 |
|   30 |       6 | Accept |     0.1623 |           0.79402 |         0.13996 |         0.14508 |           nb | DistributionNames:   normal |
|      |         |        |            |                   |                 |                 |              | Width:                  NaN |
|===========================================================================================================================================|
| Iter | Active  | Eval   | Validation | Time for training | Observed min    | Estimated min   | Learner      | Hyperparameter:       Value |
|      | workers | result | loss       | & validation (sec)| validation loss | validation loss |              |                             |
|===========================================================================================================================================|
|   31 |       6 | Accept |     0.1453 |            3.0022 |         0.13996 |         0.14429 |         tree | MinLeafSize:             16 |
|   32 |       6 | Accept |     0.1623 |           0.32634 |         0.13996 |         0.14429 |           nb | DistributionNames:   normal |
|      |         |        |            |                   |                 |                 |              | Width:                  NaN |
|   33 |       6 | Accept |    0.23856 |            57.127 |         0.13996 |         0.14429 |     ensemble | Method:                 Bag |
|      |         |        |            |                   |                 |                 |              | NumLearningCycles:      250 |
|      |         |        |            |                   |                 |                 |              | MinLeafSize:           6630 |
|   34 |       6 | Accept |    0.23856 |           0.52406 |         0.13996 |         0.14436 |         tree | MinLeafSize:           9982 |
|   35 |       6 | Accept |    0.15781 |            52.097 |         0.13996 |         0.14436 |     ensemble | Method:          LogitBoost |
|      |         |        |            |                   |                 |                 |              | NumLearningCycles:      224 |
|      |         |        |            |                   |                 |                 |              | MinLeafSize:            440 |
|   36 |       6 | Accept |    0.15434 |            3.4554 |         0.13996 |         0.14431 |         tree | MinLeafSize:              8 |
|   37 |       6 | Accept |    0.15669 |            54.961 |         0.13996 |         0.14431 |     ensemble | Method:          LogitBoost |
|      |         |        |            |                   |                 |                 |              | NumLearningCycles:      252 |
|      |         |        |            |                   |                 |                 |              | MinLeafSize:              4 |
|   38 |       6 | Accept |    0.16986 |            1.5157 |         0.13996 |         0.14367 |         tree | MinLeafSize:            791 |
|   39 |       6 | Accept |    0.17708 |              55.2 |         0.13996 |         0.14367 |     ensemble | Method:                 Bag |
|      |         |        |            |                   |                 |                 |              | NumLearningCycles:      220 |
|      |         |        |            |                   |                 |                 |              | MinLeafSize:           4265 |
|   40 |       6 | Accept |    0.16315 |            86.272 |         0.13996 |         0.14367 |     ensemble | Method:                 Bag |
|      |         |        |            |                   |                 |                 |              | NumLearningCycles:      223 |
|      |         |        |            |                   |                 |                 |              | MinLeafSize:            743 |
|===========================================================================================================================================|
| Iter | Active  | Eval   | Validation | Time for training | Observed min    | Estimated min   | Learner      | Hyperparameter:       Value |
|      | workers | result | loss       | & validation (sec)| validation loss | validation loss |              |                             |
|===========================================================================================================================================|
|   41 |       6 | Accept |    0.14449 |            1.9856 |         0.13996 |         0.14391 |         tree | MinLeafSize:            235 |
|   42 |       5 | Accept |      0.167 |            96.272 |         0.13996 |         0.14287 |           nb | DistributionNames:   kernel |
|      |         |        |            |                   |                 |                 |              | Width:               18.272 |
|   43 |       5 | Accept |    0.14377 |            2.0295 |         0.13996 |         0.14287 |         tree | MinLeafSize:            193 |
|   44 |       4 | Accept |    0.15699 |            56.595 |         0.13996 |         0.14152 |     ensemble | Method:          LogitBoost |
|      |         |        |            |                   |                 |                 |              | NumLearningCycles:      272 |
|      |         |        |            |                   |                 |                 |              | MinLeafSize:            997 |
|   45 |       4 | Accept |    0.14013 |            2.4702 |         0.13996 |         0.14152 |         tree | MinLeafSize:             36 |
|   46 |       4 | Accept |    0.14344 |            1.7418 |         0.13996 |         0.14185 |         tree | MinLeafSize:            189 |
|   47 |       4 | Accept |    0.15677 |             1.425 |         0.13996 |         0.14176 |         tree | MinLeafSize:            444 |
|   48 |       3 | Accept |    0.15259 |            83.025 |         0.13996 |         0.14182 |           nb | DistributionNames:   kernel |
|      |         |        |            |                   |                 |                 |              | Width:               4.2748 |
|   49 |       3 | Accept |    0.14368 |            1.6998 |         0.13996 |         0.14182 |         tree | MinLeafSize:            182 |
|   50 |       6 | Accept |     0.1408 |             2.177 |         0.13996 |          0.1411 |         tree | MinLeafSize:             38 |
|===========================================================================================================================================|
| Iter | Active  | Eval   | Validation | Time for training | Observed min    | Estimated min   | Learner      | Hyperparameter:       Value |
|      | workers | result | loss       | & validation (sec)| validation loss | validation loss |              |                             |
|===========================================================================================================================================|
|   51 |       4 | Accept |    0.13996 |            2.5601 |         0.13996 |         0.14072 |         tree | MinLeafSize:             39 |
|   52 |       4 | Accept |    0.17244 |            1.1659 |         0.13996 |         0.14072 |         tree | MinLeafSize:           1038 |
|   53 |       4 | Accept |    0.17797 |           0.98188 |         0.13996 |         0.14072 |         tree | MinLeafSize:           1818 |
|   54 |       3 | Accept |    0.15643 |            57.195 |         0.13996 |         0.14051 |     ensemble | Method:          LogitBoost |
|      |         |        |            |                   |                 |                 |              | NumLearningCycles:      287 |
|      |         |        |            |                   |                 |                 |              | MinLeafSize:             30 |
|   55 |       3 | Accept |    0.14048 |            2.3411 |         0.13996 |         0.14051 |         tree | MinLeafSize:             37 |
|   56 |       6 | Accept |     0.1408 |            2.1605 |         0.13996 |         0.14054 |         tree | MinLeafSize:             38 |
|   57 |       5 | Accept |    0.13996 |            2.5887 |         0.13996 |         0.14054 |         tree | MinLeafSize:             39 |
|   58 |       5 | Accept |     0.1623 |           0.46796 |         0.13996 |         0.14054 |           nb | DistributionNames:   normal |
|      |         |        |            |                   |                 |                 |              | Width:                  NaN |
|   59 |       5 | Accept |    0.13996 |            2.4424 |         0.13996 |         0.14017 |         tree | MinLeafSize:             39 |
|   60 |       5 | Accept |    0.14013 |            2.5432 |         0.13996 |         0.14013 |         tree | MinLeafSize:             36 |
|===========================================================================================================================================|
| Iter | Active  | Eval   | Validation | Time for training | Observed min    | Estimated min   | Learner      | Hyperparameter:       Value |
|      | workers | result | loss       | & validation (sec)| validation loss | validation loss |              |                             |
|===========================================================================================================================================|
|   61 |       5 | Accept |    0.16408 |            1.4549 |         0.13996 |         0.14011 |         tree | MinLeafSize:            585 |
|   62 |       5 | Accept |    0.14061 |            2.1993 |         0.13996 |         0.14017 |         tree | MinLeafSize:             85 |
|   63 |       5 | Accept |    0.14314 |            2.6421 |         0.13996 |         0.14013 |         tree | MinLeafSize:             29 |
|   64 |       5 | Accept |    0.14001 |            2.2084 |         0.13996 |         0.14008 |         tree | MinLeafSize:             86 |
|   65 |       5 | Accept |    0.14133 |            2.5565 |         0.13996 |         0.14007 |         tree | MinLeafSize:             35 |
|   66 |       4 | Accept |    0.15943 |            41.891 |         0.13996 |         0.14011 |     ensemble | Method:          LogitBoost |
|      |         |        |            |                   |                 |                 |              | NumLearningCycles:      201 |
|      |         |        |            |                   |                 |                 |              | MinLeafSize:             42 |
|   67 |       4 | Accept |    0.14256 |            2.1949 |         0.13996 |         0.14011 |         tree | MinLeafSize:            125 |
|   68 |       3 | Accept |    0.15631 |            57.502 |         0.13908 |         0.14002 |     ensemble | Method:          LogitBoost |
|      |         |        |            |                   |                 |                 |              | NumLearningCycles:      291 |
|      |         |        |            |                   |                 |                 |              | MinLeafSize:           1162 |
|   69 |       3 | Best   |    0.13908 |            2.0902 |         0.13908 |         0.14002 |         tree | MinLeafSize:             98 |
|   70 |       6 | Accept |    0.14061 |            1.8764 |         0.13908 |         0.14006 |         tree | MinLeafSize:             85 |
|===========================================================================================================================================|
| Iter | Active  | Eval   | Validation | Time for training | Observed min    | Estimated min   | Learner      | Hyperparameter:       Value |
|      | workers | result | loss       | & validation (sec)| validation loss | validation loss |              |                             |
|===========================================================================================================================================|
|   71 |       5 | Accept |    0.14143 |             2.169 |         0.13908 |         0.14002 |         tree | MinLeafSize:            109 |
|   72 |       5 | Accept |    0.14472 |            1.9738 |         0.13908 |         0.14002 |         tree | MinLeafSize:            247 |
|   73 |       5 | Accept |    0.14193 |            2.5079 |         0.13908 |         0.14006 |         tree | MinLeafSize:             34 |
|   74 |       5 | Accept |     0.1507 |            1.5583 |         0.13908 |         0.14007 |         tree | MinLeafSize:            392 |
|   75 |       5 | Accept |    0.13908 |            2.0123 |         0.13908 |         0.13994 |         tree | MinLeafSize:             98 |
|   76 |       5 | Accept |    0.14124 |            2.0292 |         0.13908 |         0.13994 |         tree | MinLeafSize:            111 |
|   77 |       5 | Accept |    0.13917 |            2.0368 |         0.13908 |         0.13969 |         tree | MinLeafSize:             97 |
|   78 |       5 | Accept |    0.14032 |            2.0503 |         0.13908 |         0.13957 |         tree | MinLeafSize:            103 |
|   79 |       4 | Accept |    0.18035 |            87.193 |         0.13908 |         0.13949 |           nb | DistributionNames:   kernel |
|      |         |        |            |                   |                 |                 |              | Width:               483.03 |
|   80 |       4 | Accept |    0.13917 |            2.1151 |         0.13908 |         0.13949 |         tree | MinLeafSize:             97 |
|===========================================================================================================================================|
| Iter | Active  | Eval   | Validation | Time for training | Observed min    | Estimated min   | Learner      | Hyperparameter:       Value |
|      | workers | result | loss       | & validation (sec)| validation loss | validation loss |              |                             |
|===========================================================================================================================================|
|   81 |       4 | Best   |    0.13907 |            1.9149 |         0.13907 |         0.13934 |         tree | MinLeafSize:             96 |
|   82 |       4 | Accept |    0.13917 |            1.9271 |         0.13907 |         0.13927 |         tree | MinLeafSize:             97 |
|   83 |       4 | Accept |    0.13917 |            1.9196 |         0.13907 |         0.13924 |         tree | MinLeafSize:             97 |
|   84 |       4 | Accept |     0.1396 |            1.9448 |         0.13907 |         0.13923 |         tree | MinLeafSize:             91 |
|   85 |       4 | Accept |    0.13908 |            1.9816 |         0.13907 |         0.13921 |         tree | MinLeafSize:             98 |
|   86 |       4 | Accept |    0.14951 |            66.139 |         0.13907 |          0.1392 |           nb | DistributionNames:   kernel |
|      |         |        |            |                   |                 |                 |              | Width:               1.9412 |
|   87 |       4 | Accept |    0.18157 |           0.54864 |         0.13907 |          0.1392 |         tree | MinLeafSize:           4072 |
|   88 |       5 | Accept |    0.13954 |            2.1344 |         0.13907 |         0.13922 |         tree | MinLeafSize:            100 |
|   89 |       5 | Accept |    0.15815 |            1.5244 |         0.13907 |          0.1392 |         tree | MinLeafSize:            492 |
|   90 |       5 | Accept |    0.14765 |            1.7524 |         0.13907 |         0.13922 |         tree | MinLeafSize:            315 |

__________________________________________________________
Optimization completed.
Total iterations: 90
Total elapsed time: 478.6155 seconds
Total time for training and validation: 2024.0417 seconds

Best observed learner is a tree model with:
	MinLeafSize:             96
Observed validation loss: 0.13907
Time for training and validation: 1.9149 seconds

Best estimated learner (returned model) is a tree model with:
	MinLeafSize:             97
Estimated validation loss: 0.13922
Estimated time for training and validation: 2.0003 seconds

Documentation for fitcauto display

Итоговая модель возвращена fitcauto соответствует лучшему предполагаемому ученику. Прежде, чем возвратить модель, функция переобучает его с помощью целых обучающих данных (adultdata), перечисленный Learner (или модель) тип и отображенные гиперзначения параметров.

Оцените эффективность набора тестов

Оцените эффективность возвращенной модели mdl на наборе тестов adulttest при помощи матрицы беспорядка и кривой рабочей характеристики приемника (ROC).

Найдите предсказанные метки и значения баллов для набора тестов.

[labels,scores] = predict(mdl,adulttest);

Создайте матрицу беспорядка из результатов набора тестов. Диагональные элементы указывают на количество правильно классифицированных экземпляров данного класса. Недиагональными элементами являются экземпляры неправильно классифицированных наблюдений.

confusionchart(adulttest.salary,labels)

Вычислите точность классификации наборов тестов. accuracy процент правильно классифицированных наблюдений набора тестов.

accuracy = (1-loss(mdl,adulttest,'salary'))*100
accuracy = 85.4486

Построить кривую ROC для значений баллов, соответствующих метке '<=50K', найдите столбец scores это соответствует той метке. Порядок следования столбцов scores совпадает с порядком классов в обученной модели.

mdl.ClassNames
ans = 2×1 categorical
     <=50K 
     >50K 

Поскольку '<=50K' перечислен сначала, первый столбец scores соответствует той метке.

Постройте кривую ROC и вычислите область под кривой (AUC). Кривая ROC показывает истинный положительный уровень по сравнению с ложным положительным уровнем для различных порогов классификатора выход. Для совершенного классификатора, истинный положительный уровень которого всегда 1 независимо от порога, AUC = 1. Для бинарного классификатора, который случайным образом присваивает наблюдения классам, AUC = 0.5. Большое значение AUC (близко к 1) указывает на хорошую эффективность классификатора.

[X,Y,~,AUC] = perfcurve(adulttest.salary,scores(:,1),'<=50K');
plot(X,Y)
title('ROC Curve')
xlabel('False Positive Rate')
ylabel('True Positive Rate')

AUC
AUC = 0.8848

На основе точности и значений AUC, классификатор выполняет хорошо на тестовых данных.

Смотрите также

| | |

Похожие темы