exponenta event banner

fitctree

Подгонка двоичного дерева решений для многоклассовой классификации

Описание

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

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

tree = fitctree(Tbl,Y) возвращает соответствующее двоичное дерево решения классификации на основе входных переменных, содержащихся в таблице Tbl и вывод в векторе Y.

пример

tree = fitctree(X,Y) возвращает соответствующее двоичное дерево решения классификации на основе входных переменных, содержащихся в матрице X и выходные данные Y. Возвращенное двоичное дерево разделяет узлы ветвления на основе значений столбца X.

пример

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

Примеры

свернуть все

Вырастите дерево классификации с помощью ionosphere набор данных.

load ionosphere
tc = fitctree(X,Y)
tc = 
  ClassificationTree
             ResponseName: 'Y'
    CategoricalPredictors: []
               ClassNames: {'b'  'g'}
           ScoreTransform: 'none'
          NumObservations: 351


  Properties, Methods

Можно управлять глубиной деревьев с помощью MaxNumSplits, MinLeafSize, или MinParentSize параметры пары имя-значение. fitctree по умолчанию выращивает глубокие деревья принятия решений. Можно выращивать более мелкие деревья, чтобы уменьшить сложность модели или время вычислений.

Загрузить ionosphere набор данных.

load ionosphere

Значения по умолчанию для контроллеров глубины дерева для выращивания деревьев классификации:

  • n - 1 для MaxNumSplits. n - размер обучающей выборки.

  • 1 для MinLeafSize.

  • 10 для MinParentSize.

Эти значения по умолчанию имеют тенденцию к росту глубоких деревьев для больших размеров обучающей выборки.

Подготовка дерева классификации с использованием значений по умолчанию для управления глубиной дерева. Перекрестная проверка модели с помощью 10-кратной перекрестной проверки.

rng(1); % For reproducibility
MdlDefault = fitctree(X,Y,'CrossVal','on');

Нарисуйте гистограмму количества наложенных расколов на деревьях. Также просмотрите одно из деревьев.

numBranches = @(x)sum(x.IsBranch);
mdlDefaultNumSplits = cellfun(numBranches, MdlDefault.Trained);

figure;
histogram(mdlDefaultNumSplits)

Figure contains an axes. The axes contains an object of type histogram.

view(MdlDefault.Trained{1},'Mode','graph')

Figure Classification tree viewer contains an axes and other objects of type uimenu, uicontrol. The axes contains 51 objects of type line, text.

Среднее число расщеплений составляет около 15.

Предположим, что требуется дерево классификации, которое не является таким сложным (глубоким), как те, которые обучены с использованием количества разделений по умолчанию. Обучите другое дерево классификации, но установите максимальное количество разбиений на 7, что примерно вдвое меньше среднего числа разбиений в дереве классификации по умолчанию. Перекрестная проверка модели с помощью 10-кратной перекрестной проверки.

Mdl7 = fitctree(X,Y,'MaxNumSplits',7,'CrossVal','on');
view(Mdl7.Trained{1},'Mode','graph')

Figure Classification tree viewer contains an axes and other objects of type uimenu, uicontrol. The axes contains 21 objects of type line, text.

Сравните ошибки классификации перекрестной проверки моделей.

classErrorDefault = kfoldLoss(MdlDefault)
classErrorDefault = 0.1168
classError7 = kfoldLoss(Mdl7)
classError7 = 0.1311

Mdl7 гораздо менее сложна и работает лишь немного хуже, чем MdlDefault.

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

Загрузите данные радужки Фишера.

load fisheriris

Оптимизация потери перекрестной проверки классификатора с использованием данных в meas для прогнозирования ответа в species.

X = meas;
Y = species;
Mdl = fitctree(X,Y,'OptimizeHyperparameters','auto')
|======================================================================================|
| Iter | Eval   | Objective   | Objective   | BestSoFar   | BestSoFar   |  MinLeafSize |
|      | result |             | runtime     | (observed)  | (estim.)    |              |
|======================================================================================|
|    1 | Best   |    0.066667 |      1.5367 |    0.066667 |    0.066667 |           31 |
|    2 | Accept |    0.066667 |     0.23469 |    0.066667 |    0.066667 |           12 |
|    3 | Best   |        0.04 |     0.15045 |        0.04 |    0.040003 |            2 |
|    4 | Accept |     0.66667 |     0.15971 |        0.04 |     0.15796 |           73 |
|    5 | Accept |        0.04 |     0.18712 |        0.04 |    0.040009 |            2 |
|    6 | Accept |     0.66667 |     0.11601 |        0.04 |    0.040012 |           74 |
|    7 | Accept |    0.066667 |     0.11471 |        0.04 |    0.040012 |           20 |
|    8 | Accept |        0.04 |     0.17598 |        0.04 |    0.040008 |            4 |
|    9 | Best   |    0.033333 |     0.11282 |    0.033333 |     0.03335 |            1 |
|   10 | Accept |    0.066667 |      0.1038 |    0.033333 |     0.03335 |            7 |
|   11 | Accept |        0.04 |     0.20461 |    0.033333 |    0.033348 |            3 |
|   12 | Accept |    0.066667 |    0.091671 |    0.033333 |    0.033348 |           26 |
|   13 | Accept |    0.046667 |      0.1385 |    0.033333 |    0.033347 |            5 |
|   14 | Accept |    0.033333 |     0.19382 |    0.033333 |     0.03334 |            1 |
|   15 | Accept |    0.066667 |     0.12698 |    0.033333 |    0.033339 |           15 |
|   16 | Accept |    0.033333 |     0.11236 |    0.033333 |    0.033337 |            1 |
|   17 | Accept |    0.033333 |     0.14636 |    0.033333 |    0.033336 |            1 |
|   18 | Accept |     0.33333 |     0.10531 |    0.033333 |    0.033336 |           43 |
|   19 | Accept |    0.066667 |     0.13532 |    0.033333 |    0.033336 |            9 |
|   20 | Accept |    0.066667 |     0.11853 |    0.033333 |    0.033336 |            6 |
|======================================================================================|
| Iter | Eval   | Objective   | Objective   | BestSoFar   | BestSoFar   |  MinLeafSize |
|      | result |             | runtime     | (observed)  | (estim.)    |              |
|======================================================================================|
|   21 | Accept |    0.066667 |     0.12865 |    0.033333 |    0.033336 |           17 |
|   22 | Accept |    0.066667 |     0.21762 |    0.033333 |    0.033336 |           10 |
|   23 | Accept |    0.066667 |     0.12816 |    0.033333 |    0.033336 |           36 |
|   24 | Accept |     0.33333 |     0.20025 |    0.033333 |    0.034075 |           54 |
|   25 | Accept |        0.04 |     0.10838 |    0.033333 |    0.034054 |            2 |
|   26 | Accept |        0.04 |      0.1155 |    0.033333 |    0.034022 |            3 |
|   27 | Accept |        0.04 |     0.11136 |    0.033333 |    0.033997 |            4 |
|   28 | Accept |    0.066667 |    0.099134 |    0.033333 |    0.033973 |           23 |
|   29 | Accept |    0.066667 |     0.11817 |    0.033333 |    0.033946 |            8 |
|   30 | Accept |    0.066667 |     0.12036 |    0.033333 |    0.033922 |           13 |

Figure contains an axes. The axes with title Min objective vs. Number of function evaluations contains 2 objects of type line. These objects represent Min observed objective, Estimated min objective.

Figure contains an axes. The axes with title Objective function model contains 8 objects of type line. These objects represent Observed points, Model mean, Model error bars, Noise error bars, Next point, Model minimum feasible.

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

Best observed feasible point:
    MinLeafSize
    ___________

         1     

Observed objective function value = 0.033333
Estimated objective function value = 0.033922
Function evaluation time = 0.11282

Best estimated feasible point (according to models):
    MinLeafSize
    ___________

         1     

Estimated objective function value = 0.033922
Estimated function evaluation time = 0.14731
Mdl = 
  ClassificationTree
                         ResponseName: 'Y'
                CategoricalPredictors: []
                           ClassNames: {'setosa'  'versicolor'  'virginica'}
                       ScoreTransform: 'none'
                      NumObservations: 150
    HyperparameterOptimizationResults: [1x1 BayesianOptimization]


  Properties, Methods

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

load census1994
X = adultdata(:,{'age','workClass','education_num','marital_status','race',...
    'sex','capital_gain','capital_loss','hours_per_week','salary'});

Отображение количества категорий, представленных в категориальных переменных с помощью summary.

summary(X)
Variables:

    age: 32561x1 double

        Values:

            Min          17   
            Median       37   
            Max          90   

    workClass: 32561x1 categorical

        Values:

            Federal-gov            960  
            Local-gov             2093  
            Never-worked             7  
            Private              22696  
            Self-emp-inc          1116  
            Self-emp-not-inc      2541  
            State-gov             1298  
            Without-pay             14  
            NumMissing            1836  

    education_num: 32561x1 double

        Values:

            Min           1   
            Median       10   
            Max          16   

    marital_status: 32561x1 categorical

        Values:

            Divorced                   4443  
            Married-AF-spouse            23  
            Married-civ-spouse        14976  
            Married-spouse-absent       418  
            Never-married             10683  
            Separated                  1025  
            Widowed                     993  

    race: 32561x1 categorical

        Values:

            Amer-Indian-Eskimo       311  
            Asian-Pac-Islander      1039  
            Black                   3124  
            Other                    271  
            White                  27816  

    sex: 32561x1 categorical

        Values:

            Female     10771  
            Male       21790  

    capital_gain: 32561x1 double

        Values:

            Min            0  
            Median         0  
            Max        99999  

    capital_loss: 32561x1 double

        Values:

            Min            0  
            Median         0  
            Max         4356  

    hours_per_week: 32561x1 double

        Values:

            Min           1   
            Median       40   
            Max          99   

    salary: 32561x1 categorical

        Values:

            <=50K     24720  
            >50K       7841  

Поскольку в категориальных переменных представлено немного категорий по сравнению с уровнями в непрерывных переменных, стандартный алгоритм разделения предиктора CART предпочитает разделение непрерывного предиктора над категориальными переменными.

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

Mdl = fitctree(X,'salary','PredictorSelection','curvature',...
    'Surrogate','on');

Оценить значения важности предиктора путем суммирования изменений риска из-за расщеплений на каждом предикторе и деления суммы на количество узлов ветвления. Сравните оценки с помощью гистограммы.

imp = predictorImportance(Mdl);

figure;
bar(imp);
title('Predictor Importance Estimates');
ylabel('Estimates');
xlabel('Predictors');
h = gca;
h.XTickLabel = Mdl.PredictorNames;
h.XTickLabelRotation = 45;
h.TickLabelInterpreter = 'none';

Figure contains an axes. The axes with title Predictor Importance Estimates contains an object of type bar.

В этом случае capital_gain является наиболее важным предиктором, за которым следует education_num.

В этом примере показано, как оптимизировать гиперпараметры дерева классификации автоматически с использованием массива высокого уровня. Набор данных образца airlinesmall.csv - большой набор данных, содержащий табличный файл данных о полетах авиакомпании. В этом примере создается таблица высокого уровня, содержащая данные, и используется для выполнения процедуры оптимизации.

При выполнении вычислений в массивах TALL MATLAB ® использует либо параллельный пул (по умолчанию при наличии Toolbox™ Parallel Computing), либо локальный сеанс MATLAB. Если требуется выполнить пример с использованием локального сеанса MATLAB при наличии панели инструментов Parallel Computing Toolbox, можно изменить глобальную среду выполнения с помощью mapreducer функция.

Создайте хранилище данных, которое ссылается на расположение папки с данными. Выберите подмножество переменных для работы и обработайте 'NA' значения как отсутствующие данные, так что datastore заменяет их на NaN значения. Создайте таблицу высокого уровня, содержащую данные в хранилище данных.

ds = datastore('airlinesmall.csv');
ds.SelectedVariableNames = {'Month','DayofMonth','DayOfWeek',...
                            'DepTime','ArrDelay','Distance','DepDelay'};
ds.TreatAsMissing = 'NA';
tt  = tall(ds) % Tall table
Starting parallel pool (parpool) using the 'local' profile ...
Connected to the parallel pool (number of workers: 6).

tt =

  M×7 tall table

    Month    DayofMonth    DayOfWeek    DepTime    ArrDelay    Distance    DepDelay
    _____    __________    _________    _______    ________    ________    ________

     10          21            3          642          8         308          12   
     10          26            1         1021          8         296           1   
     10          23            5         2055         21         480          20   
     10          23            5         1332         13         296          12   
     10          22            4          629          4         373          -1   
     10          28            3         1446         59         308          63   
     10           8            4          928          3         447          -2   
     10          10            6          859         11         954          -1   
      :          :             :           :          :           :           :
      :          :             :           :          :           :           :

