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  

Поскольку в категориальных переменных представлено немного категорий по сравнению с уровнями в непрерывных переменных, стандартный алгоритм разделения предикторов ТЕЛЕЖКА предпочитает разделение непрерывного предиктора над категориальными переменными.

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

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 является большим набором данных, который содержит табличный файл данных о рейсах авиакомпании. Этот пример создает длинная таблица, содержащий данные, и использует его, чтобы запустить процедуру оптимизации.

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

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

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

tt =

  M×7 tall table

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

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

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

Y = tt.DepDelay > 10 % Class labels
Y =

  M×1 tall logical array

   1
   0
   1
   1
   0
   1
   0
   0
   :
   :

Создайте длинный массив для данных предиктора.

X = tt{:,1:end-1} % Predictor data
X =

  M×6 tall double matrix

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

Удалите строки в X и Y которые содержат отсутствующие данные.

R = rmmissing([X Y]); % Data with missing entries removed
X = R(:,1:end-1); 
Y = R(:,end); 

Стандартизируйте переменные предиктора.

Z = zscore(X);

Оптимизируйте гиперпараметры автоматически с помощью 'OptimizeHyperparameters' аргумент пары "имя-значение". Нахождение оптимального 'MinLeafSize' значение, которое минимизирует потери перекрестной валидации удержания. (Определение 'auto' использует 'MinLeafSize'.) Для воспроизводимости используйте 'expected-improvement-plus' и установите начальные значения генераторов случайных чисел, используя rng и tallrng. Результаты могут варьироваться в зависимости от количества рабочих процессов и окружения выполнения для длинных массивов. Для получения дополнительной информации смотрите Управление, Где Ваш Код Запуски.

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 автоматически выбирает оптимальное подмножество алгоритмов для каждого разделения, используя известное количество классов и уровней категориального предиктора. Для K = 2 классов, fitctree всегда выполняет точный поиск. Чтобы задать конкретный алгоритм, используйте 'AlgorithmForCategorical' аргумент пары "имя-значение".

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

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

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

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

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

Если fitctree использует подмножество входа переменных в качестве предикторов, затем функция индексирует предикторы, используя только подмножество. The '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 если его класс true i (т.е. строки соответствуют истинному классу, а столбцы - предсказанному классу). Чтобы задать порядок классов для соответствующих строк и столбцов Cost, также задайте ClassNames аргумент пары "имя-значение".

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

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

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

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

Примечание

Эта опция применяется только при использовании fitctree на длинных массивах. Для получения дополнительной информации см. раздел «Длинные массивы».

Максимальные уровни категорий, заданные как разделенная разделенными запятой парами, состоящая из '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, а затем выращивает деревья на индексах интервал вместо исходных данных.

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

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

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

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

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

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

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

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

Чтобы воспроизвести случайные выборки, необходимо задать seed генератора случайных чисел при помощи 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]. Скорость обучения аналогична стандартной ТЕЛЕЖКА.
'interaction-curvature'Тест взаимодействия - выбирает разделенный предиктор, который минимизирует p-значение хи-квадратных тестов независимости между каждым предиктором и ответом, и который минимизирует p-значение хи-квадратного теста независимости между каждой парой предикторов и откликом [3]. Скорость обучения может быть медленнее, чем стандартная ТЕЛЕЖКА.

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

Совет

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

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

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

  • Деревья, выращенные с использованием стандартной ТЕЛЕЖКА, не чувствительны к взаимодействиям переменных предиктора. Кроме того, такие деревья с меньшей вероятностью идентифицируют важные переменные в присутствии многих нерелевантных предикторов, чем применение теста взаимодействия. Поэтому, чтобы принять во внимание взаимодействия предикторов и идентифицировать переменные важности в присутствии многих нерелевантных переменных, задайте тест взаимодействия [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 и установите seed генератора случайных чисел при помощи rng. Обратите внимание, что установка 'Reproducible' на true может замедлить обучение.

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

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

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

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

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

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

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

В этой таблице результирующие векторы символов и строковые скаляры.

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

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

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

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

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

Для получения дополнительной информации смотрите Примеси и Ошибка узла.

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

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

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

  • Когда установлено значение 'all', fitctree находит все суррогатные разделения в каждом узле ветви. The '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», заданная как разделенная разделенными запятой парами, состоящая из 'Holdout' и скалярное значение в области значений [0,1]. Holdout проверяет указанную долю данных и использует остальную часть данных для обучения.

Если вы используете '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 оптимизирует по этому гиперпараметру.

Установите параметры nondefault путем передачи вектора optimizableVariable объекты, которые имеют значения nondefault. Для примера,

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

Передайте params как значение OptimizeHyperparameters.

По умолчанию итеративное отображение появляется в командной строке, и графики появляются согласно количеству гиперпараметров в оптимизации. Для оптимизации и графиков целевой функцией является журнал ( 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Логическое значение, указывающее, запускать ли байесовскую оптимизацию параллельно, что требует Parallel Computing 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 способ изготовления предсказаний.

Подробнее о

свернуть все

Тест кривизны

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

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

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

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

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

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

  3. Вычислите тестовую статистику

    t=nk=1Kj=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.

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

Тест кривизны может быть применен вместо стандартной ТЕЛЕЖКА, чтобы определить лучший разделенный предиктор в каждом узле. В этом случае лучшая переменная предиктора разделения является такой, которая минимизирует значимые p значения (те, что меньше 0,05) тестов кривизны между каждым предиктором и переменной отклика. Такой выбор является устойчивым к количеству уровней в отдельных предикторах.

Примечание

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

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

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

Дерево решений разделяет узлы на основе impurity или node error.

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

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

    1ip2(i),

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

  • Отклонение ('deviance') - С p (i), заданными так же, как для индекса Джини, отклонение узла является

    ip(i)log2p(i).

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

  • Правило Twoing ('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 (<reservedrangesplaceholder0>).

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

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

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

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

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

  3. Проведите тест кривизны между z и y.

При выращивании деревьев решений, если существуют важные взаимодействия между парами предикторов, но в данных также есть много других менее важных предикторов, то стандартная ТЕЛЕЖКА, как правило, пропускает важные взаимодействия. Однако проведение тестов кривизны и взаимодействия для выбора предиктора может улучшить обнаружение важных взаимодействий, что может привести к более точным деревьям решений.

Для получения дополнительной информации о том, как тест взаимодействия применяется к растущим деревьям решений, смотрите Curvature Test, Node Splitting Rules и [3].

Прогнозирующая мера ассоциации

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

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

λjk=min(PL,PR)(1PLjLkPRjRk)минута(PL,PR).

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

  • PR - пропорция наблюдений в узле t, такой что <reservedrangesplaceholder3> ≥ <reservedrangesplaceholder2>. R индекса обозначает правый дочерний элемент узла t.

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

  • PRjRk пропорция наблюдений в узле t, такой что <reservedrangesplaceholder3> ≥ <reservedrangesplaceholder2> и <reservedrangesplaceholder1> ≥ <reservedrangesplaceholder0>.

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

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

Разделение суррогатных решений

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

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

Совет

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

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

Алгоритмы

свернуть все

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

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

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

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

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

      P(T)=jTwj.

      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)itP(TL)itLP(TR)itR.

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

          ΔIU=P(TTU)itP(TL)itLP(TR)itR.

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

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

          1. fitctree вычисляет прогнозирующие меры ассоциации между xj разделения решения <u и всеми возможными разделениями решения xk <v, <reservedrangesplaceholder1> ≠ <reservedrangesplaceholder0>.

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

          3. fitctree определяет назначения дочерних узлов для наблюдений с отсутствующим значением для xi с использованием суррогатного разделения. Если суррогатный предиктор также содержит отсутствующее значение, то fitctree использует разделение решения со второй по величине мерой и так далее, пока нет других суррогатов. Возможно для fitctree чтобы разделить два различных наблюдения в узле t используя два разных суррогатных разделения. Для примера предположим, что предикторы x 1 и x 2 являются лучшими и вторыми лучшими суррогатами, соответственно, для xi предиктора, i ∉ {1,2}, в узле t. Если m наблюдения предиктора xi отсутствует (то есть xmi отсутствует), но x m 1 не отсутствует, то x 1 является суррогатным предиктором для xmi наблюдений. Если наблюдения x (m + 1), i и x (m + 1), 1 отсутствуют, но x (m + 1), 2 не пропущено, то x 2 является суррогатным предиктором для наблюдения 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 применяет стандартную ТЕЛЕЖКА к соответствующим предикторам, чтобы выбрать разделенный предиктор.

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

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

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

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

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

      • Если существует минимальное p -значение, и это результат теста взаимодействия, тоfitctree выбирает предиктор разделения, используя стандартную ТЕЛЕЖКА на соответствующей паре предикторов.

      • Если более одного p -значение меньше нуля из-за недолива, тоfitctree применяет стандартную ТЕЛЕЖКА к соответствующим предикторам, чтобы выбрать разделенный предиктор.

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

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

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

  • Для размещения MaxNumSplits, fitctree разделяет все узлы в текущей layer, а затем подсчитывает количество узлов ветви. Слой является набором узлов, равноудаленных от корневого узла. Если количество узлов ветви превышает 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® Многопоточные базовые блоки (TBB). Для получения дополнительной информации о Intel TBB смотрите https://software.intel.com/en-us/intel-tbb.

Ссылки

[1] Breiman, L., J. Friedman, R. Olshen, and C. Stone. Деревья классификации и регрессии. Бока Ратон, FL: CRC Press, 1984.

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

[3] Loh, W.Y. «Regression Trees with Unbiased Variable Selection and Interaction Detection». Statistica Sinica, Vol. 12, 2002, pp. 361-386.

[4] Loh, W.Y. and Y.S. Shih. «Разделение методов выбора для деревьев классификации». Statistica Sinica, Vol. 7, 1997, pp. 815-840.

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

Введенный в R2014a