Определите рейсы с опозданием на 10 минут или более, определив логическую переменную, которая является истинной для позднего полета. Эта переменная содержит метки класса. Предварительный просмотр этой переменной включает первые несколько строк.

Y = tt.DepDelay > 10 % Class 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' аргумент пары имя-значение. Найти оптимальный вариант 'MinLeafSize' значение, которое минимизирует потери при перекрестной проверке удержания. (Указание 'auto' использование 'MinLeafSize'.) Для воспроизводимости используйте 'expected-improvement-plus' функция обнаружения и установка начальных значений генераторов случайных чисел с помощью rng и tallrng. Результаты могут варьироваться в зависимости от количества работников и среды выполнения для массивов tall. Дополнительные сведения см. в разделе Управление местом запуска кода.

rng('default') 
tallrng('default')
[Mdl,FitInfo,HyperparameterOptimizationResults] = fitctree(Z,Y,...
    'OptimizeHyperparameters','auto',...
    'HyperparameterOptimizationOptions',struct('Holdout',0.3,...
    'AcquisitionFunctionName','expected-improvement-plus'))
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 3: Completed in 5.6 sec
- Pass 2 of 3: Completed in 2.1 sec
- Pass 3 of 3: Completed in 3.4 sec
Evaluation completed in 13 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.73 sec
Evaluation completed in 0.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.2 sec
Evaluation completed in 1.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.64 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 0.72 sec
- Pass 4 of 4: Completed in 1.1 sec
Evaluation completed in 5.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.53 sec
- Pass 2 of 4: Completed in 0.73 sec
- Pass 3 of 4: Completed in 0.58 sec
- Pass 4 of 4: Completed in 0.8 sec
Evaluation completed in 3.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.54 sec
- Pass 2 of 4: Completed in 0.72 sec
- Pass 3 of 4: Completed in 0.54 sec
- Pass 4 of 4: Completed in 0.79 sec
Evaluation completed in 3.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.51 sec
- Pass 2 of 4: Completed in 0.72 sec
- Pass 3 of 4: Completed in 0.59 sec
- Pass 4 of 4: Completed in 0.87 sec
Evaluation completed in 3.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.56 sec
- Pass 2 of 4: Completed in 0.8 sec
- Pass 3 of 4: Completed in 0.54 sec
- Pass 4 of 4: Completed in 0.89 sec
Evaluation completed in 3.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.57 sec
- Pass 2 of 4: Completed in 0.74 sec
- Pass 3 of 4: Completed in 0.58 sec
- Pass 4 of 4: Completed in 1 sec
Evaluation completed in 3.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.54 sec
- Pass 2 of 4: Completed in 1.3 sec
- Pass 3 of 4: Completed in 0.68 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 4.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.65 sec
- Pass 2 of 4: Completed in 0.73 sec
- Pass 3 of 4: Completed in 0.65 sec
- Pass 4 of 4: Completed in 1.7 sec
Evaluation completed in 4.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.63 sec
- Pass 2 of 4: Completed in 0.85 sec
- Pass 3 of 4: Completed in 0.58 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 4.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.2 sec
- Pass 2 of 4: Completed in 0.88 sec
- Pass 3 of 4: Completed in 0.58 sec
- Pass 4 of 4: Completed in 3 sec
Evaluation completed in 6.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.72 sec
- Pass 2 of 4: Completed in 0.96 sec
- Pass 3 of 4: Completed in 0.59 sec
- Pass 4 of 4: Completed in 4.2 sec
Evaluation completed in 7.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.77 sec
- Pass 2 of 4: Completed in 0.95 sec
- Pass 3 of 4: Completed in 0.65 sec
- Pass 4 of 4: Completed in 4.8 sec
Evaluation completed in 7.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.79 sec
- Pass 2 of 4: Completed in 1 sec
- Pass 3 of 4: Completed in 0.61 sec
- Pass 4 of 4: Completed in 5.1 sec
Evaluation completed in 8.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.89 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 0.59 sec
- Pass 4 of 4: Completed in 5.8 sec
Evaluation completed in 9.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1 sec
- Pass 2 of 4: Completed in 1.2 sec
- Pass 3 of 4: Completed in 0.63 sec
- Pass 4 of 4: Completed in 5.2 sec
Evaluation completed in 8.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.6 sec
- Pass 2 of 4: Completed in 1.3 sec
- Pass 3 of 4: Completed in 0.74 sec
- Pass 4 of 4: Completed in 4.8 sec
Evaluation completed in 9.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1 sec
- Pass 2 of 4: Completed in 1.3 sec
- Pass 3 of 4: Completed in 0.68 sec
- Pass 4 of 4: Completed in 3.9 sec
Evaluation completed in 7.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.6 sec
- Pass 2 of 4: Completed in 1.3 sec
- Pass 3 of 4: Completed in 0.7 sec
- Pass 4 of 4: Completed in 3 sec
Evaluation completed in 7.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.1 sec
- Pass 2 of 4: Completed in 1.3 sec
- Pass 3 of 4: Completed in 0.66 sec
- Pass 4 of 4: Completed in 2.5 sec
Evaluation completed in 6.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.1 sec
- Pass 2 of 4: Completed in 1.3 sec
- Pass 3 of 4: Completed in 0.66 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 5.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.1 sec
- Pass 2 of 4: Completed in 1.3 sec
- Pass 3 of 4: Completed in 0.69 sec
- Pass 4 of 4: Completed in 1.9 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.2 sec
- Pass 2 of 4: Completed in 1.4 sec
- Pass 3 of 4: Completed in 0.67 sec
- Pass 4 of 4: Completed in 1.6 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.3 sec
- Pass 2 of 4: Completed in 1.4 sec
- Pass 3 of 4: Completed in 0.65 sec
- Pass 4 of 4: Completed in 1.5 sec
Evaluation completed in 5.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.1 sec
- Pass 2 of 4: Completed in 1.3 sec
- Pass 3 of 4: Completed in 0.67 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.2 sec
- Pass 2 of 4: Completed in 1.3 sec
- Pass 3 of 4: Completed in 0.73 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.1 sec
- Pass 2 of 4: Completed in 1.3 sec
- Pass 3 of 4: Completed in 0.65 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 2.4 sec
Evaluation completed in 2.6 sec
|======================================================================================|
| Iter | Eval   | Objective   | Objective   | BestSoFar   | BestSoFar   |  MinLeafSize |
|      | result |             | runtime     | (observed)  | (estim.)    |              |
|======================================================================================|
|    1 | Best   |     0.11572 |      197.12 |     0.11572 |     0.11572 |           10 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.4 sec
Evaluation completed in 0.56 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.93 sec
Evaluation completed in 1.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.5 sec
- Pass 2 of 4: Completed in 0.7 sec
- Pass 3 of 4: Completed in 1.1 sec
- Pass 4 of 4: Completed in 0.84 sec
Evaluation completed in 3.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.4 sec
Evaluation completed in 1.6 sec
|    2 | Accept |     0.19635 |      10.496 |     0.11572 |     0.12008 |        48298 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.33 sec
Evaluation completed in 0.47 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.83 sec
Evaluation completed in 0.99 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.49 sec
- Pass 2 of 4: Completed in 0.68 sec
- Pass 3 of 4: Completed in 0.52 sec
- Pass 4 of 4: Completed in 0.74 sec
Evaluation completed in 3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.48 sec
- Pass 2 of 4: Completed in 0.69 sec
- Pass 3 of 4: Completed in 0.51 sec
- Pass 4 of 4: Completed in 0.73 sec
Evaluation completed in 3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.51 sec
- Pass 2 of 4: Completed in 0.71 sec
- Pass 3 of 4: Completed in 0.68 sec
- Pass 4 of 4: Completed in 0.77 sec
Evaluation completed in 3.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.48 sec
- Pass 2 of 4: Completed in 0.7 sec
- Pass 3 of 4: Completed in 0.55 sec
- Pass 4 of 4: Completed in 0.86 sec
Evaluation completed in 3.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.5 sec
- Pass 2 of 4: Completed in 0.69 sec
- Pass 3 of 4: Completed in 0.55 sec
- Pass 4 of 4: Completed in 0.76 sec
Evaluation completed in 3.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.52 sec
- Pass 2 of 4: Completed in 0.7 sec
- Pass 3 of 4: Completed in 0.5 sec
- Pass 4 of 4: Completed in 0.76 sec
Evaluation completed in 3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.54 sec
- Pass 2 of 4: Completed in 0.75 sec
- Pass 3 of 4: Completed in 0.55 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.53 sec
- Pass 2 of 4: Completed in 0.74 sec
- Pass 3 of 4: Completed in 0.55 sec
- Pass 4 of 4: Completed in 0.78 sec
Evaluation completed in 3.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.56 sec
- Pass 2 of 4: Completed in 0.76 sec
- Pass 3 of 4: Completed in 0.56 sec
- Pass 4 of 4: Completed in 0.78 sec
Evaluation completed in 3.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.75 sec
Evaluation completed in 0.87 sec
|    3 | Best   |      0.1048 |      44.614 |      0.1048 |     0.11431 |         3166 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.3 sec
Evaluation completed in 0.45 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.83 sec
Evaluation completed in 0.97 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.99 sec
- Pass 2 of 4: Completed in 0.68 sec
- Pass 3 of 4: Completed in 0.52 sec
- Pass 4 of 4: Completed in 0.73 sec
Evaluation completed in 3.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.47 sec
- Pass 2 of 4: Completed in 0.76 sec
- Pass 3 of 4: Completed in 0.54 sec
- Pass 4 of 4: Completed in 0.82 sec
Evaluation completed in 3.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.52 sec
- Pass 2 of 4: Completed in 0.74 sec
- Pass 3 of 4: Completed in 0.54 sec
- Pass 4 of 4: Completed in 0.81 sec
Evaluation completed in 3.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.55 sec
- Pass 2 of 4: Completed in 0.7 sec
- Pass 3 of 4: Completed in 0.53 sec
- Pass 4 of 4: Completed in 0.81 sec
Evaluation completed in 3.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.52 sec
- Pass 2 of 4: Completed in 0.77 sec
- Pass 3 of 4: Completed in 0.58 sec
- Pass 4 of 4: Completed in 0.89 sec
Evaluation completed in 3.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.51 sec
- Pass 2 of 4: Completed in 0.74 sec
- Pass 3 of 4: Completed in 0.6 sec
- Pass 4 of 4: Completed in 1.5 sec
Evaluation completed in 3.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1 sec
- Pass 2 of 4: Completed in 0.75 sec
- Pass 3 of 4: Completed in 0.55 sec
- Pass 4 of 4: Completed in 1.1 sec
Evaluation completed in 4.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.52 sec
- Pass 2 of 4: Completed in 0.78 sec
- Pass 3 of 4: Completed in 0.5 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 3.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.63 sec
- Pass 2 of 4: Completed in 1.3 sec
- Pass 3 of 4: Completed in 0.61 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 4.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.59 sec
- Pass 2 of 4: Completed in 0.8 sec
- Pass 3 of 4: Completed in 0.57 sec
- Pass 4 of 4: Completed in 1.5 sec
Evaluation completed in 4.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.66 sec
- Pass 2 of 4: Completed in 0.81 sec
- Pass 3 of 4: Completed in 0.52 sec
- Pass 4 of 4: Completed in 1.5 sec
Evaluation completed in 4.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.62 sec
- Pass 2 of 4: Completed in 0.75 sec
- Pass 3 of 4: Completed in 0.61 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 3.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.61 sec
- Pass 2 of 4: Completed in 0.78 sec
- Pass 3 of 4: Completed in 1.1 sec
- Pass 4 of 4: Completed in 1.6 sec
Evaluation completed in 4.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.6 sec
- Pass 2 of 4: Completed in 0.81 sec
- Pass 3 of 4: Completed in 0.55 sec
- Pass 4 of 4: Completed in 1.5 sec
Evaluation completed in 4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.61 sec
- Pass 2 of 4: Completed in 0.78 sec
- Pass 3 of 4: Completed in 0.55 sec
- Pass 4 of 4: Completed in 0.9 sec
Evaluation completed in 3.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.59 sec
- Pass 2 of 4: Completed in 0.81 sec
- Pass 3 of 4: Completed in 0.53 sec
- Pass 4 of 4: Completed in 0.81 sec
Evaluation completed in 3.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.59 sec
- Pass 2 of 4: Completed in 0.78 sec
- Pass 3 of 4: Completed in 1 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 4.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.8 sec
Evaluation completed in 0.94 sec
|    4 | Best   |     0.10094 |      91.723 |     0.10094 |     0.10574 |          180 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.3 sec
Evaluation completed in 0.42 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.93 sec
Evaluation completed in 1.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.55 sec
- Pass 2 of 4: Completed in 0.66 sec
- Pass 3 of 4: Completed in 0.55 sec
- Pass 4 of 4: Completed in 0.83 sec
Evaluation completed in 3.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.49 sec
- Pass 2 of 4: Completed in 0.71 sec
- Pass 3 of 4: Completed in 0.54 sec
- Pass 4 of 4: Completed in 0.76 sec
Evaluation completed in 3.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.5 sec
- Pass 2 of 4: Completed in 0.7 sec
- Pass 3 of 4: Completed in 0.56 sec
- Pass 4 of 4: Completed in 0.78 sec
Evaluation completed in 3.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.56 sec
- Pass 2 of 4: Completed in 0.72 sec
- Pass 3 of 4: Completed in 0.51 sec
- Pass 4 of 4: Completed in 0.81 sec
Evaluation completed in 3.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.52 sec
- Pass 2 of 4: Completed in 1.3 sec
- Pass 3 of 4: Completed in 1.1 sec
- Pass 4 of 4: Completed in 0.88 sec
Evaluation completed in 4.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.52 sec
- Pass 2 of 4: Completed in 0.7 sec
- Pass 3 of 4: Completed in 0.5 sec
- Pass 4 of 4: Completed in 0.98 sec
Evaluation completed in 3.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.56 sec
- Pass 2 of 4: Completed in 0.74 sec
- Pass 3 of 4: Completed in 0.5 sec
- Pass 4 of 4: Completed in 1.1 sec
Evaluation completed in 3.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.61 sec
- Pass 2 of 4: Completed in 0.81 sec
- Pass 3 of 4: Completed in 0.56 sec
- Pass 4 of 4: Completed in 1.2 sec
Evaluation completed in 3.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.59 sec
- Pass 2 of 4: Completed in 0.81 sec
- Pass 3 of 4: Completed in 0.7 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 4.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.56 sec
- Pass 2 of 4: Completed in 0.73 sec
- Pass 3 of 4: Completed in 0.59 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 3.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.58 sec
- Pass 2 of 4: Completed in 0.8 sec
- Pass 3 of 4: Completed in 0.52 sec
- Pass 4 of 4: Completed in 1.2 sec
Evaluation completed in 3.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.64 sec
- Pass 2 of 4: Completed in 0.79 sec
- Pass 3 of 4: Completed in 0.54 sec
- Pass 4 of 4: Completed in 1.1 sec
Evaluation completed in 3.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.57 sec
- Pass 2 of 4: Completed in 0.78 sec
- Pass 3 of 4: Completed in 0.56 sec
- Pass 4 of 4: Completed in 0.97 sec
Evaluation completed in 3.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.55 sec
- Pass 2 of 4: Completed in 0.75 sec
- Pass 3 of 4: Completed in 0.55 sec
- Pass 4 of 4: Completed in 0.89 sec
Evaluation completed in 3.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.6 sec
- Pass 2 of 4: Completed in 1.3 sec
- Pass 3 of 4: Completed in 0.61 sec
- Pass 4 of 4: Completed in 0.85 sec
Evaluation completed in 3.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.6 sec
- Pass 2 of 4: Completed in 0.82 sec
- Pass 3 of 4: Completed in 0.56 sec
- Pass 4 of 4: Completed in 0.79 sec
Evaluation completed in 3.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.3 sec
Evaluation completed in 1.4 sec
|    5 | Best   |     0.10087 |       82.84 |     0.10087 |     0.10085 |          219 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.32 sec
Evaluation completed in 0.45 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.87 sec
Evaluation completed in 1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.5 sec
- Pass 2 of 4: Completed in 0.7 sec
- Pass 3 of 4: Completed in 0.56 sec
- Pass 4 of 4: Completed in 0.76 sec
Evaluation completed in 3.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.53 sec
- Pass 2 of 4: Completed in 0.74 sec
- Pass 3 of 4: Completed in 0.54 sec
- Pass 4 of 4: Completed in 0.79 sec
Evaluation completed in 3.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.49 sec
- Pass 2 of 4: Completed in 0.66 sec
- Pass 3 of 4: Completed in 0.5 sec
- Pass 4 of 4: Completed in 0.78 sec
Evaluation completed in 3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.49 sec
- Pass 2 of 4: Completed in 0.68 sec
- Pass 3 of 4: Completed in 0.51 sec
- Pass 4 of 4: Completed in 0.81 sec
Evaluation completed in 3.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.55 sec
- Pass 2 of 4: Completed in 0.68 sec
- Pass 3 of 4: Completed in 0.54 sec
- Pass 4 of 4: Completed in 0.86 sec
Evaluation completed in 3.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.51 sec
- Pass 2 of 4: Completed in 0.71 sec
- Pass 3 of 4: Completed in 0.53 sec
- Pass 4 of 4: Completed in 1 sec
Evaluation completed in 3.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.59 sec
- Pass 2 of 4: Completed in 1.2 sec
- Pass 3 of 4: Completed in 0.55 sec
- Pass 4 of 4: Completed in 0.85 sec
Evaluation completed in 3.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.6 sec
- Pass 2 of 4: Completed in 0.74 sec
- Pass 3 of 4: Completed in 0.6 sec
- Pass 4 of 4: Completed in 0.84 sec
Evaluation completed in 3.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.51 sec
- Pass 2 of 4: Completed in 0.77 sec
- Pass 3 of 4: Completed in 0.58 sec
- Pass 4 of 4: Completed in 0.87 sec
Evaluation completed in 3.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.53 sec
- Pass 2 of 4: Completed in 0.78 sec
- Pass 3 of 4: Completed in 1.1 sec
- Pass 4 of 4: Completed in 0.92 sec
Evaluation completed in 3.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.54 sec
- Pass 2 of 4: Completed in 0.81 sec
- Pass 3 of 4: Completed in 0.59 sec
- Pass 4 of 4: Completed in 0.77 sec
Evaluation completed in 3.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.53 sec
- Pass 2 of 4: Completed in 1.2 sec
- Pass 3 of 4: Completed in 0.68 sec
- Pass 4 of 4: Completed in 0.86 sec
Evaluation completed in 3.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.77 sec
Evaluation completed in 0.93 sec
|    6 | Accept |     0.10155 |      61.043 |     0.10087 |     0.10089 |         1089 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.33 sec
Evaluation completed in 0.46 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.89 sec
Evaluation completed in 1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.56 sec
- Pass 2 of 4: Completed in 0.72 sec
- Pass 3 of 4: Completed in 0.56 sec
- Pass 4 of 4: Completed in 0.8 sec
Evaluation completed in 3.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.53 sec
- Pass 2 of 4: Completed in 0.69 sec
- Pass 3 of 4: Completed in 0.54 sec
- Pass 4 of 4: Completed in 0.85 sec
Evaluation completed in 3.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.51 sec
- Pass 2 of 4: Completed in 1.2 sec
- Pass 3 of 4: Completed in 0.59 sec
- Pass 4 of 4: Completed in 0.83 sec
Evaluation completed in 3.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1 sec
- Pass 2 of 4: Completed in 0.76 sec
- Pass 3 of 4: Completed in 0.56 sec
- Pass 4 of 4: Completed in 0.87 sec
Evaluation completed in 4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1 sec
- Pass 2 of 4: Completed in 0.77 sec
- Pass 3 of 4: Completed in 0.53 sec
- Pass 4 of 4: Completed in 0.9 sec
Evaluation completed in 3.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1 sec
- Pass 2 of 4: Completed in 0.77 sec
- Pass 3 of 4: Completed in 0.51 sec
- Pass 4 of 4: Completed in 0.98 sec
Evaluation completed in 3.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1 sec
- Pass 2 of 4: Completed in 0.78 sec
- Pass 3 of 4: Completed in 0.62 sec
- Pass 4 of 4: Completed in 1.1 sec
Evaluation completed in 4.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.52 sec
- Pass 2 of 4: Completed in 0.71 sec
- Pass 3 of 4: Completed in 0.53 sec
- Pass 4 of 4: Completed in 1.5 sec
Evaluation completed in 3.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.59 sec
- Pass 2 of 4: Completed in 0.72 sec
- Pass 3 of 4: Completed in 0.59 sec
- Pass 4 of 4: Completed in 2 sec
Evaluation completed in 4.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.59 sec
- Pass 2 of 4: Completed in 0.81 sec
- Pass 3 of 4: Completed in 0.57 sec
- Pass 4 of 4: Completed in 2.7 sec
Evaluation completed in 5.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.64 sec
- Pass 2 of 4: Completed in 0.87 sec
- Pass 3 of 4: Completed in 1.2 sec
- Pass 4 of 4: Completed in 3.7 sec
Evaluation completed in 7.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.73 sec
- Pass 2 of 4: Completed in 0.92 sec
- Pass 3 of 4: Completed in 0.6 sec
- Pass 4 of 4: Completed in 4.4 sec
Evaluation completed in 7.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.86 sec
- Pass 2 of 4: Completed in 1.5 sec
- Pass 3 of 4: Completed in 0.64 sec
- Pass 4 of 4: Completed in 4.8 sec
Evaluation completed in 8.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.9 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 0.65 sec
- Pass 4 of 4: Completed in 5.2 sec
Evaluation completed in 8.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1 sec
- Pass 2 of 4: Completed in 1.3 sec
- Pass 3 of 4: Completed in 0.73 sec
- Pass 4 of 4: Completed in 5.6 sec
Evaluation completed in 9.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.5 sec
- Pass 2 of 4: Completed in 1.6 sec
- Pass 3 of 4: Completed in 0.75 sec
- Pass 4 of 4: Completed in 5.8 sec
Evaluation completed in 10 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.3 sec
- Pass 2 of 4: Completed in 1.4 sec
- Pass 3 of 4: Completed in 1.2 sec
- Pass 4 of 4: Completed in 5.1 sec
Evaluation completed in 9.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.4 sec
- Pass 2 of 4: Completed in 1.5 sec
- Pass 3 of 4: Completed in 0.7 sec
- Pass 4 of 4: Completed in 4.1 sec
Evaluation completed in 8.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.4 sec
- Pass 2 of 4: Completed in 1.6 sec
- Pass 3 of 4: Completed in 0.71 sec
- Pass 4 of 4: Completed in 3.6 sec
Evaluation completed in 7.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.5 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 0.74 sec
- Pass 4 of 4: Completed in 3.2 sec
Evaluation completed in 7.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.4 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 0.73 sec
- Pass 4 of 4: Completed in 2.8 sec
Evaluation completed in 7.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.5 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 0.82 sec
- Pass 4 of 4: Completed in 2.4 sec
Evaluation completed in 7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 2 sec
- Pass 2 of 4: Completed in 1.9 sec
- Pass 3 of 4: Completed in 0.79 sec
- Pass 4 of 4: Completed in 2.3 sec
Evaluation completed in 7.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.6 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 0.73 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 6.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.6 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 0.79 sec
- Pass 4 of 4: Completed in 2.3 sec
Evaluation completed in 7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.7 sec
- Pass 2 of 4: Completed in 1.9 sec
- Pass 3 of 4: Completed in 0.8 sec
- Pass 4 of 4: Completed in 1.8 sec
Evaluation completed in 6.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.7 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 0.77 sec
- Pass 4 of 4: Completed in 1.8 sec
Evaluation completed in 6.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.4 sec
- Pass 2 of 4: Completed in 1.6 sec
- Pass 3 of 4: Completed in 0.73 sec
- Pass 4 of 4: Completed in 1.8 sec
Evaluation completed in 6.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.5 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 1.3 sec
- Pass 4 of 4: Completed in 1.7 sec
Evaluation completed in 6.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.5 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 0.73 sec
- Pass 4 of 4: Completed in 1.8 sec
Evaluation completed in 6.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.3 sec
Evaluation completed in 1.5 sec
|    7 | Accept |     0.13495 |      241.76 |     0.10087 |     0.10089 |            1 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.31 sec
Evaluation completed in 0.44 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.87 sec
Evaluation completed in 1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.47 sec
- Pass 2 of 4: Completed in 0.67 sec
- Pass 3 of 4: Completed in 0.54 sec
- Pass 4 of 4: Completed in 0.74 sec
Evaluation completed in 3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.51 sec
- Pass 2 of 4: Completed in 0.79 sec
- Pass 3 of 4: Completed in 0.56 sec
- Pass 4 of 4: Completed in 0.76 sec
Evaluation completed in 3.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.49 sec
- Pass 2 of 4: Completed in 0.69 sec
- Pass 3 of 4: Completed in 1.1 sec
- Pass 4 of 4: Completed in 0.78 sec
Evaluation completed in 3.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1 sec
- Pass 2 of 4: Completed in 0.78 sec
- Pass 3 of 4: Completed in 0.53 sec
- Pass 4 of 4: Completed in 0.85 sec
Evaluation completed in 3.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.54 sec
- Pass 2 of 4: Completed in 0.77 sec
- Pass 3 of 4: Completed in 0.52 sec
- Pass 4 of 4: Completed in 0.89 sec
Evaluation completed in 3.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.51 sec
- Pass 2 of 4: Completed in 0.73 sec
- Pass 3 of 4: Completed in 0.6 sec
- Pass 4 of 4: Completed in 1.1 sec
Evaluation completed in 3.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.53 sec
- Pass 2 of 4: Completed in 0.77 sec
- Pass 3 of 4: Completed in 0.54 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 3.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.62 sec
- Pass 2 of 4: Completed in 0.8 sec
- Pass 3 of 4: Completed in 0.61 sec
- Pass 4 of 4: Completed in 1.6 sec
Evaluation completed in 4.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.2 sec
- Pass 2 of 4: Completed in 1.5 sec
- Pass 3 of 4: Completed in 1.1 sec
- Pass 4 of 4: Completed in 1.9 sec
Evaluation completed in 6.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.69 sec
- Pass 2 of 4: Completed in 0.88 sec
- Pass 3 of 4: Completed in 0.75 sec
- Pass 4 of 4: Completed in 2.1 sec
Evaluation completed in 5.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.61 sec
- Pass 2 of 4: Completed in 0.79 sec
- Pass 3 of 4: Completed in 0.54 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 4.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.61 sec
- Pass 2 of 4: Completed in 0.84 sec
- Pass 3 of 4: Completed in 0.58 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 4.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.68 sec
- Pass 2 of 4: Completed in 0.85 sec
- Pass 3 of 4: Completed in 0.59 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 4.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.68 sec
- Pass 2 of 4: Completed in 0.91 sec
- Pass 3 of 4: Completed in 0.58 sec
- Pass 4 of 4: Completed in 2.4 sec
Evaluation completed in 5.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.92 sec
- Pass 2 of 4: Completed in 0.86 sec
- Pass 3 of 4: Completed in 0.57 sec
- Pass 4 of 4: Completed in 1.6 sec
Evaluation completed in 4.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.69 sec
- Pass 2 of 4: Completed in 0.91 sec
- Pass 3 of 4: Completed in 0.63 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 4.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.67 sec
- Pass 2 of 4: Completed in 0.86 sec
- Pass 3 of 4: Completed in 0.56 sec
- Pass 4 of 4: Completed in 0.99 sec
Evaluation completed in 3.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.2 sec
- Pass 2 of 4: Completed in 0.9 sec
- Pass 3 of 4: Completed in 0.57 sec
- Pass 4 of 4: Completed in 0.95 sec
Evaluation completed in 4.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.73 sec
- Pass 2 of 4: Completed in 0.91 sec
- Pass 3 of 4: Completed in 0.57 sec
- Pass 4 of 4: Completed in 0.91 sec
Evaluation completed in 3.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.76 sec
- Pass 2 of 4: Completed in 0.93 sec
- Pass 3 of 4: Completed in 0.57 sec
- Pass 4 of 4: Completed in 0.9 sec
Evaluation completed in 3.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.91 sec
Evaluation completed in 1.1 sec
|    8 | Accept |     0.10246 |      115.31 |     0.10087 |     0.10089 |           58 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.34 sec
Evaluation completed in 0.49 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.87 sec
Evaluation completed in 1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.55 sec
- Pass 2 of 4: Completed in 0.72 sec
- Pass 3 of 4: Completed in 0.57 sec
- Pass 4 of 4: Completed in 0.8 sec
Evaluation completed in 3.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.48 sec
- Pass 2 of 4: Completed in 0.7 sec
- Pass 3 of 4: Completed in 0.52 sec
- Pass 4 of 4: Completed in 0.76 sec
Evaluation completed in 3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.51 sec
- Pass 2 of 4: Completed in 0.69 sec
- Pass 3 of 4: Completed in 0.54 sec
- Pass 4 of 4: Completed in 0.79 sec
Evaluation completed in 3.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.53 sec
- Pass 2 of 4: Completed in 0.72 sec
- Pass 3 of 4: Completed in 0.56 sec
- Pass 4 of 4: Completed in 0.81 sec
Evaluation completed in 3.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1 sec
- Pass 2 of 4: Completed in 0.75 sec
- Pass 3 of 4: Completed in 0.56 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 4.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.55 sec
- Pass 2 of 4: Completed in 0.77 sec
- Pass 3 of 4: Completed in 0.6 sec
- Pass 4 of 4: Completed in 0.9 sec
Evaluation completed in 3.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.5 sec
- Pass 2 of 4: Completed in 0.73 sec
- Pass 3 of 4: Completed in 1.1 sec
- Pass 4 of 4: Completed in 1.1 sec
Evaluation completed in 4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.56 sec
- Pass 2 of 4: Completed in 0.75 sec
- Pass 3 of 4: Completed in 0.53 sec
- Pass 4 of 4: Completed in 1.2 sec
Evaluation completed in 3.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.61 sec
- Pass 2 of 4: Completed in 0.76 sec
- Pass 3 of 4: Completed in 1.1 sec
- Pass 4 of 4: Completed in 1.1 sec
Evaluation completed in 4.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.6 sec
- Pass 2 of 4: Completed in 0.74 sec
- Pass 3 of 4: Completed in 0.53 sec
- Pass 4 of 4: Completed in 0.95 sec
Evaluation completed in 3.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.55 sec
- Pass 2 of 4: Completed in 0.76 sec
- Pass 3 of 4: Completed in 0.57 sec
- Pass 4 of 4: Completed in 0.94 sec
Evaluation completed in 3.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.58 sec
- Pass 2 of 4: Completed in 0.77 sec
- Pass 3 of 4: Completed in 0.54 sec
- Pass 4 of 4: Completed in 0.83 sec
Evaluation completed in 3.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.59 sec
- Pass 2 of 4: Completed in 0.78 sec
- Pass 3 of 4: Completed in 0.57 sec
- Pass 4 of 4: Completed in 0.83 sec
Evaluation completed in 3.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.6 sec
- Pass 2 of 4: Completed in 0.76 sec
- Pass 3 of 4: Completed in 0.55 sec
- Pass 4 of 4: Completed in 0.77 sec
Evaluation completed in 3.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.72 sec
- Pass 2 of 4: Completed in 0.81 sec
- Pass 3 of 4: Completed in 0.6 sec
- Pass 4 of 4: Completed in 0.76 sec
Evaluation completed in 3.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
|    9 | Accept |     0.10173 |      77.229 |     0.10087 |     0.10086 |          418 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.32 sec
Evaluation completed in 0.46 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.84 sec
Evaluation completed in 1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.5 sec
- Pass 2 of 4: Completed in 0.72 sec
- Pass 3 of 4: Completed in 0.57 sec
- Pass 4 of 4: Completed in 0.75 sec
Evaluation completed in 3.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.49 sec
- Pass 2 of 4: Completed in 0.68 sec
- Pass 3 of 4: Completed in 0.55 sec
- Pass 4 of 4: Completed in 0.76 sec
Evaluation completed in 3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.52 sec
- Pass 2 of 4: Completed in 0.71 sec
- Pass 3 of 4: Completed in 0.54 sec
- Pass 4 of 4: Completed in 0.91 sec
Evaluation completed in 3.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.53 sec
- Pass 2 of 4: Completed in 0.69 sec
- Pass 3 of 4: Completed in 0.52 sec
- Pass 4 of 4: Completed in 0.82 sec
Evaluation completed in 3.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.51 sec
- Pass 2 of 4: Completed in 0.7 sec
- Pass 3 of 4: Completed in 0.61 sec
- Pass 4 of 4: Completed in 0.82 sec
Evaluation completed in 3.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.1 sec
- Pass 2 of 4: Completed in 0.78 sec
- Pass 3 of 4: Completed in 0.54 sec
- Pass 4 of 4: Completed in 0.95 sec
Evaluation completed in 3.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.55 sec
- Pass 2 of 4: Completed in 0.71 sec
- Pass 3 of 4: Completed in 0.53 sec
- Pass 4 of 4: Completed in 1.1 sec
Evaluation completed in 3.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.54 sec
- Pass 2 of 4: Completed in 0.7 sec
- Pass 3 of 4: Completed in 0.58 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 3.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.55 sec
- Pass 2 of 4: Completed in 0.73 sec
- Pass 3 of 4: Completed in 0.59 sec
- Pass 4 of 4: Completed in 1.7 sec
Evaluation completed in 4.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.58 sec
- Pass 2 of 4: Completed in 0.79 sec
- Pass 3 of 4: Completed in 0.56 sec
- Pass 4 of 4: Completed in 1.7 sec
Evaluation completed in 4.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.71 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 0.59 sec
- Pass 4 of 4: Completed in 1.7 sec
Evaluation completed in 5.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.65 sec
- Pass 2 of 4: Completed in 0.83 sec
- Pass 3 of 4: Completed in 0.61 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 4.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.67 sec
- Pass 2 of 4: Completed in 0.87 sec
- Pass 3 of 4: Completed in 0.58 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 4.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.61 sec
- Pass 2 of 4: Completed in 0.82 sec
- Pass 3 of 4: Completed in 0.55 sec
- Pass 4 of 4: Completed in 1.1 sec
Evaluation completed in 3.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.65 sec
- Pass 2 of 4: Completed in 0.84 sec
- Pass 3 of 4: Completed in 0.62 sec
- Pass 4 of 4: Completed in 0.89 sec
Evaluation completed in 3.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.64 sec
- Pass 2 of 4: Completed in 0.81 sec
- Pass 3 of 4: Completed in 0.56 sec
- Pass 4 of 4: Completed in 0.88 sec
Evaluation completed in 3.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.62 sec
- Pass 2 of 4: Completed in 0.9 sec
- Pass 3 of 4: Completed in 0.55 sec
- Pass 4 of 4: Completed in 0.86 sec
Evaluation completed in 3.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.65 sec
- Pass 2 of 4: Completed in 0.81 sec
- Pass 3 of 4: Completed in 0.56 sec
- Pass 4 of 4: Completed in 0.8 sec
Evaluation completed in 3.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.77 sec
Evaluation completed in 0.89 sec
|   10 | Accept |     0.10114 |      94.532 |     0.10087 |     0.10091 |          123 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.86 sec
Evaluation completed in 1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.83 sec
Evaluation completed in 0.99 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.48 sec
- Pass 2 of 4: Completed in 0.7 sec
- Pass 3 of 4: Completed in 0.54 sec
- Pass 4 of 4: Completed in 0.8 sec
Evaluation completed in 3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.5 sec
- Pass 2 of 4: Completed in 0.72 sec
- Pass 3 of 4: Completed in 0.53 sec
- Pass 4 of 4: Completed in 0.79 sec
Evaluation completed in 3.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.56 sec
- Pass 2 of 4: Completed in 0.73 sec
- Pass 3 of 4: Completed in 0.54 sec
- Pass 4 of 4: Completed in 0.85 sec
Evaluation completed in 3.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.5 sec
- Pass 2 of 4: Completed in 0.69 sec
- Pass 3 of 4: Completed in 0.55 sec
- Pass 4 of 4: Completed in 0.81 sec
Evaluation completed in 3.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.55 sec
- Pass 2 of 4: Completed in 0.82 sec
- Pass 3 of 4: Completed in 0.64 sec
- Pass 4 of 4: Completed in 0.94 sec
Evaluation completed in 3.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.49 sec
- Pass 2 of 4: Completed in 0.77 sec
- Pass 3 of 4: Completed in 0.53 sec
- Pass 4 of 4: Completed in 0.97 sec
Evaluation completed in 3.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.56 sec
- Pass 2 of 4: Completed in 0.78 sec
- Pass 3 of 4: Completed in 0.58 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 3.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.55 sec
- Pass 2 of 4: Completed in 0.81 sec
- Pass 3 of 4: Completed in 0.56 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 3.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.55 sec
- Pass 2 of 4: Completed in 0.76 sec
- Pass 3 of 4: Completed in 0.56 sec
- Pass 4 of 4: Completed in 1.5 sec
Evaluation completed in 3.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.59 sec
- Pass 2 of 4: Completed in 0.76 sec
- Pass 3 of 4: Completed in 0.55 sec
- Pass 4 of 4: Completed in 1.5 sec
Evaluation completed in 4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.59 sec
- Pass 2 of 4: Completed in 0.8 sec
- Pass 3 of 4: Completed in 0.59 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 3.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.59 sec
- Pass 2 of 4: Completed in 0.77 sec
- Pass 3 of 4: Completed in 0.55 sec
- Pass 4 of 4: Completed in 1.2 sec
Evaluation completed in 3.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.1 sec
- Pass 2 of 4: Completed in 0.8 sec
- Pass 3 of 4: Completed in 0.58 sec
- Pass 4 of 4: Completed in 1.1 sec
Evaluation completed in 4.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.65 sec
- Pass 2 of 4: Completed in 0.84 sec
- Pass 3 of 4: Completed in 1.1 sec
- Pass 4 of 4: Completed in 1 sec
Evaluation completed in 4.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.63 sec
- Pass 2 of 4: Completed in 0.84 sec
- Pass 3 of 4: Completed in 0.59 sec
- Pass 4 of 4: Completed in 0.9 sec
Evaluation completed in 3.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.2 sec
- Pass 2 of 4: Completed in 0.83 sec
- Pass 3 of 4: Completed in 0.56 sec
- Pass 4 of 4: Completed in 0.81 sec
Evaluation completed in 4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.65 sec
- Pass 2 of 4: Completed in 0.79 sec
- Pass 3 of 4: Completed in 0.59 sec
- Pass 4 of 4: Completed in 0.8 sec
Evaluation completed in 3.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.77 sec
Evaluation completed in 0.89 sec
|   11 | Best   |      0.1008 |      90.637 |      0.1008 |     0.10088 |          178 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.38 sec
Evaluation completed in 0.52 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.88 sec
Evaluation completed in 1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.49 sec
- Pass 2 of 4: Completed in 0.69 sec
- Pass 3 of 4: Completed in 0.51 sec
- Pass 4 of 4: Completed in 0.78 sec
Evaluation completed in 3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.59 sec
- Pass 2 of 4: Completed in 0.72 sec
- Pass 3 of 4: Completed in 0.53 sec
- Pass 4 of 4: Completed in 0.79 sec
Evaluation completed in 3.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.58 sec
- Pass 2 of 4: Completed in 0.74 sec
- Pass 3 of 4: Completed in 0.55 sec
- Pass 4 of 4: Completed in 0.93 sec
Evaluation completed in 3.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.57 sec
- Pass 2 of 4: Completed in 0.79 sec
- Pass 3 of 4: Completed in 0.58 sec
- Pass 4 of 4: Completed in 0.83 sec
Evaluation completed in 3.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.53 sec
- Pass 2 of 4: Completed in 1.2 sec
- Pass 3 of 4: Completed in 0.59 sec
- Pass 4 of 4: Completed in 0.91 sec
Evaluation completed in 3.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.58 sec
- Pass 2 of 4: Completed in 0.85 sec
- Pass 3 of 4: Completed in 0.58 sec
- Pass 4 of 4: Completed in 1 sec
Evaluation completed in 3.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.56 sec
- Pass 2 of 4: Completed in 0.77 sec
- Pass 3 of 4: Completed in 0.55 sec
- Pass 4 of 4: Completed in 1.2 sec
Evaluation completed in 3.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.1 sec
- Pass 2 of 4: Completed in 0.81 sec
- Pass 3 of 4: Completed in 0.52 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 4.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.54 sec
- Pass 2 of 4: Completed in 0.74 sec
- Pass 3 of 4: Completed in 0.54 sec
- Pass 4 of 4: Completed in 1.5 sec
Evaluation completed in 3.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.61 sec
- Pass 2 of 4: Completed in 0.79 sec
- Pass 3 of 4: Completed in 0.58 sec
- Pass 4 of 4: Completed in 1.5 sec
Evaluation completed in 4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.61 sec
- Pass 2 of 4: Completed in 0.82 sec
- Pass 3 of 4: Completed in 0.61 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.66 sec
- Pass 2 of 4: Completed in 0.77 sec
- Pass 3 of 4: Completed in 0.54 sec
- Pass 4 of 4: Completed in 1.2 sec
Evaluation completed in 3.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.61 sec
- Pass 2 of 4: Completed in 0.79 sec
- Pass 3 of 4: Completed in 0.56 sec
- Pass 4 of 4: Completed in 1.2 sec
Evaluation completed in 3.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.62 sec
- Pass 2 of 4: Completed in 0.85 sec
- Pass 3 of 4: Completed in 0.56 sec
- Pass 4 of 4: Completed in 1 sec
Evaluation completed in 3.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.61 sec
- Pass 2 of 4: Completed in 0.86 sec
- Pass 3 of 4: Completed in 1.1 sec
- Pass 4 of 4: Completed in 0.96 sec
Evaluation completed in 4.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.65 sec
- Pass 2 of 4: Completed in 0.8 sec
- Pass 3 of 4: Completed in 0.59 sec
- Pass 4 of 4: Completed in 0.86 sec
Evaluation completed in 3.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.69 sec
- Pass 2 of 4: Completed in 0.84 sec
- Pass 3 of 4: Completed in 0.53 sec
- Pass 4 of 4: Completed in 0.83 sec
Evaluation completed in 3.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.76 sec
Evaluation completed in 0.89 sec
|   12 | Accept |      0.1008 |      90.267 |      0.1008 |     0.10086 |          179 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.32 sec
Evaluation completed in 0.45 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.9 sec
Evaluation completed in 1.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.58 sec
- Pass 2 of 4: Completed in 0.71 sec
- Pass 3 of 4: Completed in 0.53 sec
- Pass 4 of 4: Completed in 0.77 sec
Evaluation completed in 3.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.49 sec
- Pass 2 of 4: Completed in 0.69 sec
- Pass 3 of 4: Completed in 0.58 sec
- Pass 4 of 4: Completed in 0.77 sec
Evaluation completed in 3.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.52 sec
- Pass 2 of 4: Completed in 0.71 sec
- Pass 3 of 4: Completed in 0.51 sec
- Pass 4 of 4: Completed in 0.78 sec
Evaluation completed in 3.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.54 sec
- Pass 2 of 4: Completed in 0.7 sec
- Pass 3 of 4: Completed in 0.54 sec
- Pass 4 of 4: Completed in 0.72 sec
Evaluation completed in 3.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.54 sec
- Pass 2 of 4: Completed in 0.74 sec
- Pass 3 of 4: Completed in 0.51 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 3.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.54 sec
- Pass 2 of 4: Completed in 0.78 sec
- Pass 3 of 4: Completed in 0.59 sec
- Pass 4 of 4: Completed in 0.74 sec
Evaluation completed in 3.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.83 sec
Evaluation completed in 0.97 sec
|   13 | Accept |     0.11126 |      32.134 |      0.1008 |     0.10084 |        10251 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.32 sec
Evaluation completed in 0.45 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.85 sec
Evaluation completed in 0.99 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.51 sec
- Pass 2 of 4: Completed in 0.75 sec
- Pass 3 of 4: Completed in 0.55 sec
- Pass 4 of 4: Completed in 0.74 sec
Evaluation completed in 3.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.5 sec
- Pass 2 of 4: Completed in 0.7 sec
- Pass 3 of 4: Completed in 0.57 sec
- Pass 4 of 4: Completed in 0.78 sec
Evaluation completed in 3.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.5 sec
- Pass 2 of 4: Completed in 0.68 sec
- Pass 3 of 4: Completed in 0.53 sec
- Pass 4 of 4: Completed in 0.79 sec
Evaluation completed in 3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.5 sec
- Pass 2 of 4: Completed in 1.3 sec
- Pass 3 of 4: Completed in 0.54 sec
- Pass 4 of 4: Completed in 0.91 sec
Evaluation completed in 3.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.53 sec
- Pass 2 of 4: Completed in 1.2 sec
- Pass 3 of 4: Completed in 0.59 sec
- Pass 4 of 4: Completed in 0.86 sec
Evaluation completed in 3.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.51 sec
- Pass 2 of 4: Completed in 0.71 sec
- Pass 3 of 4: Completed in 0.59 sec
- Pass 4 of 4: Completed in 1 sec
Evaluation completed in 3.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.56 sec
- Pass 2 of 4: Completed in 0.71 sec
- Pass 3 of 4: Completed in 0.64 sec
- Pass 4 of 4: Completed in 0.99 sec
Evaluation completed in 3.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.54 sec
- Pass 2 of 4: Completed in 1.2 sec
- Pass 3 of 4: Completed in 0.58 sec
- Pass 4 of 4: Completed in 0.94 sec
Evaluation completed in 3.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.51 sec
- Pass 2 of 4: Completed in 0.77 sec
- Pass 3 of 4: Completed in 0.59 sec
- Pass 4 of 4: Completed in 0.9 sec
Evaluation completed in 3.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.56 sec
- Pass 2 of 4: Completed in 0.78 sec
- Pass 3 of 4: Completed in 0.56 sec
- Pass 4 of 4: Completed in 0.9 sec
Evaluation completed in 3.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.55 sec
- Pass 2 of 4: Completed in 0.72 sec
- Pass 3 of 4: Completed in 0.52 sec
- Pass 4 of 4: Completed in 0.89 sec
Evaluation completed in 3.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.58 sec
- Pass 2 of 4: Completed in 0.76 sec
- Pass 3 of 4: Completed in 0.54 sec
- Pass 4 of 4: Completed in 0.8 sec
Evaluation completed in 3.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.56 sec
- Pass 2 of 4: Completed in 1.3 sec
- Pass 3 of 4: Completed in 0.61 sec
- Pass 4 of 4: Completed in 0.76 sec
Evaluation completed in 3.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.83 sec
Evaluation completed in 0.97 sec
|   14 | Accept |     0.10154 |      66.262 |      0.1008 |     0.10085 |          736 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.36 sec
Evaluation completed in 0.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.89 sec
Evaluation completed in 1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.53 sec
- Pass 2 of 4: Completed in 0.69 sec
- Pass 3 of 4: Completed in 0.56 sec
- Pass 4 of 4: Completed in 0.74 sec
Evaluation completed in 3.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.5 sec
- Pass 2 of 4: Completed in 0.67 sec
- Pass 3 of 4: Completed in 0.56 sec
- Pass 4 of 4: Completed in 0.78 sec
Evaluation completed in 3.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.52 sec
- Pass 2 of 4: Completed in 0.69 sec
- Pass 3 of 4: Completed in 0.54 sec
- Pass 4 of 4: Completed in 0.84 sec
Evaluation completed in 3.1 sec
Evaluating tall expression using the Parallel Pool 'local':
Evaluation 0% ...
Mdl = 
  CompactClassificationTree
             ResponseName: 'Y'
    CategoricalPredictors: []
               ClassNames: [0 1]
           ScoreTransform: 'none'


  Properties, Methods

FitInfo = struct with no fields.


HyperparameterOptimizationResults = 
  BayesianOptimization with properties:

                      ObjectiveFcn: @createObjFcn/tallObjFcn
              VariableDescriptions: [4×1 optimizableVariable]
                           Options: [1×1 struct]
                      MinObjective: 0.1004
                   XAtMinObjective: [1×1 table]
             MinEstimatedObjective: 0.1008
          XAtMinEstimatedObjective: [1×1 table]
           NumObjectiveEvaluations: 30
                  TotalElapsedTime: 3.0367e+03
                         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 представляет переменную ответа, и x1, x2, и x3 представляют переменные предиктора.

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

Имена переменных в формуле должны быть обоими именами переменных в Tbl (Tbl.Properties.VariableNames) и допустимые идентификаторы MATLAB ®. Имена переменных можно проверить вTbl с помощью isvarname функция. Если имена переменных недопустимы, их можно преобразовать с помощью matlab.lang.makeValidName функция.

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

Метки класса, заданные как числовой вектор, категориальный вектор, логический вектор, символьный массив, строковый массив или массив ячеек символьных векторов. Каждая строка Y представляет классификацию соответствующей строки X.

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

Для числовых Y, рассмотрите возможность подгонки дерева регрессии с помощью fitrtree вместо этого.

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

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

fitctree рассматривает NaN значения в X как отсутствующие значения. fitctree не использует наблюдения со всеми отсутствующими значениями для X в посадке. fitctree использует наблюдения с некоторыми отсутствующими значениями для X для поиска разбиений по переменным, для которых эти наблюдения имеют допустимые значения.

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

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'CrossVal','on','MinLeafSize',40 задает перекрестно проверенное дерево классификации с минимум 40 наблюдениями на лист.

Примечание

Нельзя использовать любой аргумент пары имя-значение перекрестной проверки вместе с 'OptimizeHyperparameters' аргумент пары имя-значение. Можно изменить перекрестную проверку для 'OptimizeHyperparameters' только с помощью 'HyperparameterOptimizationOptions' аргумент пары имя-значение.

Параметры модели

свернуть все

Алгоритм поиска наилучшего разделения на категориальном предикторе с категориями C для данных и классами K ≥ 3, указанным как пара, разделенная запятыми, состоящая из 'AlgorithmForCategorical' и одно из следующих значений.

СтоимостьОписание
'Exact'Рассмотрим все комбинации 2C-1 - 1.
'PullLeft'Начните со всех категорий C в правой ветви. Рассмотрите возможность перемещения каждой категории в левую ветвь, поскольку она достигает минимальной примеси для классов K среди остальных категорий. Из этой последовательности выберите расщепление с наименьшей примесью.
'PCA'Вычислите оценку для каждой категории, используя внутреннее произведение между первым основным компонентом матрицы взвешенной ковариации (матрицы вероятности центрированного класса) и вектором вероятностей класса для этой категории. Отсортируйте баллы в порядке возрастания и учтите все разделения C-1.
'OVAbyClass'Начните со всех категорий C в правой ветви. Для каждого класса упорядочивайте категории на основе их вероятности для этого класса. Для первого класса рассмотрите возможность перемещения каждой категории в левую ветвь по порядку, записывая критерий примеси при каждом перемещении. Повторите для остальных классов. Из этой последовательности выберите разделение, имеющее минимальную примесь.

fitctree автоматически выбирает оптимальное подмножество алгоритмов для каждого разделения, используя известное количество классов и уровней категориального предиктора. Для К = 2 классов, fitctree всегда выполняет точный поиск. Чтобы указать конкретный алгоритм, используйте 'AlgorithmForCategorical' аргумент пары имя-значение.

Дополнительные сведения см. в разделе Разделение категориальных предикторов в деревьях классификации.

Пример: 'AlgorithmForCategorical','PCA'

Список категориальных предикторов, указанный как одно из значений в этой таблице.

СтоимостьОписание
Вектор положительных целых чисел

Каждая запись в векторе представляет собой значение индекса, соответствующее столбцу данных предиктора, который содержит категориальную переменную. Значения индекса находятся в диапазоне от 1 до p, где p - количество предикторов, используемых для обучения модели.

Если fitctree использует подмножество входных переменных в качестве предикторов, затем функция индексирует предикторы, используя только подмножество. 'CategoricalPredictors' значения не подсчитывают переменную отклика, переменную веса наблюдения и любые другие переменные, которые функция не использует.

Логический вектор

A true ввод означает, что соответствующий столбец данных предиктора является категориальной переменной. Длина вектора равна p.

Символьная матрицаКаждая строка матрицы является именем предикторной переменной. Имена должны соответствовать записям в PredictorNames. Поместите имена с дополнительными пробелами, чтобы каждая строка символьной матрицы имела одинаковую длину.
Строковый массив или массив ячеек символьных векторовКаждый элемент массива является именем переменной предиктора. Имена должны соответствовать записям в PredictorNames.
'all'Все предикторы категоричны.

По умолчанию, если данные предиктора находятся в таблице (Tbl), fitctree предполагает, что переменная категорична, если она является логическим вектором, неупорядоченным категориальным вектором, символьным массивом, строковым массивом или массивом ячеек символьных векторов. Если данные предиктора являются матрицей (X), fitctree предполагает, что все предикторы непрерывны. Чтобы определить любые другие предикторы как категориальные предикторы, укажите их с помощью 'CategoricalPredictors' аргумент «имя-значение».

Пример: 'CategoricalPredictors','all'

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

Имена классов, используемых для обучения, указанные как категориальный, символьный или строковый массив; логический или числовой вектор; или массив ячеек символьных векторов. ClassNames должен иметь тот же тип данных, что и переменная ответа в Tbl или Y.

Если ClassNames является символьным массивом, то каждый элемент должен соответствовать одной строке массива.

Использовать ClassNames кому:

  • Укажите порядок занятий во время обучения.

  • Укажите порядок любого измерения входного или выходного аргумента, соответствующего порядку класса. Например, использовать ClassNames для указания порядка размеров Cost или порядок столбцов классификационных баллов, возвращенных predict.

  • Выберите подмножество классов для обучения. Например, предположим, что набор всех различных имен классов в Y является {'a','b','c'}. Обучение модели с помощью наблюдений из классов 'a' и 'c' только, укажите 'ClassNames',{'a','c'}.

Значение по умолчанию для ClassNames - набор всех различающихся имен классов в переменной ответа в Tbl или Y.

Пример: 'ClassNames',{'b','g'}

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

Стоимость неправильной классификации точки, указанной как разделенная запятыми пара, состоящая из 'Cost' и одно из следующих:

  • Квадратная матрица, где Cost(i,j) - стоимость классификации точки по классу j если его истинный класс i (т.е. строки соответствуют истинному классу, а столбцы соответствуют прогнозируемому классу). Определение порядка классов для соответствующих строк и столбцов Cost, также укажите ClassNames аргумент пары имя-значение.

  • Структура S имеет два поля: S.ClassNames содержит имена групп в качестве переменной того же типа данных, что и Y, и S.ClassificationCosts содержащий матрицу затрат.

Значение по умолчанию: Cost(i,j)=1 если i~=j, и Cost(i,j)=0 если i=j.

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

Максимальная глубина дерева, заданная как разделенная запятыми пара, состоящая из 'MaxDepth' и положительное целое число. Укажите значение для этого аргумента, чтобы вернуть дерево, имеющее меньшее количество уровней и требующее меньшего количества проходов через массив высокого уровня для вычисления. Как правило, алгоритм fitctree выполняет один проход через данные и дополнительный проход для каждого уровня дерева. По умолчанию функция не задает максимальную глубину дерева.

Примечание

Этот параметр применяется только при использовании fitctree на высоких массивах. Дополнительные сведения см. в разделе Массивы Tall.

Максимальные уровни категорий, указанные как разделенная запятыми пара, состоящая из 'MaxNumCategories' и неотрицательное скалярное значение. fitctree разбивает категориальный предиктор, используя точный алгоритм поиска, если предиктор имеет максимум MaxNumCategories уровни в разделенном узле. В противном случае fitctree находит наилучшее категориальное разделение с помощью одного из неточных алгоритмов.

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

Пример: 'MaxNumCategories',8

Максимальное число разделений решения (или узлов ветви), указанное как пара, разделенная запятыми, состоящая из 'MaxNumSplits' и положительное целое число. fitctree разделения MaxNumSplits или меньше узлов ветви. Дополнительные сведения о разделении см. в разделе Алгоритмы.

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

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

Флаг слияния листа, заданный как разделенная запятыми пара, состоящая из 'MergeLeaves' и 'on' или 'off'.

Если MergeLeaves является 'on', то fitctree:

  • Слияние листьев, которые происходят от одного родительского узла и дают сумму значений риска, большую или равную риску, связанному с родительским узлом

  • Оценивает оптимальную последовательность обрезанных поддеревьев, но не отсекает дерево классификации

В противном случае fitctree не объединяет листья.

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

Минимальное число наблюдений за конечными узлами, указанное как пара, разделенная запятыми, состоящая из 'MinLeafSize' и положительное целое значение. Каждый лист имеет не менее MinLeafSize наблюдения за листьями деревьев. Если вы поставляете оба MinParentSize и MinLeafSize, fitctree использует параметр, который дает большие листья: MinParentSize = max(MinParentSize,2*MinLeafSize).

Пример: 'MinLeafSize',3

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

Минимальное количество наблюдений узла ветви, указанное как пара, разделенная запятыми, состоящая из 'MinParentSize' и положительное целое значение. Каждый узел ветви в дереве имеет по крайней мере MinParentSize наблюдения. Если вы поставляете оба MinParentSize и MinLeafSize, fitctree использует параметр, который дает большие листья: MinParentSize = max(MinParentSize,2*MinLeafSize).

Пример: 'MinParentSize',8

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

Количество ячеек для числовых предикторов, указанных как разделенная запятыми пара, состоящая из 'NumBins' и положительный целочисленный скаляр.

  • Если 'NumBins' значение пустое (по умолчанию), затем fitctree не содержит никаких предикторов.

  • При указании 'NumBins' значение в виде положительного целого скаляра (numBins), то fitctree помещает каждый числовой предиктор максимум в numBins equiprobable bins, а затем выращивает деревья по индексам bin вместо исходных данных.

    • Количество ячеек может быть меньше numBins если предиктор имеет менее numBins уникальные значения.

    • fitctree не содержит категориальных предикторов.

При использовании большого набора данных обучения этот параметр объединения ускоряет обучение, но может привести к потенциальному снижению точности. Вы можете попробовать 'NumBins',50 сначала, а затем изменить значение в зависимости от точности и скорости тренировки.

Обученная модель хранит кромки бункера в BinEdges собственность.

Пример: 'NumBins',50

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

Количество предикторов, выбираемых случайным образом для каждого разделения, указанного как пара, разделенная запятыми, состоящая из 'NumVariablesToSample' и положительное целое значение. Кроме того, можно указать 'all' для использования всех доступных предикторов.

Если обучающие данные включают много предикторов и требуется проанализировать важность предиктора, укажите 'NumVariablesToSample' как 'all'. В противном случае программное обеспечение может не выбирать некоторые предикторы, недооценивая их важность.

Для воспроизведения случайных выборок необходимо задать начальное число генератора случайных чисел с помощью rng и указать 'Reproducible',true.

Пример: 'NumVariablesToSample',3

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

Имена переменных предиктора, заданные как строковый массив уникальных имен или массив ячеек уникальных векторов символов. Функциональные возможности 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 чтобы выбрать, какие переменные предиктора использовать в обучении. То есть fitctree использует только переменные предиктора в PredictorNames и переменную ответа во время обучения.

    • PredictorNames должен быть подмножеством Tbl.Properties.VariableNames и не может включать имя переменной ответа.

    • По умолчанию PredictorNames содержит имена всех переменных предиктора.

    • Хорошей практикой является определение предикторов для обучения с использованием 'PredictorNames' или formulaно не оба.

Пример: 'PredictorNames',{'SepalLength','SepalWidth','PetalLength','PetalWidth'}

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

Алгоритм, используемый для выбора наилучшего предиктора разделения в каждом узле, указанного как пара, разделенная запятыми, состоящая из 'PredictorSelection' и значение в этой таблице.

СтоимостьОписание
'allsplits'

Стандартная корзина - выбирает предиктор разделения, который максимизирует выигрыш критерия разделения по всем возможным разделениям всех предикторов [1].

'curvature'Тест кривизны - выбирает расщепленный предиктор, который минимизирует значение p тестов независимости хи-квадрат между каждым предиктором и ответом [4]. Скорость обучения аналогична стандартной CART.
'interaction-curvature'Тест взаимодействия - выбирает расщепленный предиктор, который минимизирует p-значение тестов независимости хи-квадрат между каждым предиктором и ответом, и который минимизирует p-значение критерия независимости хи-квадрат между каждой парой предикторов и ответом [3]. Скорость обучения может быть ниже стандартной CART.

Для 'curvature' и 'interaction-curvature', если все тесты дают значения p больше 0,05, то fitctree останавливает разделение узлов.

Совет

  • Стандартная CART имеет тенденцию выбирать разделенные предикторы, содержащие много различных значений, например непрерывных переменных, по сравнению с теми, которые содержат несколько различных значений, например категориальных переменных [4]. Рекомендуется задать проверку кривизны или взаимодействия, если выполняются следующие условия:

    • Если существуют предикторы, которые имеют относительно меньше отличных значений, чем другие предикторы, например, если набор данных предиктора неоднороден.

    • Если анализ важности предиктора является вашей целью. Для получения дополнительной информации об оценке важности предиктора см. predictorImportance и Введение в выбор элементов.

  • Деревья, выращенные с использованием стандартной CART, не чувствительны к переменным взаимодействиям предиктора. Кроме того, такие деревья с меньшей вероятностью идентифицируют важные переменные в присутствии многих неактуальных предикторов, чем применение теста взаимодействия. Поэтому для учета предикторных взаимодействий и определения переменных важности при наличии множества неактуальных переменных укажите тест взаимодействия [3].

  • На скорость прогнозирования не влияет значение 'PredictorSelection'.

Для получения подробной информации о том, как fitctree выбирает разделенные предикторы, см. Правила разделения узлов и Выберите метод выбора разделенного предиктора.

Пример: 'PredictorSelection','curvature'

Предварительные вероятности для каждого класса, определенные как одна из следующих:

  • Вектор символа или строковый скаляр.

    • 'empirical' определяет вероятности классов из частот классов в переменной ответа в Y или Tbl. Если сдать наблюдательные веса, fitctree использует веса для вычисления вероятностей класса.

    • 'uniform' устанавливает все вероятности классов равными.

  • Вектор (одно скалярное значение для каждого класса). Определение порядка классов для соответствующих элементов 'Prior', установите 'ClassNames' аргумент «имя-значение».

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

    • S.ClassNames содержит имена классов в качестве переменной того же типа, что и переменная ответа в Y или Tbl.

    • S.ClassProbs содержит вектор соответствующих вероятностей.

fitctree нормализует веса в каждом классе ('Weights') для суммирования значения предшествующей вероятности соответствующего класса.

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

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

Флаг для оценки оптимальной последовательности обрезанных поддеревьев, указанных как разделенная запятыми пара, состоящая из 'Prune' и 'on' или 'off'.

Если Prune является 'on', то fitctree выращивает дерево классификации без обрезки, но оценивает оптимальную последовательность обрезанных поддеревьев. В противном случае fitctree выращивает дерево классификации без оценки оптимальной последовательности обрезанных поддеревьев.

Обрезать обученного ClassificationTree модель, передайте ее в prune.

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

Критерий отсечения, указанный как пара, разделенная запятыми, состоящая из 'PruneCriterion' и 'error' или 'impurity'.

При указании 'impurity', то fitctree использует измерение примеси, указанное 'SplitCriterion' аргумент пары имя-значение.

Дополнительные сведения см. в разделе Примесь и ошибка узла.

Пример: 'PruneCriterion','impurity'

Флаг для обеспечения воспроизводимости при повторных запусках обучения модели, указанной как пара, разделенная запятыми, состоящая из 'Reproducible' и либо false или true.

Если 'NumVariablesToSample' не является 'all'затем программное обеспечение выбирает предсказатели случайным образом для каждого разделения. Для воспроизведения случайных выборок необходимо указать 'Reproducible',true и установить начальное число генератора случайных чисел с помощью rng. Обратите внимание, что настройка 'Reproducible' кому true может замедлить тренировку.

Пример: 'Reproducible',true

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

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

Эта пара имя-значение недопустима при использовании ResponseVarName или formula входные аргументы.

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

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

Преобразование оценки, указанное как вектор символа, скаляр строки или дескриптор функции.

В этой таблице представлены доступные векторы символов и строковые скаляры.

СтоимостьОписание
'doublelogit'1/( 1 + e-2x)
'invlogit'log (x/( 1 - x))
'ismax'Устанавливает балл для класса с наибольшим баллом в 1 и устанавливает балл для всех остальных классов в 0
'logit'1/( 1 + e-x)
'none' или 'identity'x (без преобразования)
'sign'-1 для x < 0
0 для x = 0
1 для x > 0
'symmetric'2x – 1
'symmetricismax'Устанавливает балл для класса с наибольшим баллом в 1 и устанавливает балл для всех остальных классов в -1
'symmetriclogit'2/( 1 + e-x) - 1

Для функции MATLAB или определяемой функции используйте ее дескриптор функции для преобразования оценки. Дескриптор функции должен принимать матрицу (исходные баллы) и возвращать матрицу того же размера (преобразованные баллы).

Пример: 'ScoreTransform','logit'

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

Критерий разделения, указанный как разделенная запятыми пара, состоящая из 'SplitCriterion' и 'gdi'(индекс разнообразия Джини), 'twoing' для двоякого правила, или 'deviance' для максимального уменьшения отклонения (также известного как перекрестная энтропия).

Дополнительные сведения см. в разделе Примесь и ошибка узла.

Пример: 'SplitCriterion','deviance'

Флаг разделения суррогатного решения, определяемый как разделенная запятыми пара, состоящая из 'Surrogate' и 'on', 'off', 'all'или положительное целое значение.

  • Если установлено значение 'on', fitctree находит не более 10 суррогатных расщеплений в каждом узле ветви.

  • Если установлено значение 'all', fitctree находит все суррогатные разделения в каждом узле ветви. 'all' установка может использовать значительное время и память.

  • Если задано положительное целое значение, fitctree находит самое большее указанное количество суррогатных разбиений в каждом узле ветви.

Используйте суррогатные разделения для повышения точности прогнозов для данных с отсутствующими значениями. Параметр также позволяет вычислить показатели прогнозирующей связи между предикторами. Дополнительные сведения см. в разделе Правила разделения узлов.

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

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

Веса наблюдения, указанные как разделенная запятыми пара, состоящая из 'Weights' и вектор скалярных значений или имя переменной в Tbl. Программа взвешивает наблюдения в каждой строке X или Tbl с соответствующим значением в Weights. Размер Weights должно равняться количеству строк в X или Tbl.

Если входные данные указаны как таблица Tbl, то Weights может быть именем переменной в Tbl содержит числовой вектор. В этом случае необходимо указать Weights в виде вектора символов или строкового скаляра. Например, если вектор весов W хранится как Tbl.W, затем укажите его как 'W'. В противном случае программа обрабатывает все столбцы Tbl, в том числе W, в качестве предикторов при обучении модели.

fitctree нормализует веса в каждом классе для суммирования со значением предшествующей вероятности соответствующего класса.

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

Параметры перекрестной проверки

свернуть все

Флаг для наращивания перекрестно проверенного дерева решений, указанного как пара, разделенная запятыми, состоящая из 'CrossVal' и 'on' или 'off'.

Если 'on', fitctree вырастает перекрестно проверенное дерево решений с 10 складками. Этот параметр перекрестной проверки можно переопределить с помощью одного из следующих параметров: 'KFold', 'Holdout', 'Leaveout', или 'CVPartition' аргументы пары имя-значение. Можно использовать только один из этих четырех аргументов одновременно при создании перекрестно проверенного дерева.

Также можно выполнить перекрестную проверку tree позже с использованием crossval способ.

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

Раздел для использования в кросс-проверенном дереве, указанном как разделенная запятыми пара, состоящая из 'CVPartition' и объект, созданный с помощью cvpartition.

Если вы используете 'CVPartition', вы не можете использовать ни один из 'KFold', 'Holdout', или 'Leaveout' аргументы пары имя-значение.

Доля данных, используемых для проверки удержания, указанная как пара, разделенная запятыми, состоящая из 'Holdout' и скалярное значение в диапазоне [0,1]. Проверка отсутствия проверяет указанную часть данных и использует остальные данные для обучения.

Если вы используете 'Holdout', вы не можете использовать ни один из 'CVPartition', 'KFold', или 'Leaveout' аргументы пары имя-значение.

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

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

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

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

  2. Для каждого набора резервирует набор в качестве данных проверки и обучает модель, используя другие k-1 наборов

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

Для создания перекрестно проверенной модели можно использовать только одну из следующих четырех опций: CVPartition, Holdout, KFold, или Leaveout.

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

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

Флаг перекрестной проверки, определяемый как разделенная запятыми пара, состоящая из 'Leaveout' и 'on' или 'off'. Определить 'on' для использования перекрестной проверки «оставить один».

Если вы используете 'Leaveout', вы не можете использовать ни один из 'CVPartition', 'Holdout', или 'KFold' аргументы пары имя-значение.

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

Параметры оптимизации гиперпараметров

свернуть все

Параметры для оптимизации, указанные как пара, разделенная запятыми, состоящая из 'OptimizeHyperparameters' и одно из следующих:

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

  • 'auto' - Использование {'MinLeafSize'}

  • 'all' - Оптимизируйте все подходящие параметры.

  • Строковый массив или массив ячеек допустимых имен параметров

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

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

Примечание

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

Подходящие параметры для fitctree являются:

  • MaxNumSplitsfitctree поиск среди целых чисел, по умолчанию с логарифмическим масштабированием в диапазоне [1,max(2,NumObservations-1)].

  • MinLeafSizefitctree поиск среди целых чисел, по умолчанию с логарифмическим масштабированием в диапазоне [1,max(2,floor(NumObservations/2))].

  • SplitCriterion - Для двух классов, fitctree поиск среди 'gdi' и 'deviance'. Для трех или более классов, fitctree также ищет среди 'twoing'.

  • NumVariablesToSamplefitctree не оптимизируется над этим гиперпараметром. Если вы проходите NumVariablesToSample как имя параметра, fitctree просто использует полное количество предикторов. Однако fitcensemble оптимизируется по этому гиперпараметру.

Установка параметров, не используемых по умолчанию, путем передачи вектора optimizableVariable объекты, не имеющие значений по умолчанию. Например,

load fisheriris
params = hyperparameters('fitctree',meas,species);
params(1).Range = [1,30];

Проход params как значение OptimizeHyperparameters.

По умолчанию итеративное отображение отображается в командной строке, а графики отображаются в соответствии с количеством гиперпараметров в оптимизации. Для оптимизации и графиков целевой функцией является log ( 1 + потери при перекрестной проверке) для регрессии и коэффициент неправильной классификации для классификации. Для управления итеративным отображением установите Verbose области 'HyperparameterOptimizationOptions' аргумент пары имя-значение. Для управления графиками установите ShowPlots области 'HyperparameterOptimizationOptions' аргумент пары имя-значение.

Пример см. в разделе Оптимизация дерева классификации.

Пример: 'auto'

Опции оптимизации, указанные как разделенная запятыми пара, состоящая из 'HyperparameterOptimizationOptions' и структура. Этот аргумент изменяет эффект OptimizeHyperparameters аргумент пары имя-значение. Все поля в структуре являются необязательными.

Имя поляЦенностиДефолт
Optimizer
  • 'bayesopt' - использовать байесовскую оптимизацию. Внутренний вызов этого параметра bayesopt.

  • 'gridsearch' - Использовать поиск по сетке с NumGridDivisions значения для измерения.

  • 'randomsearch' - Случайный поиск среди MaxObjectiveEvaluations точки.

'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Логическое значение, указывающее, выполнять ли байесовскую оптимизацию параллельно, что требует Toolbox™ параллельных вычислений. Из-за непродуктивности параллельной синхронизации параллельная байесовская оптимизация не обязательно дает воспроизводимые результаты. Дополнительные сведения см. в разделе Параллельная байесовская оптимизация.false
Repartition

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

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

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

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

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

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

свернуть все

Дерево классификации, возвращаемое как объект дерева классификации.

Использование 'CrossVal', 'KFold', 'Holdout', 'Leaveout', или 'CVPartition' параметры приводят к созданию дерева класса ClassificationPartitionedModel. Невозможно использовать секционированное дерево для прогнозирования, поэтому этот тип дерева не имеет predict способ. Вместо этого используйте kfoldPredict прогнозировать ответы для наблюдений, не используемых для обучения.

В противном случае tree имеет класс ClassificationTree, и вы можете использовать predict способ выполнения прогнозов.

Подробнее

свернуть все

Проверка кривизны

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

Тест кривизны между предикторными переменными x и y проводят с использованием этого процесса.

  1. Если x является непрерывным, то разделите его на его квартили. Создайте номинальную переменную, которая содержит данные наблюдений в соответствии с тем, какой раздел раздела они занимают. Если значения отсутствуют, создайте для них дополнительное складское место.

  2. Для каждого уровня в секционированном предикторе j = 1...J и классе в ответе k = 1,...,K вычислите взвешенную долю наблюдений в классе k

    π^jk=∑i=1nI{yi=k}wi.

    wi - вес наблюдения i, ∑wi=1, I - индикаторная функция, а n - размер выборки. Если все наблюдения имеют одинаковый вес, то λ ^ jk = njkn, где njk - количество наблюдений на уровне j предсказателя, которые находятся в классе k.

  3. Вычисление статистики теста

    t=n∑k=1K∑j=1J δ (^ jk λ ^ j + λ ^ + k) 2λ ^ j + λ ^ + k

    π^j+=∑kπ^jk, то есть предельная вероятность наблюдения за предиктором на уровне j. π^+k=∑jπ^jk, это предельная вероятность наблюдения класса k. Если n достаточно велико, то t распределяется как δ 2 с (K-1) (J-1) степенями свободы.

  4. Если значение p для теста меньше 0,05, то отклоните нулевую гипотезу об отсутствии связи между x и y.

При определении наилучшего предиктора разделения на каждом узле стандартный алгоритм CART предпочитает выбирать непрерывные предикторы, которые имеют много уровней. Иногда такой выбор может быть ложным и может также маскировать более важные предикторы, которые имеют меньше уровней, такие как категориальные предикторы.

Тест кривизны может быть применен вместо стандартной CART, чтобы определить наилучший предиктор разделения в каждом узле. В этом случае лучшей разбиенной прогнозирующей переменной является та, которая минимизирует значимые значения p (те, которые меньше 0,05) тестов кривизны между каждым предиктором и переменной отклика. Такой выбор устойчив к количеству уровней в отдельных предикторах.

Примечание

Если уровни предиктора являются чистыми для конкретного класса, то fitctree объединяет эти уровни. Следовательно, на этапе 3 алгоритма J может быть меньше фактического количества уровней в предикторе. Например, если x имеет 4 уровня, и все наблюдения в ячейках 1 и 2 принадлежат классу 1, то эти уровни являются чистыми для класса 1. Следовательно, fitctree объединяет наблюдения в ячейках 1 и 2, и J уменьшается до 3.

Дополнительные сведения о применении теста кривизны к растущим деревьям классификации см. в разделах Правила разделения узлов и [4].

Примесь и ошибка узла

Дерево решений разбивает узлы на основании либо примеси, либо ошибки узла.

Примесь означает одну из нескольких вещей, в зависимости от вашего выбора SplitCriterion аргумент пары имя-значение:

  • Индекс разнообразия Джини (gdi) - индекс Джини узла равен

    1−∑ip2 (i),

    где сумма превышает классы i в узле, и p (i) - наблюдаемая доля классов с классом i, которые достигают узла. Узел только с одним классом (чистый узел) имеет индекс Джини0; в противном случае индекс Джини является положительным. Таким образом, индекс Джини является мерой примеси узла.

  • Девианс ('deviance') - Если p (i) определено так же, как для индекса Джини, отклонение узла равно

    −∑ip (i) log2p (i).

    Чистый узел имеет отклонение 0; в противном случае отклонение является положительным.

  • Двоякое правило ('twoing') - Twoing не является мерой чистоты узла, но является другой мерой для решения, как разделить узел. Пусть L (i) обозначает долю членов класса i в левом дочернем узле после разделения, а R (i) обозначает долю членов класса i в правом дочернем узле после разделения. Выберите критерий разделения для максимизации

    P (L) P (R) (∑i'L (i) R (i) |) 2,

    где P (L) и P (R) - доли наблюдений, которые делятся влево и вправо соответственно. Если выражение велико, разделение делает каждый дочерний узел более чистым. Аналогично, если выражение мало, разделение делает каждый дочерний узел похожим друг на друга и, следовательно, похожим на родительский. Разделение не увеличивало чистоту узла.

  • Ошибка узла - ошибка узла - это доля неправильно классифицированных классов в узле. Если j - класс с наибольшим количеством обучающих выборок в узле, ошибка узла

    1 - p (j).

Тест взаимодействия

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

Тест взаимодействия, оценивающий связь между предикторными переменными x1 и x2 относительно y, проводится с использованием этого процесса.

  1. Если x1 или x2 непрерывны, то эта переменная разделяется на квартили. Создайте номинальную переменную, которая содержит данные наблюдений в соответствии с тем, какой раздел раздела они занимают. Если значения отсутствуют, создайте для них дополнительное складское место.

  2. Создайте номинальную переменную z с J = J1J2 уровнями, которая присваивает индекс наблюдению i в соответствии с уровнями x1 и x2. Удалите любые уровни z, которые не соответствуют наблюдениям.

  3. Выполните проверку кривизны между z и y.

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

Дополнительные сведения о том, как тест взаимодействия применяется к растущим деревьям решений, см. в разделах Тест кривизны, Правила разделения узлов и [3].

Прогностическая мера ассоциации

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

Предположим, что xj и xk являются прогнозирующими переменными j и k, соответственно, и jk. В узле t прогностическая мера ассоциации между оптимальным split xj < u и суррогатным split xk < v равна

λ jk = min (PL, PR) (1 PLjLk − PRjRk) min (PL, PR).

  • PL - доля наблюдений в узле t, такая, что xj < u. Нижний индекс L обозначает левый нижестоящий элемент узла t.

  • PR - это доля наблюдений в узле t, такая, что xju. Нижний индекс R обозначает правый нижестоящий элемент узла t.

  • PLjLk - доля наблюдений на узле t, такая, что xj < u и xk < v

  • PRjRk - это доля наблюдений в узле t, так что xju и xkv.

  • Наблюдения с отсутствующими значениями для xj или xk не способствуют расчетам пропорций.

λ jk - значение в (- ∞,1]. Если λ jk > 0, то xk < v является стоящим суррогатным разделением для xj < u.

Разделение суррогатного решения

Разделение суррогатного решения является альтернативой оптимальному разделению решения в данном узле дерева решений. Оптимальный раскол находят, выращивая дерево; суррогатное разделение использует аналогичную или коррелированную предикторную переменную и критерий разделения.

Когда значение оптимального расщепленного предиктора для наблюдения отсутствует, наблюдение посылается в левый или правый дочерний узел с использованием наилучшего суррогатного предиктора. Когда значение наилучшего суррогатного предиктора разделения для наблюдения также отсутствует, наблюдение посылается в левый или правый дочерний узел с использованием второго наилучшего суррогатного предиктора и так далее. Деления кандидатов сортируются в порядке убывания по их прогнозирующей мере ассоциации.

Совет

  • По умолчанию Prune является 'on'. Однако эта спецификация не удаляет дерево классификации. Чтобы удалить обученное дерево классификации, передайте дерево классификации в prune.

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

Алгоритмы

свернуть все

Правила разделения узлов

fitctree использует эти процессы для определения способа разделения узла t.

  • Для стандартной CART (то есть, если PredictorSelection является 'allpairs') и для всех предикторов xi, i = 1,..., p:

    1. fitctree вычисляет взвешенную примесь узла t. Для получения информации о поддерживаемых измерениях примесей см. SplitCriterion.

    2. fitctree оценивает вероятность того, что наблюдение находится в узле t, используя

      P (T) =∑j∈Twj.

      wj - вес наблюдения j, а T - набор всех показателей наблюдения в узле t. Если не указать Prior или Weights, то wj = 1/n, где n - размер выборки.

    3. fitctree сортирует xi в порядке возрастания. Каждый элемент отсортированного предиктора является кандидатом на разделение или точкой отсечения. fitctree сохраняет все индексы, соответствующие отсутствующим значениям, в наборе TU, который является неразделенным набором.

    4. fitctree определяет наилучший способ разделения узла t с использованием xi путем максимизации коэффициента усиления примесей (ΔI) по всем кандидатам на разделение. То есть для всех кандидатов на разделение в xi:

      1. fitctree разбивает наблюдения в узле t на левый и правый дочерние узлы (tL и tR соответственно).

      2. fitctree вычисляет ΔI. Предположим, что для конкретного кандидата разделения tL и tR содержат индексы наблюдения в наборах TL и TR соответственно.

        • Если xi не содержит отсутствующих значений, то коэффициент усиления примесей для текущего кандидата на разделение равен

          ΔI = P (T) он P (TL) итЛ P (TR) итР.

        • Если xi содержит пропущенные значения, то, если предположить, что наблюдения отсутствуют случайным образом, прирост примеси равен

          ΔIU = P (T TU) он P (TL) itL − P (TR) itR.

          T - TU - набор всех показателей наблюдения в узле t, которые не отсутствуют.

        • Если используется разделение суррогатного решения, то:

          1. fitctree вычисляет прогностические показатели связи между разделением решения xj < u и всеми возможными разделениями решения xk < v, jk.

          2. fitctree сортирует возможные разбиения альтернативных решений в порядке убывания по их прогностической мере связи с оптимальным разбиением. Суррогатный раскол - это раскол решения, дающий наибольшую меру.

          3. fitctree определяет назначения дочерних узлов для наблюдений с отсутствующим значением для xi с помощью суррогатного разделения. Если суррогатный предиктор также содержит отсутствующее значение, то fitctree использует разделение решения со второй по величине мерой и так далее, пока не будет других суррогатов. Это возможно для fitctree разделить два разных наблюдения в узле t с использованием двух разных суррогатных расщеплений. Например, предположим, что предикторы x1 и x2 являются лучшими и вторыми лучшими суррогатами, соответственно, для предиктора xi, i ∉ {1,2}, в узле T. Если наблюдение m предиктора xi отсутствует (т.е. xmi отсутствует), но xm1 не отсутствует, то x1 является суррогатным предиктором для наблюдения xmi. Если наблюдения x (m + 1), i и x (m + 1), 1 отсутствуют, но x (m + 1), 2 не пропущен, то x2 является суррогатным предиктором для наблюдения m + 1.

          4. fitctree использует соответствующую формулу усиления примеси. То есть, если fitctree не удалось назначить все отсутствующие наблюдения в узле t дочерним узлам с использованием суррогатных расщеплений, тогда коэффициент усиления примесей равен ΔIU. В противном случае fitctree использует ΔI для усиления примеси.

      3. fitctree выбирает кандидата, который дает наибольший прирост примесей.

    fitctree разбивает предикторную переменную в точке отсечения, которая максимизирует прирост примеси.

  • Для испытания на кривизну (т.е. если PredictorSelection является 'curvature'):

    1. fitctree проводит тесты кривизны между каждым предиктором и ответом на наблюдения в узле t.

      • Если все p-значения не менее 0,05, то fitctree не разделяет узел t.

      • Если существует минимальное значение p, то fitctree выбирает соответствующий предиктор для разделения узла t.

      • Если более одного значения p равно нулю из-за неполноты, то fitctree применяет стандартную CART к соответствующим предикторам для выбора разделенного предиктора.

    2. Если fitctree выбирает разделенный предиктор, затем использует стандартную CART для выбора точки отсечения (см. шаг 4 в стандартном процессе CART).

  • Для теста взаимодействия (то есть, если PredictorSelection является 'interaction-curvature' ):

    1. Для наблюдений в узле t, fitctree проводит тесты кривизны между каждым предиктором и тесты ответа и взаимодействия между каждой парой предикторов и ответом.

      • Если все p-значения не менее 0,05, то fitctree не разделяет узел t.

      • Если существует минимальное значение p и оно является результатом теста кривизны, то fitctree выбирает соответствующий предиктор для разделения узла t.

      • Если существует минимальное значение p и оно является результатом теста взаимодействия, то fitctree выбирает расщепленный предиктор с использованием стандартной CART на соответствующей паре предикторов.

      • Если более одного значения p равно нулю из-за неполноты, то fitctree применяет стандартную CART к соответствующим предикторам для выбора разделенного предиктора.

    2. Если fitctree выбирает разделенный предиктор, затем использует стандартную CART для выбора точки отсечения (см. шаг 4 в стандартном процессе CART).

Управление глубиной дерева

  • Если MergeLeaves является 'on' и PruneCriterion является 'error' (которые являются значениями по умолчанию для этих аргументов пары имя-значение), то программа применяет обрезку только к листьям и используя ошибку классификации. Эта спецификация равносильна слиянию листьев, которые имеют самый популярный класс на лист.

  • Приспосабливать MaxNumSplits, fitctree разбивает все узлы на текущем уровне, а затем подсчитывает количество узлов ветвления. Слой - это набор узлов, равноудаленных от корневого узла. Если число узлов ветви превышает MaxNumSplits, fitctree выполните следующую процедуру:

    1. Определите, сколько узлов ветви в текущем слое должно быть не разделено, чтобы их было не больше MaxNumSplits узлы ветвей.

    2. Сортировка узлов ветвей по их доходам от примесей.

    3. Отмена разделения числа наименее успешных ветвей.

    4. Верните дерево решений, выращенное до сих пор.

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

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

    • Есть MaxNumSplits узлы ветвей.

    • Предлагаемое разделение приводит к тому, что число наблюдений по крайней мере в одном узле ветви меньше MinParentSize.

    • Предлагаемое разделение приводит к тому, что число наблюдений по крайней мере в одном конечном узле меньше MinLeafSize.

    • Алгоритм не может найти хорошее разделение в пределах слоя (т.е. критерий отсечения (см. PruneCriterion), не улучшает все предлагаемые разделения в слое). Особый случай - когда все узлы являются чистыми (т.е. все наблюдения в узле имеют одинаковый класс).

    • Для значений 'curvature' или 'interaction-curvature' из PredictorSelectionвсе тесты дают значения p, превышающие 0,05.

    MaxNumSplits и MinLeafSize не влияют на разделение значений по умолчанию. Поэтому, если установить 'MaxNumSplits', разделение может прекратиться из-за значения MinParentSize, до MaxNumSplits происходят расколы.

Параллелизация

Для двухъядерных систем и выше, fitctree параллелизует деревья принятия обучающих решений с использованием стандартных блоков Intel ® Threading Building Blocks (TBB). Подробные сведения о TBB Intel см. в разделе https://software.intel.com/en-us/intel-tbb.

Ссылки

[1] Брейман, Л., Дж. Фридман, Р. Ольшен и К. Стоун. Деревья классификации и регрессии. Бока Ратон, FL: CRC Press, 1984.

[2] Копперсмит, Д., С. Дж. Хон и Дж. Р. М. Хоскинг. «Разбиение номинальных атрибутов в деревьях решений». Data Mining and Knowledge Discovery, Vol. 3, 1999, pp. 197-217.

[3] Loh, W.Y. «Регрессионные деревья с несмещенным выбором переменных и обнаружением взаимодействия». Statistica Sinica, Vol. 12, 2002, pp. 361-386.

[4] Ло, У.Я. и Ю.С. Ших. «Разбить методы выбора для деревьев классификации». Statistica Sinica, том 7, 1997, стр. 815-840.

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

Представлен в R2014a