Подгонка двоичного дерева решений для многоклассовой классификации
возвращает соответствующее двоичное дерево решения классификации на основе входных переменных (также известных как предикторы, функции или атрибуты), содержащихся в таблице tree = fitctree(Tbl,ResponseVarName)Tbl и выходные данные (ответ или метки), содержащиеся в Tbl.ResponseVarName. Возвращенное двоичное дерево разделяет узлы ветвления на основе значений столбца Tbl.
подгоняет дерево с дополнительными опциями, заданными одним или несколькими аргументами пары имя-значение, используя любой из предыдущих синтаксисов. Например, можно указать алгоритм, используемый для поиска наилучшего разделения на категориальном предикторе, создания перекрестно проверенного дерева или удержания части входных данных для проверки.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)

view(MdlDefault.Trained{1},'Mode','graph')
Среднее число расщеплений составляет около 15.
Предположим, что требуется дерево классификации, которое не является таким сложным (глубоким), как те, которые обучены с использованием количества разделений по умолчанию. Обучите другое дерево классификации, но установите максимальное количество разбиений на 7, что примерно вдвое меньше среднего числа разбиений в дереве классификации по умолчанию. Перекрестная проверка модели с помощью 10-кратной перекрестной проверки.
Mdl7 = fitctree(X,Y,'MaxNumSplits',7,'CrossVal','on'); view(Mdl7.Trained{1},'Mode','graph')

Сравните ошибки классификации перекрестной проверки моделей.
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 |


__________________________________________________________
Optimization completed.
MaxObjectiveEvaluations of 30 reached.
Total function evaluations: 30
Total elapsed time: 44.8221 seconds
Total objective function evaluation time: 5.613
Best observed feasible point:
MinLeafSize
___________
1
Observed objective function value = 0.033333
Estimated objective function value = 0.033922
Function evaluation time = 0.11282
Best estimated feasible point (according to models):
MinLeafSize
___________
1
Estimated objective function value = 0.033922
Estimated function evaluation time = 0.14731
Mdl =
ClassificationTree
ResponseName: 'Y'
CategoricalPredictors: []
ClassNames: {'setosa' 'versicolor' 'virginica'}
ScoreTransform: 'none'
NumObservations: 150
HyperparameterOptimizationResults: [1x1 BayesianOptimization]
Properties, Methods
Загрузить census1994 набор данных. Рассмотрим модель, которая предсказывает категорию зарплаты человека с учетом его возраста, рабочего класса, уровня образования, военного положения, расы, пола, прироста и потери капитала, а также количества рабочих часов в неделю.
load census1994 X = adultdata(:,{'age','workClass','education_num','marital_status','race',... 'sex','capital_gain','capital_loss','hours_per_week','salary'});
Отображение количества категорий, представленных в категориальных переменных с помощью summary.
summary(X)
Variables:
age: 32561x1 double
Values:
Min 17
Median 37
Max 90
workClass: 32561x1 categorical
Values:
Federal-gov 960
Local-gov 2093
Never-worked 7
Private 22696
Self-emp-inc 1116
Self-emp-not-inc 2541
State-gov 1298
Without-pay 14
NumMissing 1836
education_num: 32561x1 double
Values:
Min 1
Median 10
Max 16
marital_status: 32561x1 categorical
Values:
Divorced 4443
Married-AF-spouse 23
Married-civ-spouse 14976
Married-spouse-absent 418
Never-married 10683
Separated 1025
Widowed 993
race: 32561x1 categorical
Values:
Amer-Indian-Eskimo 311
Asian-Pac-Islander 1039
Black 3124
Other 271
White 27816
sex: 32561x1 categorical
Values:
Female 10771
Male 21790
capital_gain: 32561x1 double
Values:
Min 0
Median 0
Max 99999
capital_loss: 32561x1 double
Values:
Min 0
Median 0
Max 4356
hours_per_week: 32561x1 double
Values:
Min 1
Median 40
Max 99
salary: 32561x1 categorical
Values:
<=50K 24720
>50K 7841
Поскольку в категориальных переменных представлено немного категорий по сравнению с уровнями в непрерывных переменных, стандартный алгоритм разделения предиктора CART предпочитает разделение непрерывного предиктора над категориальными переменными.
Обучение дерева классификации с использованием всего набора данных. Чтобы вырастить несмещенные деревья, укажите использование теста кривизны для расщепления предикторов. Поскольку в данных отсутствуют наблюдения, укажите использование суррогатных расщеплений.
Mdl = fitctree(X,'salary','PredictorSelection','curvature',... 'Surrogate','on');
Оценить значения важности предиктора путем суммирования изменений риска из-за расщеплений на каждом предикторе и деления суммы на количество узлов ветвления. Сравните оценки с помощью гистограммы.
imp = predictorImportance(Mdl); figure; bar(imp); title('Predictor Importance Estimates'); ylabel('Estimates'); xlabel('Predictors'); h = gca; h.XTickLabel = Mdl.PredictorNames; h.XTickLabelRotation = 45; h.TickLabelInterpreter = 'none';

В этом случае capital_gain является наиболее важным предиктором, за которым следует education_num.
В этом примере показано, как оптимизировать гиперпараметры дерева классификации автоматически с использованием массива высокого уровня. Набор данных образца airlinesmall.csv - большой набор данных, содержащий табличный файл данных о полетах авиакомпании. В этом примере создается таблица высокого уровня, содержащая данные, и используется для выполнения процедуры оптимизации.
При выполнении вычислений в массивах TALL MATLAB ® использует либо параллельный пул (по умолчанию при наличии Toolbox™ Parallel Computing), либо локальный сеанс MATLAB. Если требуется выполнить пример с использованием локального сеанса MATLAB при наличии панели инструментов Parallel Computing Toolbox, можно изменить глобальную среду выполнения с помощью mapreducer функция.
Создайте хранилище данных, которое ссылается на расположение папки с данными. Выберите подмножество переменных для работы и обработайте 'NA' значения как отсутствующие данные, так что datastore заменяет их на NaN значения. Создайте таблицу высокого уровня, содержащую данные в хранилище данных.
ds = datastore('airlinesmall.csv'); ds.SelectedVariableNames = {'Month','DayofMonth','DayOfWeek',... 'DepTime','ArrDelay','Distance','DepDelay'}; ds.TreatAsMissing = 'NA'; tt = tall(ds) % Tall table
Starting parallel pool (parpool) using the 'local' profile ...
Connected to the parallel pool (number of workers: 6).
tt =
M×7 tall table
Month DayofMonth DayOfWeek DepTime ArrDelay Distance DepDelay
_____ __________ _________ _______ ________ ________ ________
10 21 3 642 8 308 12
10 26 1 1021 8 296 1
10 23 5 2055 21 480 20
10 23 5 1332 13 296 12
10 22 4 629 4 373 -1
10 28 3 1446 59 308 63
10 8 4 928 3 447 -2
10 10 6 859 11 954 -1
: : : : : : :
: : : : : : :
Определите рейсы с опозданием на 10 минут или более, определив логическую переменную, которая является истинной для позднего полета. Эта переменная содержит метки класса. Предварительный просмотр этой переменной включает первые несколько строк.
Y = tt.DepDelay > 10 % Class labelsY = M×1 tall logical array 1 0 1 1 0 1 0 0 : :
Создайте массив с высоким значением для данных предиктора.
X = tt{:,1:end-1} % Predictor dataX =
M×6 tall double matrix
10 21 3 642 8 308
10 26 1 1021 8 296
10 23 5 2055 21 480
10 23 5 1332 13 296
10 22 4 629 4 373
10 28 3 1446 59 308
10 8 4 928 3 447
10 10 6 859 11 954
: : : : : :
: : : : : :
Удалить строки в X и Y которые содержат отсутствующие данные.
R = rmmissing([X Y]); % Data with missing entries removed
X = R(:,1:end-1);
Y = R(:,end); Стандартизация переменных предиктора.
Z = zscore(X);
Автоматическая оптимизация гиперпараметров с помощью 'OptimizeHyperparameters' аргумент пары имя-значение. Найти оптимальный вариант 'MinLeafSize' значение, которое минимизирует потери при перекрестной проверке удержания. (Указание 'auto' использование 'MinLeafSize'.) Для воспроизводимости используйте 'expected-improvement-plus' функция обнаружения и установка начальных значений генераторов случайных чисел с помощью rng и tallrng. Результаты могут варьироваться в зависимости от количества работников и среды выполнения для массивов tall. Дополнительные сведения см. в разделе Управление местом запуска кода.
rng('default') tallrng('default') [Mdl,FitInfo,HyperparameterOptimizationResults] = fitctree(Z,Y,... 'OptimizeHyperparameters','auto',... 'HyperparameterOptimizationOptions',struct('Holdout',0.3,... 'AcquisitionFunctionName','expected-improvement-plus'))
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 3: Completed in 5.6 sec - Pass 2 of 3: Completed in 2.1 sec - Pass 3 of 3: Completed in 3.4 sec Evaluation completed in 13 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.73 sec Evaluation completed in 0.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 1.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.64 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 0.72 sec - Pass 4 of 4: Completed in 1.1 sec Evaluation completed in 5.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.53 sec - Pass 2 of 4: Completed in 0.73 sec - Pass 3 of 4: Completed in 0.58 sec - Pass 4 of 4: Completed in 0.8 sec Evaluation completed in 3.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.54 sec - Pass 2 of 4: Completed in 0.72 sec - Pass 3 of 4: Completed in 0.54 sec - Pass 4 of 4: Completed in 0.79 sec Evaluation completed in 3.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.51 sec - Pass 2 of 4: Completed in 0.72 sec - Pass 3 of 4: Completed in 0.59 sec - Pass 4 of 4: Completed in 0.87 sec Evaluation completed in 3.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.56 sec - Pass 2 of 4: Completed in 0.8 sec - Pass 3 of 4: Completed in 0.54 sec - Pass 4 of 4: Completed in 0.89 sec Evaluation completed in 3.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.57 sec - Pass 2 of 4: Completed in 0.74 sec - Pass 3 of 4: Completed in 0.58 sec - Pass 4 of 4: Completed in 1 sec Evaluation completed in 3.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.54 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 0.68 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 4.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.65 sec - Pass 2 of 4: Completed in 0.73 sec - Pass 3 of 4: Completed in 0.65 sec - Pass 4 of 4: Completed in 1.7 sec Evaluation completed in 4.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.63 sec - Pass 2 of 4: Completed in 0.85 sec - Pass 3 of 4: Completed in 0.58 sec - Pass 4 of 4: Completed in 2.2 sec Evaluation completed in 4.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.2 sec - Pass 2 of 4: Completed in 0.88 sec - Pass 3 of 4: Completed in 0.58 sec - Pass 4 of 4: Completed in 3 sec Evaluation completed in 6.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.72 sec - Pass 2 of 4: Completed in 0.96 sec - Pass 3 of 4: Completed in 0.59 sec - Pass 4 of 4: Completed in 4.2 sec Evaluation completed in 7.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.77 sec - Pass 2 of 4: Completed in 0.95 sec - Pass 3 of 4: Completed in 0.65 sec - Pass 4 of 4: Completed in 4.8 sec Evaluation completed in 7.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.79 sec - Pass 2 of 4: Completed in 1 sec - Pass 3 of 4: Completed in 0.61 sec - Pass 4 of 4: Completed in 5.1 sec Evaluation completed in 8.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.89 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 0.59 sec - Pass 4 of 4: Completed in 5.8 sec Evaluation completed in 9.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 0.63 sec - Pass 4 of 4: Completed in 5.2 sec Evaluation completed in 8.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 0.74 sec - Pass 4 of 4: Completed in 4.8 sec Evaluation completed in 9.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 0.68 sec - Pass 4 of 4: Completed in 3.9 sec Evaluation completed in 7.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 0.7 sec - Pass 4 of 4: Completed in 3 sec Evaluation completed in 7.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 0.66 sec - Pass 4 of 4: Completed in 2.5 sec Evaluation completed in 6.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 0.66 sec - Pass 4 of 4: Completed in 2.2 sec Evaluation completed in 5.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 0.69 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.2 sec - Pass 2 of 4: Completed in 1.4 sec - Pass 3 of 4: Completed in 0.67 sec - Pass 4 of 4: Completed in 1.6 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.3 sec - Pass 2 of 4: Completed in 1.4 sec - Pass 3 of 4: Completed in 0.65 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 5.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 0.67 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.2 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 0.73 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 0.65 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 2.4 sec Evaluation completed in 2.6 sec |======================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | MinLeafSize | | | result | | runtime | (observed) | (estim.) | | |======================================================================================| | 1 | Best | 0.11572 | 197.12 | 0.11572 | 0.11572 | 10 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.4 sec Evaluation completed in 0.56 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.93 sec Evaluation completed in 1.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.5 sec - Pass 2 of 4: Completed in 0.7 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 0.84 sec Evaluation completed in 3.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.4 sec Evaluation completed in 1.6 sec | 2 | Accept | 0.19635 | 10.496 | 0.11572 | 0.12008 | 48298 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.33 sec Evaluation completed in 0.47 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.83 sec Evaluation completed in 0.99 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.49 sec - Pass 2 of 4: Completed in 0.68 sec - Pass 3 of 4: Completed in 0.52 sec - Pass 4 of 4: Completed in 0.74 sec Evaluation completed in 3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.48 sec - Pass 2 of 4: Completed in 0.69 sec - Pass 3 of 4: Completed in 0.51 sec - Pass 4 of 4: Completed in 0.73 sec Evaluation completed in 3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.51 sec - Pass 2 of 4: Completed in 0.71 sec - Pass 3 of 4: Completed in 0.68 sec - Pass 4 of 4: Completed in 0.77 sec Evaluation completed in 3.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.48 sec - Pass 2 of 4: Completed in 0.7 sec - Pass 3 of 4: Completed in 0.55 sec - Pass 4 of 4: Completed in 0.86 sec Evaluation completed in 3.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.5 sec - Pass 2 of 4: Completed in 0.69 sec - Pass 3 of 4: Completed in 0.55 sec - Pass 4 of 4: Completed in 0.76 sec Evaluation completed in 3.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.52 sec - Pass 2 of 4: Completed in 0.7 sec - Pass 3 of 4: Completed in 0.5 sec - Pass 4 of 4: Completed in 0.76 sec Evaluation completed in 3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.54 sec - Pass 2 of 4: Completed in 0.75 sec - Pass 3 of 4: Completed in 0.55 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.53 sec - Pass 2 of 4: Completed in 0.74 sec - Pass 3 of 4: Completed in 0.55 sec - Pass 4 of 4: Completed in 0.78 sec Evaluation completed in 3.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.56 sec - Pass 2 of 4: Completed in 0.76 sec - Pass 3 of 4: Completed in 0.56 sec - Pass 4 of 4: Completed in 0.78 sec Evaluation completed in 3.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.75 sec Evaluation completed in 0.87 sec | 3 | Best | 0.1048 | 44.614 | 0.1048 | 0.11431 | 3166 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.3 sec Evaluation completed in 0.45 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.83 sec Evaluation completed in 0.97 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.99 sec - Pass 2 of 4: Completed in 0.68 sec - Pass 3 of 4: Completed in 0.52 sec - Pass 4 of 4: Completed in 0.73 sec Evaluation completed in 3.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.47 sec - Pass 2 of 4: Completed in 0.76 sec - Pass 3 of 4: Completed in 0.54 sec - Pass 4 of 4: Completed in 0.82 sec Evaluation completed in 3.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.52 sec - Pass 2 of 4: Completed in 0.74 sec - Pass 3 of 4: Completed in 0.54 sec - Pass 4 of 4: Completed in 0.81 sec Evaluation completed in 3.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.55 sec - Pass 2 of 4: Completed in 0.7 sec - Pass 3 of 4: Completed in 0.53 sec - Pass 4 of 4: Completed in 0.81 sec Evaluation completed in 3.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.52 sec - Pass 2 of 4: Completed in 0.77 sec - Pass 3 of 4: Completed in 0.58 sec - Pass 4 of 4: Completed in 0.89 sec Evaluation completed in 3.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.51 sec - Pass 2 of 4: Completed in 0.74 sec - Pass 3 of 4: Completed in 0.6 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 3.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 0.75 sec - Pass 3 of 4: Completed in 0.55 sec - Pass 4 of 4: Completed in 1.1 sec Evaluation completed in 4.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.52 sec - Pass 2 of 4: Completed in 0.78 sec - Pass 3 of 4: Completed in 0.5 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 3.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.63 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 0.61 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 4.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.59 sec - Pass 2 of 4: Completed in 0.8 sec - Pass 3 of 4: Completed in 0.57 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 4.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.66 sec - Pass 2 of 4: Completed in 0.81 sec - Pass 3 of 4: Completed in 0.52 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 4.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.62 sec - Pass 2 of 4: Completed in 0.75 sec - Pass 3 of 4: Completed in 0.61 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 3.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.61 sec - Pass 2 of 4: Completed in 0.78 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.6 sec Evaluation completed in 4.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.6 sec - Pass 2 of 4: Completed in 0.81 sec - Pass 3 of 4: Completed in 0.55 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.61 sec - Pass 2 of 4: Completed in 0.78 sec - Pass 3 of 4: Completed in 0.55 sec - Pass 4 of 4: Completed in 0.9 sec Evaluation completed in 3.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.59 sec - Pass 2 of 4: Completed in 0.81 sec - Pass 3 of 4: Completed in 0.53 sec - Pass 4 of 4: Completed in 0.81 sec Evaluation completed in 3.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.59 sec - Pass 2 of 4: Completed in 0.78 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 4.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.8 sec Evaluation completed in 0.94 sec | 4 | Best | 0.10094 | 91.723 | 0.10094 | 0.10574 | 180 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.3 sec Evaluation completed in 0.42 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.93 sec Evaluation completed in 1.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.55 sec - Pass 2 of 4: Completed in 0.66 sec - Pass 3 of 4: Completed in 0.55 sec - Pass 4 of 4: Completed in 0.83 sec Evaluation completed in 3.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.49 sec - Pass 2 of 4: Completed in 0.71 sec - Pass 3 of 4: Completed in 0.54 sec - Pass 4 of 4: Completed in 0.76 sec Evaluation completed in 3.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.5 sec - Pass 2 of 4: Completed in 0.7 sec - Pass 3 of 4: Completed in 0.56 sec - Pass 4 of 4: Completed in 0.78 sec Evaluation completed in 3.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.56 sec - Pass 2 of 4: Completed in 0.72 sec - Pass 3 of 4: Completed in 0.51 sec - Pass 4 of 4: Completed in 0.81 sec Evaluation completed in 3.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.52 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 0.88 sec Evaluation completed in 4.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.52 sec - Pass 2 of 4: Completed in 0.7 sec - Pass 3 of 4: Completed in 0.5 sec - Pass 4 of 4: Completed in 0.98 sec Evaluation completed in 3.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.56 sec - Pass 2 of 4: Completed in 0.74 sec - Pass 3 of 4: Completed in 0.5 sec - Pass 4 of 4: Completed in 1.1 sec Evaluation completed in 3.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.61 sec - Pass 2 of 4: Completed in 0.81 sec - Pass 3 of 4: Completed in 0.56 sec - Pass 4 of 4: Completed in 1.2 sec Evaluation completed in 3.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.59 sec - Pass 2 of 4: Completed in 0.81 sec - Pass 3 of 4: Completed in 0.7 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 4.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.56 sec - Pass 2 of 4: Completed in 0.73 sec - Pass 3 of 4: Completed in 0.59 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 3.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.58 sec - Pass 2 of 4: Completed in 0.8 sec - Pass 3 of 4: Completed in 0.52 sec - Pass 4 of 4: Completed in 1.2 sec Evaluation completed in 3.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.64 sec - Pass 2 of 4: Completed in 0.79 sec - Pass 3 of 4: Completed in 0.54 sec - Pass 4 of 4: Completed in 1.1 sec Evaluation completed in 3.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.57 sec - Pass 2 of 4: Completed in 0.78 sec - Pass 3 of 4: Completed in 0.56 sec - Pass 4 of 4: Completed in 0.97 sec Evaluation completed in 3.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.55 sec - Pass 2 of 4: Completed in 0.75 sec - Pass 3 of 4: Completed in 0.55 sec - Pass 4 of 4: Completed in 0.89 sec Evaluation completed in 3.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.6 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 0.61 sec - Pass 4 of 4: Completed in 0.85 sec Evaluation completed in 3.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.6 sec - Pass 2 of 4: Completed in 0.82 sec - Pass 3 of 4: Completed in 0.56 sec - Pass 4 of 4: Completed in 0.79 sec Evaluation completed in 3.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.3 sec Evaluation completed in 1.4 sec | 5 | Best | 0.10087 | 82.84 | 0.10087 | 0.10085 | 219 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.32 sec Evaluation completed in 0.45 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.87 sec Evaluation completed in 1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.5 sec - Pass 2 of 4: Completed in 0.7 sec - Pass 3 of 4: Completed in 0.56 sec - Pass 4 of 4: Completed in 0.76 sec Evaluation completed in 3.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.53 sec - Pass 2 of 4: Completed in 0.74 sec - Pass 3 of 4: Completed in 0.54 sec - Pass 4 of 4: Completed in 0.79 sec Evaluation completed in 3.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.49 sec - Pass 2 of 4: Completed in 0.66 sec - Pass 3 of 4: Completed in 0.5 sec - Pass 4 of 4: Completed in 0.78 sec Evaluation completed in 3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.49 sec - Pass 2 of 4: Completed in 0.68 sec - Pass 3 of 4: Completed in 0.51 sec - Pass 4 of 4: Completed in 0.81 sec Evaluation completed in 3.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.55 sec - Pass 2 of 4: Completed in 0.68 sec - Pass 3 of 4: Completed in 0.54 sec - Pass 4 of 4: Completed in 0.86 sec Evaluation completed in 3.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.51 sec - Pass 2 of 4: Completed in 0.71 sec - Pass 3 of 4: Completed in 0.53 sec - Pass 4 of 4: Completed in 1 sec Evaluation completed in 3.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.59 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 0.55 sec - Pass 4 of 4: Completed in 0.85 sec Evaluation completed in 3.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.6 sec - Pass 2 of 4: Completed in 0.74 sec - Pass 3 of 4: Completed in 0.6 sec - Pass 4 of 4: Completed in 0.84 sec Evaluation completed in 3.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.51 sec - Pass 2 of 4: Completed in 0.77 sec - Pass 3 of 4: Completed in 0.58 sec - Pass 4 of 4: Completed in 0.87 sec Evaluation completed in 3.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.53 sec - Pass 2 of 4: Completed in 0.78 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 0.92 sec Evaluation completed in 3.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.54 sec - Pass 2 of 4: Completed in 0.81 sec - Pass 3 of 4: Completed in 0.59 sec - Pass 4 of 4: Completed in 0.77 sec Evaluation completed in 3.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.53 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 0.68 sec - Pass 4 of 4: Completed in 0.86 sec Evaluation completed in 3.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.77 sec Evaluation completed in 0.93 sec | 6 | Accept | 0.10155 | 61.043 | 0.10087 | 0.10089 | 1089 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.33 sec Evaluation completed in 0.46 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.89 sec Evaluation completed in 1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.56 sec - Pass 2 of 4: Completed in 0.72 sec - Pass 3 of 4: Completed in 0.56 sec - Pass 4 of 4: Completed in 0.8 sec Evaluation completed in 3.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.53 sec - Pass 2 of 4: Completed in 0.69 sec - Pass 3 of 4: Completed in 0.54 sec - Pass 4 of 4: Completed in 0.85 sec Evaluation completed in 3.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.51 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 0.59 sec - Pass 4 of 4: Completed in 0.83 sec Evaluation completed in 3.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 0.76 sec - Pass 3 of 4: Completed in 0.56 sec - Pass 4 of 4: Completed in 0.87 sec Evaluation completed in 4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 0.77 sec - Pass 3 of 4: Completed in 0.53 sec - Pass 4 of 4: Completed in 0.9 sec Evaluation completed in 3.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 0.77 sec - Pass 3 of 4: Completed in 0.51 sec - Pass 4 of 4: Completed in 0.98 sec Evaluation completed in 3.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 0.78 sec - Pass 3 of 4: Completed in 0.62 sec - Pass 4 of 4: Completed in 1.1 sec Evaluation completed in 4.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.52 sec - Pass 2 of 4: Completed in 0.71 sec - Pass 3 of 4: Completed in 0.53 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 3.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.59 sec - Pass 2 of 4: Completed in 0.72 sec - Pass 3 of 4: Completed in 0.59 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 4.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.59 sec - Pass 2 of 4: Completed in 0.81 sec - Pass 3 of 4: Completed in 0.57 sec - Pass 4 of 4: Completed in 2.7 sec Evaluation completed in 5.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.64 sec - Pass 2 of 4: Completed in 0.87 sec - Pass 3 of 4: Completed in 1.2 sec - Pass 4 of 4: Completed in 3.7 sec Evaluation completed in 7.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.73 sec - Pass 2 of 4: Completed in 0.92 sec - Pass 3 of 4: Completed in 0.6 sec - Pass 4 of 4: Completed in 4.4 sec Evaluation completed in 7.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.86 sec - Pass 2 of 4: Completed in 1.5 sec - Pass 3 of 4: Completed in 0.64 sec - Pass 4 of 4: Completed in 4.8 sec Evaluation completed in 8.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.9 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 0.65 sec - Pass 4 of 4: Completed in 5.2 sec Evaluation completed in 8.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 0.73 sec - Pass 4 of 4: Completed in 5.6 sec Evaluation completed in 9.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.6 sec - Pass 3 of 4: Completed in 0.75 sec - Pass 4 of 4: Completed in 5.8 sec Evaluation completed in 10 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.3 sec - Pass 2 of 4: Completed in 1.4 sec - Pass 3 of 4: Completed in 1.2 sec - Pass 4 of 4: Completed in 5.1 sec Evaluation completed in 9.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.4 sec - Pass 2 of 4: Completed in 1.5 sec - Pass 3 of 4: Completed in 0.7 sec - Pass 4 of 4: Completed in 4.1 sec Evaluation completed in 8.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.4 sec - Pass 2 of 4: Completed in 1.6 sec - Pass 3 of 4: Completed in 0.71 sec - Pass 4 of 4: Completed in 3.6 sec Evaluation completed in 7.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 0.74 sec - Pass 4 of 4: Completed in 3.2 sec Evaluation completed in 7.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.4 sec - Pass 2 of 4: Completed in 1.7 sec - Pass 3 of 4: Completed in 0.73 sec - Pass 4 of 4: Completed in 2.8 sec Evaluation completed in 7.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.7 sec - Pass 3 of 4: Completed in 0.82 sec - Pass 4 of 4: Completed in 2.4 sec Evaluation completed in 7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 2 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 0.79 sec - Pass 4 of 4: Completed in 2.3 sec Evaluation completed in 7.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 0.73 sec - Pass 4 of 4: Completed in 2.2 sec Evaluation completed in 6.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.7 sec - Pass 3 of 4: Completed in 0.79 sec - Pass 4 of 4: Completed in 2.3 sec Evaluation completed in 7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.7 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 0.8 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 6.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.7 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 0.77 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 6.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.4 sec - Pass 2 of 4: Completed in 1.6 sec - Pass 3 of 4: Completed in 0.73 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 6.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.7 sec - Pass 3 of 4: Completed in 1.3 sec - Pass 4 of 4: Completed in 1.7 sec Evaluation completed in 6.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.7 sec - Pass 3 of 4: Completed in 0.73 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 6.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.3 sec Evaluation completed in 1.5 sec | 7 | Accept | 0.13495 | 241.76 | 0.10087 | 0.10089 | 1 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.31 sec Evaluation completed in 0.44 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.87 sec Evaluation completed in 1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.47 sec - Pass 2 of 4: Completed in 0.67 sec - Pass 3 of 4: Completed in 0.54 sec - Pass 4 of 4: Completed in 0.74 sec Evaluation completed in 3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.51 sec - Pass 2 of 4: Completed in 0.79 sec - Pass 3 of 4: Completed in 0.56 sec - Pass 4 of 4: Completed in 0.76 sec Evaluation completed in 3.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.49 sec - Pass 2 of 4: Completed in 0.69 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 0.78 sec Evaluation completed in 3.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 0.78 sec - Pass 3 of 4: Completed in 0.53 sec - Pass 4 of 4: Completed in 0.85 sec Evaluation completed in 3.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.54 sec - Pass 2 of 4: Completed in 0.77 sec - Pass 3 of 4: Completed in 0.52 sec - Pass 4 of 4: Completed in 0.89 sec Evaluation completed in 3.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.51 sec - Pass 2 of 4: Completed in 0.73 sec - Pass 3 of 4: Completed in 0.6 sec - Pass 4 of 4: Completed in 1.1 sec Evaluation completed in 3.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.53 sec - Pass 2 of 4: Completed in 0.77 sec - Pass 3 of 4: Completed in 0.54 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 3.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.62 sec - Pass 2 of 4: Completed in 0.8 sec - Pass 3 of 4: Completed in 0.61 sec - Pass 4 of 4: Completed in 1.6 sec Evaluation completed in 4.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.2 sec - Pass 2 of 4: Completed in 1.5 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.69 sec - Pass 2 of 4: Completed in 0.88 sec - Pass 3 of 4: Completed in 0.75 sec - Pass 4 of 4: Completed in 2.1 sec Evaluation completed in 5.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.61 sec - Pass 2 of 4: Completed in 0.79 sec - Pass 3 of 4: Completed in 0.54 sec - Pass 4 of 4: Completed in 2.2 sec Evaluation completed in 4.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.61 sec - Pass 2 of 4: Completed in 0.84 sec - Pass 3 of 4: Completed in 0.58 sec - Pass 4 of 4: Completed in 2.2 sec Evaluation completed in 4.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.68 sec - Pass 2 of 4: Completed in 0.85 sec - Pass 3 of 4: Completed in 0.59 sec - Pass 4 of 4: Completed in 2.2 sec Evaluation completed in 4.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.68 sec - Pass 2 of 4: Completed in 0.91 sec - Pass 3 of 4: Completed in 0.58 sec - Pass 4 of 4: Completed in 2.4 sec Evaluation completed in 5.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.92 sec - Pass 2 of 4: Completed in 0.86 sec - Pass 3 of 4: Completed in 0.57 sec - Pass 4 of 4: Completed in 1.6 sec Evaluation completed in 4.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.69 sec - Pass 2 of 4: Completed in 0.91 sec - Pass 3 of 4: Completed in 0.63 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 4.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.67 sec - Pass 2 of 4: Completed in 0.86 sec - Pass 3 of 4: Completed in 0.56 sec - Pass 4 of 4: Completed in 0.99 sec Evaluation completed in 3.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.2 sec - Pass 2 of 4: Completed in 0.9 sec - Pass 3 of 4: Completed in 0.57 sec - Pass 4 of 4: Completed in 0.95 sec Evaluation completed in 4.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.73 sec - Pass 2 of 4: Completed in 0.91 sec - Pass 3 of 4: Completed in 0.57 sec - Pass 4 of 4: Completed in 0.91 sec Evaluation completed in 3.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.76 sec - Pass 2 of 4: Completed in 0.93 sec - Pass 3 of 4: Completed in 0.57 sec - Pass 4 of 4: Completed in 0.9 sec Evaluation completed in 3.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.91 sec Evaluation completed in 1.1 sec | 8 | Accept | 0.10246 | 115.31 | 0.10087 | 0.10089 | 58 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.34 sec Evaluation completed in 0.49 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.87 sec Evaluation completed in 1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.55 sec - Pass 2 of 4: Completed in 0.72 sec - Pass 3 of 4: Completed in 0.57 sec - Pass 4 of 4: Completed in 0.8 sec Evaluation completed in 3.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.48 sec - Pass 2 of 4: Completed in 0.7 sec - Pass 3 of 4: Completed in 0.52 sec - Pass 4 of 4: Completed in 0.76 sec Evaluation completed in 3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.51 sec - Pass 2 of 4: Completed in 0.69 sec - Pass 3 of 4: Completed in 0.54 sec - Pass 4 of 4: Completed in 0.79 sec Evaluation completed in 3.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.53 sec - Pass 2 of 4: Completed in 0.72 sec - Pass 3 of 4: Completed in 0.56 sec - Pass 4 of 4: Completed in 0.81 sec Evaluation completed in 3.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 0.75 sec - Pass 3 of 4: Completed in 0.56 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 4.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.55 sec - Pass 2 of 4: Completed in 0.77 sec - Pass 3 of 4: Completed in 0.6 sec - Pass 4 of 4: Completed in 0.9 sec Evaluation completed in 3.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.5 sec - Pass 2 of 4: Completed in 0.73 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.1 sec Evaluation completed in 4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.56 sec - Pass 2 of 4: Completed in 0.75 sec - Pass 3 of 4: Completed in 0.53 sec - Pass 4 of 4: Completed in 1.2 sec Evaluation completed in 3.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.61 sec - Pass 2 of 4: Completed in 0.76 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.1 sec Evaluation completed in 4.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.6 sec - Pass 2 of 4: Completed in 0.74 sec - Pass 3 of 4: Completed in 0.53 sec - Pass 4 of 4: Completed in 0.95 sec Evaluation completed in 3.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.55 sec - Pass 2 of 4: Completed in 0.76 sec - Pass 3 of 4: Completed in 0.57 sec - Pass 4 of 4: Completed in 0.94 sec Evaluation completed in 3.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.58 sec - Pass 2 of 4: Completed in 0.77 sec - Pass 3 of 4: Completed in 0.54 sec - Pass 4 of 4: Completed in 0.83 sec Evaluation completed in 3.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.59 sec - Pass 2 of 4: Completed in 0.78 sec - Pass 3 of 4: Completed in 0.57 sec - Pass 4 of 4: Completed in 0.83 sec Evaluation completed in 3.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.6 sec - Pass 2 of 4: Completed in 0.76 sec - Pass 3 of 4: Completed in 0.55 sec - Pass 4 of 4: Completed in 0.77 sec Evaluation completed in 3.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.72 sec - Pass 2 of 4: Completed in 0.81 sec - Pass 3 of 4: Completed in 0.6 sec - Pass 4 of 4: Completed in 0.76 sec Evaluation completed in 3.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.3 sec Evaluation completed in 1.4 sec | 9 | Accept | 0.10173 | 77.229 | 0.10087 | 0.10086 | 418 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.32 sec Evaluation completed in 0.46 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.84 sec Evaluation completed in 1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.5 sec - Pass 2 of 4: Completed in 0.72 sec - Pass 3 of 4: Completed in 0.57 sec - Pass 4 of 4: Completed in 0.75 sec Evaluation completed in 3.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.49 sec - Pass 2 of 4: Completed in 0.68 sec - Pass 3 of 4: Completed in 0.55 sec - Pass 4 of 4: Completed in 0.76 sec Evaluation completed in 3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.52 sec - Pass 2 of 4: Completed in 0.71 sec - Pass 3 of 4: Completed in 0.54 sec - Pass 4 of 4: Completed in 0.91 sec Evaluation completed in 3.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.53 sec - Pass 2 of 4: Completed in 0.69 sec - Pass 3 of 4: Completed in 0.52 sec - Pass 4 of 4: Completed in 0.82 sec Evaluation completed in 3.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.51 sec - Pass 2 of 4: Completed in 0.7 sec - Pass 3 of 4: Completed in 0.61 sec - Pass 4 of 4: Completed in 0.82 sec Evaluation completed in 3.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 0.78 sec - Pass 3 of 4: Completed in 0.54 sec - Pass 4 of 4: Completed in 0.95 sec Evaluation completed in 3.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.55 sec - Pass 2 of 4: Completed in 0.71 sec - Pass 3 of 4: Completed in 0.53 sec - Pass 4 of 4: Completed in 1.1 sec Evaluation completed in 3.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.54 sec - Pass 2 of 4: Completed in 0.7 sec - Pass 3 of 4: Completed in 0.58 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 3.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.55 sec - Pass 2 of 4: Completed in 0.73 sec - Pass 3 of 4: Completed in 0.59 sec - Pass 4 of 4: Completed in 1.7 sec Evaluation completed in 4.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.58 sec - Pass 2 of 4: Completed in 0.79 sec - Pass 3 of 4: Completed in 0.56 sec - Pass 4 of 4: Completed in 1.7 sec Evaluation completed in 4.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.71 sec - Pass 2 of 4: Completed in 1.7 sec - Pass 3 of 4: Completed in 0.59 sec - Pass 4 of 4: Completed in 1.7 sec Evaluation completed in 5.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.65 sec - Pass 2 of 4: Completed in 0.83 sec - Pass 3 of 4: Completed in 0.61 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 4.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.67 sec - Pass 2 of 4: Completed in 0.87 sec - Pass 3 of 4: Completed in 0.58 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 4.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.61 sec - Pass 2 of 4: Completed in 0.82 sec - Pass 3 of 4: Completed in 0.55 sec - Pass 4 of 4: Completed in 1.1 sec Evaluation completed in 3.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.65 sec - Pass 2 of 4: Completed in 0.84 sec - Pass 3 of 4: Completed in 0.62 sec - Pass 4 of 4: Completed in 0.89 sec Evaluation completed in 3.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.64 sec - Pass 2 of 4: Completed in 0.81 sec - Pass 3 of 4: Completed in 0.56 sec - Pass 4 of 4: Completed in 0.88 sec Evaluation completed in 3.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.62 sec - Pass 2 of 4: Completed in 0.9 sec - Pass 3 of 4: Completed in 0.55 sec - Pass 4 of 4: Completed in 0.86 sec Evaluation completed in 3.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.65 sec - Pass 2 of 4: Completed in 0.81 sec - Pass 3 of 4: Completed in 0.56 sec - Pass 4 of 4: Completed in 0.8 sec Evaluation completed in 3.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.77 sec Evaluation completed in 0.89 sec | 10 | Accept | 0.10114 | 94.532 | 0.10087 | 0.10091 | 123 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.86 sec Evaluation completed in 1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.83 sec Evaluation completed in 0.99 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.48 sec - Pass 2 of 4: Completed in 0.7 sec - Pass 3 of 4: Completed in 0.54 sec - Pass 4 of 4: Completed in 0.8 sec Evaluation completed in 3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.5 sec - Pass 2 of 4: Completed in 0.72 sec - Pass 3 of 4: Completed in 0.53 sec - Pass 4 of 4: Completed in 0.79 sec Evaluation completed in 3.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.56 sec - Pass 2 of 4: Completed in 0.73 sec - Pass 3 of 4: Completed in 0.54 sec - Pass 4 of 4: Completed in 0.85 sec Evaluation completed in 3.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.5 sec - Pass 2 of 4: Completed in 0.69 sec - Pass 3 of 4: Completed in 0.55 sec - Pass 4 of 4: Completed in 0.81 sec Evaluation completed in 3.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.55 sec - Pass 2 of 4: Completed in 0.82 sec - Pass 3 of 4: Completed in 0.64 sec - Pass 4 of 4: Completed in 0.94 sec Evaluation completed in 3.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.49 sec - Pass 2 of 4: Completed in 0.77 sec - Pass 3 of 4: Completed in 0.53 sec - Pass 4 of 4: Completed in 0.97 sec Evaluation completed in 3.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.56 sec - Pass 2 of 4: Completed in 0.78 sec - Pass 3 of 4: Completed in 0.58 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 3.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.55 sec - Pass 2 of 4: Completed in 0.81 sec - Pass 3 of 4: Completed in 0.56 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 3.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.55 sec - Pass 2 of 4: Completed in 0.76 sec - Pass 3 of 4: Completed in 0.56 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 3.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.59 sec - Pass 2 of 4: Completed in 0.76 sec - Pass 3 of 4: Completed in 0.55 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.59 sec - Pass 2 of 4: Completed in 0.8 sec - Pass 3 of 4: Completed in 0.59 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 3.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.59 sec - Pass 2 of 4: Completed in 0.77 sec - Pass 3 of 4: Completed in 0.55 sec - Pass 4 of 4: Completed in 1.2 sec Evaluation completed in 3.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 0.8 sec - Pass 3 of 4: Completed in 0.58 sec - Pass 4 of 4: Completed in 1.1 sec Evaluation completed in 4.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.65 sec - Pass 2 of 4: Completed in 0.84 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1 sec Evaluation completed in 4.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.63 sec - Pass 2 of 4: Completed in 0.84 sec - Pass 3 of 4: Completed in 0.59 sec - Pass 4 of 4: Completed in 0.9 sec Evaluation completed in 3.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.2 sec - Pass 2 of 4: Completed in 0.83 sec - Pass 3 of 4: Completed in 0.56 sec - Pass 4 of 4: Completed in 0.81 sec Evaluation completed in 4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.65 sec - Pass 2 of 4: Completed in 0.79 sec - Pass 3 of 4: Completed in 0.59 sec - Pass 4 of 4: Completed in 0.8 sec Evaluation completed in 3.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.77 sec Evaluation completed in 0.89 sec | 11 | Best | 0.1008 | 90.637 | 0.1008 | 0.10088 | 178 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.38 sec Evaluation completed in 0.52 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.88 sec Evaluation completed in 1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.49 sec - Pass 2 of 4: Completed in 0.69 sec - Pass 3 of 4: Completed in 0.51 sec - Pass 4 of 4: Completed in 0.78 sec Evaluation completed in 3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.59 sec - Pass 2 of 4: Completed in 0.72 sec - Pass 3 of 4: Completed in 0.53 sec - Pass 4 of 4: Completed in 0.79 sec Evaluation completed in 3.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.58 sec - Pass 2 of 4: Completed in 0.74 sec - Pass 3 of 4: Completed in 0.55 sec - Pass 4 of 4: Completed in 0.93 sec Evaluation completed in 3.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.57 sec - Pass 2 of 4: Completed in 0.79 sec - Pass 3 of 4: Completed in 0.58 sec - Pass 4 of 4: Completed in 0.83 sec Evaluation completed in 3.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.53 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 0.59 sec - Pass 4 of 4: Completed in 0.91 sec Evaluation completed in 3.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.58 sec - Pass 2 of 4: Completed in 0.85 sec - Pass 3 of 4: Completed in 0.58 sec - Pass 4 of 4: Completed in 1 sec Evaluation completed in 3.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.56 sec - Pass 2 of 4: Completed in 0.77 sec - Pass 3 of 4: Completed in 0.55 sec - Pass 4 of 4: Completed in 1.2 sec Evaluation completed in 3.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 0.81 sec - Pass 3 of 4: Completed in 0.52 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 4.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.54 sec - Pass 2 of 4: Completed in 0.74 sec - Pass 3 of 4: Completed in 0.54 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 3.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.61 sec - Pass 2 of 4: Completed in 0.79 sec - Pass 3 of 4: Completed in 0.58 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.61 sec - Pass 2 of 4: Completed in 0.82 sec - Pass 3 of 4: Completed in 0.61 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.66 sec - Pass 2 of 4: Completed in 0.77 sec - Pass 3 of 4: Completed in 0.54 sec - Pass 4 of 4: Completed in 1.2 sec Evaluation completed in 3.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.61 sec - Pass 2 of 4: Completed in 0.79 sec - Pass 3 of 4: Completed in 0.56 sec - Pass 4 of 4: Completed in 1.2 sec Evaluation completed in 3.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.62 sec - Pass 2 of 4: Completed in 0.85 sec - Pass 3 of 4: Completed in 0.56 sec - Pass 4 of 4: Completed in 1 sec Evaluation completed in 3.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.61 sec - Pass 2 of 4: Completed in 0.86 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 0.96 sec Evaluation completed in 4.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.65 sec - Pass 2 of 4: Completed in 0.8 sec - Pass 3 of 4: Completed in 0.59 sec - Pass 4 of 4: Completed in 0.86 sec Evaluation completed in 3.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.69 sec - Pass 2 of 4: Completed in 0.84 sec - Pass 3 of 4: Completed in 0.53 sec - Pass 4 of 4: Completed in 0.83 sec Evaluation completed in 3.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.76 sec Evaluation completed in 0.89 sec | 12 | Accept | 0.1008 | 90.267 | 0.1008 | 0.10086 | 179 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.32 sec Evaluation completed in 0.45 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.9 sec Evaluation completed in 1.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.58 sec - Pass 2 of 4: Completed in 0.71 sec - Pass 3 of 4: Completed in 0.53 sec - Pass 4 of 4: Completed in 0.77 sec Evaluation completed in 3.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.49 sec - Pass 2 of 4: Completed in 0.69 sec - Pass 3 of 4: Completed in 0.58 sec - Pass 4 of 4: Completed in 0.77 sec Evaluation completed in 3.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.52 sec - Pass 2 of 4: Completed in 0.71 sec - Pass 3 of 4: Completed in 0.51 sec - Pass 4 of 4: Completed in 0.78 sec Evaluation completed in 3.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.54 sec - Pass 2 of 4: Completed in 0.7 sec - Pass 3 of 4: Completed in 0.54 sec - Pass 4 of 4: Completed in 0.72 sec Evaluation completed in 3.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.54 sec - Pass 2 of 4: Completed in 0.74 sec - Pass 3 of 4: Completed in 0.51 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 3.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.54 sec - Pass 2 of 4: Completed in 0.78 sec - Pass 3 of 4: Completed in 0.59 sec - Pass 4 of 4: Completed in 0.74 sec Evaluation completed in 3.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.83 sec Evaluation completed in 0.97 sec | 13 | Accept | 0.11126 | 32.134 | 0.1008 | 0.10084 | 10251 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.32 sec Evaluation completed in 0.45 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.85 sec Evaluation completed in 0.99 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.51 sec - Pass 2 of 4: Completed in 0.75 sec - Pass 3 of 4: Completed in 0.55 sec - Pass 4 of 4: Completed in 0.74 sec Evaluation completed in 3.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.5 sec - Pass 2 of 4: Completed in 0.7 sec - Pass 3 of 4: Completed in 0.57 sec - Pass 4 of 4: Completed in 0.78 sec Evaluation completed in 3.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.5 sec - Pass 2 of 4: Completed in 0.68 sec - Pass 3 of 4: Completed in 0.53 sec - Pass 4 of 4: Completed in 0.79 sec Evaluation completed in 3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.5 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 0.54 sec - Pass 4 of 4: Completed in 0.91 sec Evaluation completed in 3.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.53 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 0.59 sec - Pass 4 of 4: Completed in 0.86 sec Evaluation completed in 3.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.51 sec - Pass 2 of 4: Completed in 0.71 sec - Pass 3 of 4: Completed in 0.59 sec - Pass 4 of 4: Completed in 1 sec Evaluation completed in 3.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.56 sec - Pass 2 of 4: Completed in 0.71 sec - Pass 3 of 4: Completed in 0.64 sec - Pass 4 of 4: Completed in 0.99 sec Evaluation completed in 3.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.54 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 0.58 sec - Pass 4 of 4: Completed in 0.94 sec Evaluation completed in 3.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.51 sec - Pass 2 of 4: Completed in 0.77 sec - Pass 3 of 4: Completed in 0.59 sec - Pass 4 of 4: Completed in 0.9 sec Evaluation completed in 3.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.56 sec - Pass 2 of 4: Completed in 0.78 sec - Pass 3 of 4: Completed in 0.56 sec - Pass 4 of 4: Completed in 0.9 sec Evaluation completed in 3.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.55 sec - Pass 2 of 4: Completed in 0.72 sec - Pass 3 of 4: Completed in 0.52 sec - Pass 4 of 4: Completed in 0.89 sec Evaluation completed in 3.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.58 sec - Pass 2 of 4: Completed in 0.76 sec - Pass 3 of 4: Completed in 0.54 sec - Pass 4 of 4: Completed in 0.8 sec Evaluation completed in 3.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.56 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 0.61 sec - Pass 4 of 4: Completed in 0.76 sec Evaluation completed in 3.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.83 sec Evaluation completed in 0.97 sec | 14 | Accept | 0.10154 | 66.262 | 0.1008 | 0.10085 | 736 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.36 sec Evaluation completed in 0.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.89 sec Evaluation completed in 1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.53 sec - Pass 2 of 4: Completed in 0.69 sec - Pass 3 of 4: Completed in 0.56 sec - Pass 4 of 4: Completed in 0.74 sec Evaluation completed in 3.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.5 sec - Pass 2 of 4: Completed in 0.67 sec - Pass 3 of 4: Completed in 0.56 sec - Pass 4 of 4: Completed in 0.78 sec Evaluation completed in 3.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.52 sec - Pass 2 of 4: Completed in 0.69 sec - Pass 3 of 4: Completed in 0.54 sec - Pass 4 of 4: Completed in 0.84 sec Evaluation completed in 3.1 sec Evaluating tall expression using the Parallel Pool 'local': Evaluation 0% ...
Mdl =
CompactClassificationTree
ResponseName: 'Y'
CategoricalPredictors: []
ClassNames: [0 1]
ScoreTransform: 'none'
Properties, Methods
FitInfo = struct with no fields.
HyperparameterOptimizationResults =
BayesianOptimization with properties:
ObjectiveFcn: @createObjFcn/tallObjFcn
VariableDescriptions: [4×1 optimizableVariable]
Options: [1×1 struct]
MinObjective: 0.1004
XAtMinObjective: [1×1 table]
MinEstimatedObjective: 0.1008
XAtMinEstimatedObjective: [1×1 table]
NumObjectiveEvaluations: 30
TotalElapsedTime: 3.0367e+03
NextPoint: [1×1 table]
XTrace: [30×1 table]
ObjectiveTrace: [30×1 double]
ConstraintsTrace: []
UserDataTrace: {30×1 cell}
ObjectiveEvaluationTimeTrace: [30×1 double]
IterationTimeTrace: [30×1 double]
ErrorTrace: [30×1 double]
FeasibilityTrace: [30×1 logical]
FeasibilityProbabilityTrace: [30×1 double]
IndexOfMinimumTrace: [30×1 double]
ObjectiveMinimumTrace: [30×1 double]
EstimatedObjectiveMinimumTrace: [30×1 double]
Tbl - Образцы данныхОбразец данных, используемых для обучения модели, указанный как таблица. Каждая строка Tbl соответствует одному наблюдению, и каждый столбец соответствует одной прогнозирующей переменной. Дополнительно, Tbl может содержать один дополнительный столбец для переменной ответа. Многозначные переменные и массивы ячеек, отличные от массивов ячеек символьных векторов, не допускаются.
Если Tbl содержит переменную ответа, и вы хотите использовать все оставшиеся переменные в Tbl в качестве предикторов, затем укажите переменную ответа, используя ResponseVarName.
Если Tbl содержит переменную ответа, и требуется использовать только подмножество остальных переменных в Tbl в качестве предикторов, затем укажите формулу с помощью formula.
Если Tbl не содержит переменную ответа, затем укажите переменную ответа с помощью Y. Длина переменной ответа и количество строк в Tbl должно быть равным.
Типы данных: table
ResponseVarName - Имя переменной ответаTblИмя переменной ответа, указанное как имя переменной в Tbl.
Необходимо указать ResponseVarName в виде вектора символов или строкового скаляра. Например, если переменная ответа Y хранится как Tbl.Y, затем укажите его как 'Y'. В противном случае программа обрабатывает все столбцы Tbl, в том числе Y, в качестве предикторов при обучении модели.
Переменная ответа должна быть категориальным, символьным или строковым массивом; логический или числовой вектор; или массив ячеек символьных векторов. Если Y является символьным массивом, то каждый элемент переменной ответа должен соответствовать одной строке массива.
Рекомендуется указывать порядок классов с помощью ClassNames аргумент «имя-значение».
Типы данных: char | string
formula - Пояснительная модель переменной ответа и подмножество переменных предиктораПояснительная модель переменной ответа и подмножество переменных предиктора, указанное как вектор символов или строковый скаляр в форме 'Y~x1+x2+x3'. В этой форме Y представляет переменную ответа, и x1, x2, и x3 представляют переменные предиктора.
Задание подмножества переменных в Tbl в качестве предикторов для обучения модели используйте формулу. Если задать формулу, программа не будет использовать переменные в Tbl которые не отображаются в formula.
Имена переменных в формуле должны быть обоими именами переменных в Tbl (Tbl.Properties.VariableNames) и допустимые идентификаторы MATLAB ®. Имена переменных можно проверить вTbl с помощью isvarname функция. Если имена переменных недопустимы, их можно преобразовать с помощью matlab.lang.makeValidName функция.
Типы данных: char | string
Y - Этикетки классовМетки класса, заданные как числовой вектор, категориальный вектор, логический вектор, символьный массив, строковый массив или массив ячеек символьных векторов. Каждая строка Y представляет классификацию соответствующей строки X.
При подгонке дерева fitctree рассматривает NaN, '' (пустой символьный вектор), "" (пустая строка), <missing>, и <undefined> значения в Y для отсутствующих значений. fitctree не использует наблюдения с отсутствующими значениями для Y в посадке.
Для числовых Y, рассмотрите возможность подгонки дерева регрессии с помощью fitrtree вместо этого.
Типы данных: single | double | categorical | logical | char | string | cell
X - Данные предиктораДанные предиктора, указанные как числовая матрица. Каждая строка 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' аргумент пары имя-значение.
'AlgorithmForCategorical' - Алгоритм для разделения наилучшего категориального предиктора'Exact' | 'PullLeft' | 'PCA' | 'OVAbyClass'Алгоритм поиска наилучшего разделения на категориальном предикторе с категориями C для данных и классами K ≥ 3, указанным как пара, разделенная запятыми, состоящая из 'AlgorithmForCategorical' и одно из следующих значений.
| Стоимость | Описание |
|---|---|
'Exact' | Рассмотрим все комбинации 2C-1 - 1. |
'PullLeft' | Начните со всех категорий C в правой ветви. Рассмотрите возможность перемещения каждой категории в левую ветвь, поскольку она достигает минимальной примеси для классов K среди остальных категорий. Из этой последовательности выберите расщепление с наименьшей примесью. |
'PCA' | Вычислите оценку для каждой категории, используя внутреннее произведение между первым основным компонентом матрицы взвешенной ковариации (матрицы вероятности центрированного класса) и вектором вероятностей класса для этой категории. Отсортируйте баллы в порядке возрастания и учтите все разделения C-1. |
'OVAbyClass' | Начните со всех категорий C в правой ветви. Для каждого класса упорядочивайте категории на основе их вероятности для этого класса. Для первого класса рассмотрите возможность перемещения каждой категории в левую ветвь по порядку, записывая критерий примеси при каждом перемещении. Повторите для остальных классов. Из этой последовательности выберите разделение, имеющее минимальную примесь. |
fitctree автоматически выбирает оптимальное подмножество алгоритмов для каждого разделения, используя известное количество классов и уровней категориального предиктора. Для К = 2 классов, fitctree всегда выполняет точный поиск. Чтобы указать конкретный алгоритм, используйте 'AlgorithmForCategorical' аргумент пары имя-значение.
Дополнительные сведения см. в разделе Разделение категориальных предикторов в деревьях классификации.
Пример: 'AlgorithmForCategorical','PCA'
'CategoricalPredictors' - Список категориальных предикторов'all'Список категориальных предикторов, указанный как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
| Вектор положительных целых чисел |
Каждая запись в векторе представляет собой значение индекса, соответствующее столбцу данных предиктора, который содержит категориальную переменную. Значения индекса находятся в диапазоне от 1 до Если |
| Логический вектор |
A |
| Символьная матрица | Каждая строка матрицы является именем предикторной переменной. Имена должны соответствовать записям в PredictorNames. Поместите имена с дополнительными пробелами, чтобы каждая строка символьной матрицы имела одинаковую длину. |
| Строковый массив или массив ячеек символьных векторов | Каждый элемент массива является именем переменной предиктора. Имена должны соответствовать записям в PredictorNames. |
'all' | Все предикторы категоричны. |
По умолчанию, если данные предиктора находятся в таблице (Tbl), fitctree предполагает, что переменная категорична, если она является логическим вектором, неупорядоченным категориальным вектором, символьным массивом, строковым массивом или массивом ячеек символьных векторов. Если данные предиктора являются матрицей (X), fitctree предполагает, что все предикторы непрерывны. Чтобы определить любые другие предикторы как категориальные предикторы, укажите их с помощью 'CategoricalPredictors' аргумент «имя-значение».
Пример: 'CategoricalPredictors','all'
Типы данных: single | double | logical | char | string | cell
'ClassNames' - Названия классов, используемых для обученияИмена классов, используемых для обучения, указанные как категориальный, символьный или строковый массив; логический или числовой вектор; или массив ячеек символьных векторов. 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' и одно из следующих:
Квадратная матрица, где Cost(i,j) - стоимость классификации точки по классу j если его истинный класс i (т.е. строки соответствуют истинному классу, а столбцы соответствуют прогнозируемому классу). Определение порядка классов для соответствующих строк и столбцов Cost, также укажите ClassNames аргумент пары имя-значение.
Структура S имеет два поля: S.ClassNames содержит имена групп в качестве переменной того же типа данных, что и Y, и S.ClassificationCosts содержащий матрицу затрат.
Значение по умолчанию: Cost(i,j)=1 если i~=j, и Cost(i,j)=0 если i=j.
Типы данных: single | double | struct
'MaxDepth' - Максимальная глубина дереваМаксимальная глубина дерева, заданная как разделенная запятыми пара, состоящая из 'MaxDepth' и положительное целое число. Укажите значение для этого аргумента, чтобы вернуть дерево, имеющее меньшее количество уровней и требующее меньшего количества проходов через массив высокого уровня для вычисления. Как правило, алгоритм fitctree выполняет один проход через данные и дополнительный проход для каждого уровня дерева. По умолчанию функция не задает максимальную глубину дерева.
Примечание
Этот параметр применяется только при использовании fitctree на высоких массивах. Дополнительные сведения см. в разделе Массивы Tall.
'MaxNumCategories' - Максимальные уровни категорий10 (по умолчанию) | неотрицательное скалярное значениеМаксимальные уровни категорий, указанные как разделенная запятыми пара, состоящая из 'MaxNumCategories' и неотрицательное скалярное значение. fitctree разбивает категориальный предиктор, используя точный алгоритм поиска, если предиктор имеет максимум MaxNumCategories уровни в разделенном узле. В противном случае fitctree находит наилучшее категориальное разделение с помощью одного из неточных алгоритмов.
Передача небольшого значения может привести к потере точности, а передача большого значения может увеличить время вычислений и перегрузку памяти.
Пример: 'MaxNumCategories',8
'MaxNumSplits' - Максимальное число разделений решенийsize(X,1) - 1 (по умолчанию) | положительное целое числоМаксимальное число разделений решения (или узлов ветви), указанное как пара, разделенная запятыми, состоящая из 'MaxNumSplits' и положительное целое число. fitctree разделения MaxNumSplits или меньше узлов ветви. Дополнительные сведения о разделении см. в разделе Алгоритмы.
Пример: 'MaxNumSplits',5
Типы данных: single | double
'MergeLeaves' - флаг слияния листьев'on' (по умолчанию) | 'off'Флаг слияния листа, заданный как разделенная запятыми пара, состоящая из 'MergeLeaves' и 'on' или 'off'.
Если MergeLeaves является 'on', то fitctree:
Слияние листьев, которые происходят от одного родительского узла и дают сумму значений риска, большую или равную риску, связанному с родительским узлом
Оценивает оптимальную последовательность обрезанных поддеревьев, но не отсекает дерево классификации
В противном случае fitctree не объединяет листья.
Пример: 'MergeLeaves','off'
'MinLeafSize' - Минимальное число наблюдений за конечными узлами1 (по умолчанию) | положительное целое значениеМинимальное число наблюдений за конечными узлами, указанное как пара, разделенная запятыми, состоящая из 'MinLeafSize' и положительное целое значение. Каждый лист имеет не менее MinLeafSize наблюдения за листьями деревьев. Если вы поставляете оба MinParentSize и MinLeafSize, fitctree использует параметр, который дает большие листья: MinParentSize = max(MinParentSize,2*MinLeafSize).
Пример: 'MinLeafSize',3
Типы данных: single | double
'MinParentSize' - Минимальное количество наблюдений узла ветви10 (по умолчанию) | положительное целое значениеМинимальное количество наблюдений узла ветви, указанное как пара, разделенная запятыми, состоящая из 'MinParentSize' и положительное целое значение. Каждый узел ветви в дереве имеет по крайней мере MinParentSize наблюдения. Если вы поставляете оба MinParentSize и MinLeafSize, fitctree использует параметр, который дает большие листья: MinParentSize = max(MinParentSize,2*MinLeafSize).
Пример: 'MinParentSize',8
Типы данных: single | double
'NumBins' - Количество ячеек для числовых предикторов[](пустое) (по умолчанию) | положительный целочисленный скалярКоличество ячеек для числовых предикторов, указанных как разделенная запятыми пара, состоящая из 'NumBins' и положительный целочисленный скаляр.
Если 'NumBins' значение пустое (по умолчанию), затем fitctree не содержит никаких предикторов.
При указании 'NumBins' значение в виде положительного целого скаляра (numBins), то fitctree помещает каждый числовой предиктор максимум в numBins equiprobable bins, а затем выращивает деревья по индексам bin вместо исходных данных.
Количество ячеек может быть меньше numBins если предиктор имеет менее numBins уникальные значения.
fitctree не содержит категориальных предикторов.
При использовании большого набора данных обучения этот параметр объединения ускоряет обучение, но может привести к потенциальному снижению точности. Вы можете попробовать 'NumBins',50 сначала, а затем изменить значение в зависимости от точности и скорости тренировки.
Обученная модель хранит кромки бункера в BinEdges собственность.
Пример: 'NumBins',50
Типы данных: single | double
'NumVariablesToSample' - Количество предикторов, выбираемых случайным образом для каждого разделения'all' (по умолчанию) | положительное целое значениеКоличество предикторов, выбираемых случайным образом для каждого разделения, указанного как пара, разделенная запятыми, состоящая из 'NumVariablesToSample' и положительное целое значение. Кроме того, можно указать 'all' для использования всех доступных предикторов.
Если обучающие данные включают много предикторов и требуется проанализировать важность предиктора, укажите 'NumVariablesToSample' как 'all'. В противном случае программное обеспечение может не выбирать некоторые предикторы, недооценивая их важность.
Для воспроизведения случайных выборок необходимо задать начальное число генератора случайных чисел с помощью rng и указать 'Reproducible',true.
Пример: 'NumVariablesToSample',3
Типы данных: char | string | single | double
'PredictorNames' - Имена переменных предиктораИмена переменных предиктора, заданные как строковый массив уникальных имен или массив ячеек уникальных векторов символов. Функциональные возможности PredictorNames зависит от способа ввода данных обучения.
Если вы поставляете X и Y, то вы можете использовать PredictorNames назначение имен переменным предиктора в X.
Порядок имен в PredictorNames должен соответствовать порядку столбцов X. То есть PredictorNames{1} является именем X(:,1), PredictorNames{2} является именем X(:,2)и так далее. Также, size(X,2) и numel(PredictorNames) должно быть равным.
По умолчанию PredictorNames является {'x1','x2',...}.
Если вы поставляете Tbl, то вы можете использовать PredictorNames чтобы выбрать, какие переменные предиктора использовать в обучении. То есть fitctree использует только переменные предиктора в PredictorNames и переменную ответа во время обучения.
PredictorNames должен быть подмножеством Tbl.Properties.VariableNames и не может включать имя переменной ответа.
По умолчанию PredictorNames содержит имена всех переменных предиктора.
Хорошей практикой является определение предикторов для обучения с использованием 'PredictorNames' или formulaно не оба.
Пример: 'PredictorNames',{'SepalLength','SepalWidth','PetalLength','PetalWidth'}
Типы данных: string | cell
'PredictorSelection' - Алгоритм, используемый для выбора наилучшего предсказателя разделения'allsplits' (по умолчанию) | 'curvature' | 'interaction-curvature'Алгоритм, используемый для выбора наилучшего предиктора разделения в каждом узле, указанного как пара, разделенная запятыми, состоящая из 'PredictorSelection' и значение в этой таблице.
| Стоимость | Описание |
|---|---|
'allsplits' | Стандартная корзина - выбирает предиктор разделения, который максимизирует выигрыш критерия разделения по всем возможным разделениям всех предикторов [1]. |
'curvature' | Тест кривизны - выбирает расщепленный предиктор, который минимизирует значение p тестов независимости хи-квадрат между каждым предиктором и ответом [4]. Скорость обучения аналогична стандартной CART. |
'interaction-curvature' | Тест взаимодействия - выбирает расщепленный предиктор, который минимизирует p-значение тестов независимости хи-квадрат между каждым предиктором и ответом, и который минимизирует p-значение критерия независимости хи-квадрат между каждой парой предикторов и ответом [3]. Скорость обучения может быть ниже стандартной CART. |
Для 'curvature' и 'interaction-curvature', если все тесты дают значения p больше 0,05, то fitctree останавливает разделение узлов.
Совет
Стандартная CART имеет тенденцию выбирать разделенные предикторы, содержащие много различных значений, например непрерывных переменных, по сравнению с теми, которые содержат несколько различных значений, например категориальных переменных [4]. Рекомендуется задать проверку кривизны или взаимодействия, если выполняются следующие условия:
Если существуют предикторы, которые имеют относительно меньше отличных значений, чем другие предикторы, например, если набор данных предиктора неоднороден.
Если анализ важности предиктора является вашей целью. Для получения дополнительной информации об оценке важности предиктора см. predictorImportance и Введение в выбор элементов.
Деревья, выращенные с использованием стандартной CART, не чувствительны к переменным взаимодействиям предиктора. Кроме того, такие деревья с меньшей вероятностью идентифицируют важные переменные в присутствии многих неактуальных предикторов, чем применение теста взаимодействия. Поэтому для учета предикторных взаимодействий и определения переменных важности при наличии множества неактуальных переменных укажите тест взаимодействия [3].
На скорость прогнозирования не влияет значение 'PredictorSelection'.
Для получения подробной информации о том, как fitctree выбирает разделенные предикторы, см. Правила разделения узлов и Выберите метод выбора разделенного предиктора.
Пример: 'PredictorSelection','curvature'
'Prior' - Предварительные вероятности'empirical' (по умолчанию) | 'uniform' | вектор скалярных значений | структураПредварительные вероятности для каждого класса, определенные как одна из следующих:
Вектор символа или строковый скаляр.
Вектор (одно скалярное значение для каждого класса). Определение порядка классов для соответствующих элементов 'Prior', установите 'ClassNames' аргумент «имя-значение».
Структура S с двумя полями.
S.ClassNames содержит имена классов в качестве переменной того же типа, что и переменная ответа в Y или Tbl.
S.ClassProbs содержит вектор соответствующих вероятностей.
fitctree нормализует веса в каждом классе ('Weights') для суммирования значения предшествующей вероятности соответствующего класса.
Пример: 'Prior','uniform'
Типы данных: char | string | single | double | struct
'Prune' - Флаг для оценки оптимальной последовательности обрезанных поддеревьев'on' (по умолчанию) | 'off'Флаг для оценки оптимальной последовательности обрезанных поддеревьев, указанных как разделенная запятыми пара, состоящая из 'Prune' и 'on' или 'off'.
Если Prune является 'on', то fitctree выращивает дерево классификации без обрезки, но оценивает оптимальную последовательность обрезанных поддеревьев. В противном случае fitctree выращивает дерево классификации без оценки оптимальной последовательности обрезанных поддеревьев.
Обрезать обученного ClassificationTree модель, передайте ее в prune.
Пример: 'Prune','off'
'PruneCriterion' - Критерий отсечения'error' (по умолчанию) | 'impurity'Критерий отсечения, указанный как пара, разделенная запятыми, состоящая из 'PruneCriterion' и 'error' или 'impurity'.
При указании 'impurity', то fitctree использует измерение примеси, указанное 'SplitCriterion' аргумент пары имя-значение.
Дополнительные сведения см. в разделе Примесь и ошибка узла.
Пример: 'PruneCriterion','impurity'
'Reproducible' - Флаг для обеспечения воспроизводимостиfalse (логический 0) (по умолчанию) | true (логический 1)Флаг для обеспечения воспроизводимости при повторных запусках обучения модели, указанной как пара, разделенная запятыми, состоящая из 'Reproducible' и либо false или true.
Если 'NumVariablesToSample' не является 'all'затем программное обеспечение выбирает предсказатели случайным образом для каждого разделения. Для воспроизведения случайных выборок необходимо указать 'Reproducible',true и установить начальное число генератора случайных чисел с помощью rng. Обратите внимание, что настройка 'Reproducible' кому true может замедлить тренировку.
Пример: 'Reproducible',true
Типы данных: logical
'ResponseName' - Имя переменной ответа'Y' (по умолчанию) | символьный вектор | строковый скалярИмя переменной ответа, указанное как пара, разделенная запятыми, состоящая из 'ResponseName' и вектор символов или строковый скаляр, представляющий имя ответной переменной.
Эта пара имя-значение недопустима при использовании ResponseVarName или formula входные аргументы.
Пример: 'ResponseName','IrisType'
Типы данных: char | string
'ScoreTransform' - Преобразование баллов'none' (по умолчанию) | 'doublelogit' | 'invlogit' | 'ismax' | 'logit' | дескриптор функции |...Преобразование оценки, указанное как вектор символа, скаляр строки или дескриптор функции.
В этой таблице представлены доступные векторы символов и строковые скаляры.
| Стоимость | Описание |
|---|---|
'doublelogit' | 1/( 1 + e-2x) |
'invlogit' | log (x/( 1 - x)) |
'ismax' | Устанавливает балл для класса с наибольшим баллом в 1 и устанавливает балл для всех остальных классов в 0 |
'logit' | 1/( 1 + e-x) |
'none' или 'identity' | x (без преобразования) |
'sign' | -1 для x < 0 0 для x = 0 1 для x > 0 |
'symmetric' | 2x – 1 |
'symmetricismax' | Устанавливает балл для класса с наибольшим баллом в 1 и устанавливает балл для всех остальных классов в -1 |
'symmetriclogit' | 2/( 1 + e-x) - 1 |
Для функции MATLAB или определяемой функции используйте ее дескриптор функции для преобразования оценки. Дескриптор функции должен принимать матрицу (исходные баллы) и возвращать матрицу того же размера (преобразованные баллы).
Пример: 'ScoreTransform','logit'
Типы данных: char | string | function_handle
'SplitCriterion' - Критерий разделения'gdi' (по умолчанию) | 'twoing' | 'deviance' Критерий разделения, указанный как разделенная запятыми пара, состоящая из 'SplitCriterion' и 'gdi'(индекс разнообразия Джини), 'twoing' для двоякого правила, или 'deviance' для максимального уменьшения отклонения (также известного как перекрестная энтропия).
Дополнительные сведения см. в разделе Примесь и ошибка узла.
Пример: 'SplitCriterion','deviance'
'Surrogate' - Флаг разделения суррогатного решения'off' (по умолчанию) | 'on' | 'all' | положительное целое значениеФлаг разделения суррогатного решения, определяемый как разделенная запятыми пара, состоящая из 'Surrogate' и 'on', 'off', 'all'или положительное целое значение.
Если установлено значение 'on', fitctree находит не более 10 суррогатных расщеплений в каждом узле ветви.
Если установлено значение 'all', fitctree находит все суррогатные разделения в каждом узле ветви. 'all' установка может использовать значительное время и память.
Если задано положительное целое значение, fitctree находит самое большее указанное количество суррогатных разбиений в каждом узле ветви.
Используйте суррогатные разделения для повышения точности прогнозов для данных с отсутствующими значениями. Параметр также позволяет вычислить показатели прогнозирующей связи между предикторами. Дополнительные сведения см. в разделе Правила разделения узлов.
Пример: 'Surrogate','on'
Типы данных: single | double | char | string
'Weights' - Наблюдательные весаones(size(X,1),1) (по умолчанию) | вектор скалярных значений | имя переменной в TblВеса наблюдения, указанные как разделенная запятыми пара, состоящая из 'Weights' и вектор скалярных значений или имя переменной в Tbl. Программа взвешивает наблюдения в каждой строке X или Tbl с соответствующим значением в Weights. Размер Weights должно равняться количеству строк в X или Tbl.
Если входные данные указаны как таблица Tbl, то Weights может быть именем переменной в Tbl содержит числовой вектор. В этом случае необходимо указать Weights в виде вектора символов или строкового скаляра. Например, если вектор весов W хранится как Tbl.W, затем укажите его как 'W'. В противном случае программа обрабатывает все столбцы Tbl, в том числе W, в качестве предикторов при обучении модели.
fitctree нормализует веса в каждом классе для суммирования со значением предшествующей вероятности соответствующего класса.
Типы данных: single | double | char | string
'CrossVal' - Флаг для наращивания дерева решений с перекрестной проверкой'off' (по умолчанию) | 'on' Флаг для наращивания перекрестно проверенного дерева решений, указанного как пара, разделенная запятыми, состоящая из 'CrossVal' и 'on' или 'off'.
Если 'on', fitctree вырастает перекрестно проверенное дерево решений с 10 складками. Этот параметр перекрестной проверки можно переопределить с помощью одного из следующих параметров: 'KFold', 'Holdout', 'Leaveout', или 'CVPartition' аргументы пары имя-значение. Можно использовать только один из этих четырех аргументов одновременно при создании перекрестно проверенного дерева.
Также можно выполнить перекрестную проверку tree позже с использованием crossval способ.
Пример: 'CrossVal','on'
'CVPartition' - Раздел для дерева с перекрестной проверкойcvpartition объектРаздел для использования в кросс-проверенном дереве, указанном как разделенная запятыми пара, состоящая из 'CVPartition' и объект, созданный с помощью cvpartition.
Если вы используете 'CVPartition', вы не можете использовать ни один из 'KFold', 'Holdout', или 'Leaveout' аргументы пары имя-значение.
'Holdout' - Доля данных для проверки отсутствия0 (по умолчанию) | скалярное значение в диапазоне [0,1]Доля данных, используемых для проверки удержания, указанная как пара, разделенная запятыми, состоящая из 'Holdout' и скалярное значение в диапазоне [0,1]. Проверка отсутствия проверяет указанную часть данных и использует остальные данные для обучения.
Если вы используете 'Holdout', вы не можете использовать ни один из 'CVPartition', 'KFold', или 'Leaveout' аргументы пары имя-значение.
Пример: 'Holdout',0.1
Типы данных: single | double
'KFold' - Количество складок10 (по умолчанию) | положительное целое значение больше 1Количество складок для использования в классификаторе с перекрестной проверкой, указанном как пара, разделенная запятыми, состоящая из 'KFold' и положительное целое значение больше 1. При указании, например, 'KFold',k, затем программное обеспечение:
Случайное разбиение данных на k наборов
Для каждого набора резервирует набор в качестве данных проверки и обучает модель, используя другие k-1 наборов
Сохраняет k компактные, обученные модели в ячейках k-by-1 клеточный вектор в Trained свойства перекрестной проверенной модели.
Для создания перекрестно проверенной модели можно использовать только одну из следующих четырех опций: CVPartition, Holdout, KFold, или Leaveout.
Пример: 'KFold',8
Типы данных: single | double
'Leaveout' - Флаг перекрестной проверки «оставить один»'off' (по умолчанию) | 'on'Флаг перекрестной проверки, определяемый как разделенная запятыми пара, состоящая из 'Leaveout' и 'on' или 'off'. Определить 'on' для использования перекрестной проверки «оставить один».
Если вы используете 'Leaveout', вы не можете использовать ни один из 'CVPartition', 'Holdout', или 'KFold' аргументы пары имя-значение.
Пример: 'Leaveout','on'
'OptimizeHyperparameters' - Параметры для оптимизации'none' (по умолчанию) | 'auto' | 'all' | строковый массив или массив ячеек допустимых имен параметров | вектор optimizableVariable объектыПараметры для оптимизации, указанные как пара, разделенная запятыми, состоящая из 'OptimizeHyperparameters' и одно из следующих:
'none' - Не оптимизировать.
'auto' - Использование {'MinLeafSize'}
'all' - Оптимизируйте все подходящие параметры.
Строковый массив или массив ячеек допустимых имен параметров
Вектор optimizableVariable объекты, обычно выходные данные hyperparameters
Оптимизация пытается минимизировать потери при перекрестной проверке (ошибка) для fitctree путем изменения параметров. Сведения о потере при перекрестной проверке (хотя и в другом контексте) см. в разделе Потеря классификации. Для управления типом перекрестной проверки и другими аспектами оптимизации используйте HyperparameterOptimizationOptions пара имя-значение.
Примечание
'OptimizeHyperparameters' значения переопределяют любые значения, заданные с помощью других аргументов пары «имя-значение». Например, настройка 'OptimizeHyperparameters' кому 'auto' вызывает 'auto' значения для применения.
Подходящие параметры для fitctree являются:
MaxNumSplits — fitctree поиск среди целых чисел, по умолчанию с логарифмическим масштабированием в диапазоне [1,max(2,NumObservations-1)].
MinLeafSize — fitctree поиск среди целых чисел, по умолчанию с логарифмическим масштабированием в диапазоне [1,max(2,floor(NumObservations/2))].
SplitCriterion - Для двух классов, fitctree поиск среди 'gdi' и 'deviance'. Для трех или более классов, fitctree также ищет среди 'twoing'.
NumVariablesToSample — fitctree не оптимизируется над этим гиперпараметром. Если вы проходите NumVariablesToSample как имя параметра, fitctree просто использует полное количество предикторов. Однако fitcensemble оптимизируется по этому гиперпараметру.
Установка параметров, не используемых по умолчанию, путем передачи вектора optimizableVariable объекты, не имеющие значений по умолчанию. Например,
load fisheriris params = hyperparameters('fitctree',meas,species); params(1).Range = [1,30];
Проход params как значение OptimizeHyperparameters.
По умолчанию итеративное отображение отображается в командной строке, а графики отображаются в соответствии с количеством гиперпараметров в оптимизации. Для оптимизации и графиков целевой функцией является log ( 1 + потери при перекрестной проверке) для регрессии и коэффициент неправильной классификации для классификации. Для управления итеративным отображением установите Verbose области 'HyperparameterOptimizationOptions' аргумент пары имя-значение. Для управления графиками установите ShowPlots области 'HyperparameterOptimizationOptions' аргумент пары имя-значение.
Пример см. в разделе Оптимизация дерева классификации.
Пример: 'auto'
'HyperparameterOptimizationOptions' - Варианты оптимизацииОпции оптимизации, указанные как разделенная запятыми пара, состоящая из 'HyperparameterOptimizationOptions' и структура. Этот аргумент изменяет эффект OptimizeHyperparameters аргумент пары имя-значение. Все поля в структуре являются необязательными.
| Имя поля | Ценности | Дефолт |
|---|---|---|
Optimizer |
| 'bayesopt' |
AcquisitionFunctionName |
Функции приобретения, имена которых включают | 'expected-improvement-per-second-plus' |
MaxObjectiveEvaluations | Максимальное количество оценок целевой функции. | 30 для 'bayesopt' или 'randomsearch'и вся сетка для 'gridsearch' |
MaxTime | Ограничение по времени, указанное как положительный реал. Ограничение по времени в секундах, измеренное | Inf |
NumGridDivisions | Для 'gridsearch', количество значений в каждом измерении. Значение может быть вектором положительных целых чисел, дающим количество значений для каждого измерения, или скаляром, который применяется ко всем измерениям. Это поле игнорируется для категориальных переменных. | 10 |
ShowPlots | Логическое значение, указывающее, показывать ли графики. Если trueв этом поле отображается наилучшее значение целевой функции относительно номера итерации. Если имеется один или два параметра оптимизации, и если Optimizer является 'bayesopt', то ShowPlots также строит график модели целевой функции по параметрам. | true |
SaveIntermediateResults | Логическое значение, указывающее, сохранять ли результаты при Optimizer является 'bayesopt'. Если true, это поле перезаписывает переменную рабочей области с именем 'BayesoptResults' на каждой итерации. Переменная является BayesianOptimization объект. | false |
Verbose | Отображение в командной строке.
Для получения более подробной информации см. | 1 |
UseParallel | Логическое значение, указывающее, выполнять ли байесовскую оптимизацию параллельно, что требует Toolbox™ параллельных вычислений. Из-за непродуктивности параллельной синхронизации параллельная байесовская оптимизация не обязательно дает воспроизводимые результаты. Дополнительные сведения см. в разделе Параллельная байесовская оптимизация. | false |
Repartition | Логическое значение, указывающее, следует ли перераспределять перекрестную проверку при каждой итерации. Если
| false |
| Используйте не более одного из следующих трех имен полей. | ||
CVPartition | A cvpartition объект, созданный cvpartition. | 'Kfold',5 если не указано какое-либо поле перекрестной проверки |
Holdout | Скаляр в диапазоне (0,1) представляет собой удерживающую фракцию. | |
Kfold | Целое число больше 1. | |
Пример: 'HyperparameterOptimizationOptions',struct('MaxObjectiveEvaluations',60)
Типы данных: struct
tree - Дерево классификацииДерево классификации, возвращаемое как объект дерева классификации.
Использование 'CrossVal', 'KFold', 'Holdout', 'Leaveout', или 'CVPartition' параметры приводят к созданию дерева класса ClassificationPartitionedModel. Невозможно использовать секционированное дерево для прогнозирования, поэтому этот тип дерева не имеет predict способ. Вместо этого используйте kfoldPredict прогнозировать ответы для наблюдений, не используемых для обучения.
В противном случае tree имеет класс ClassificationTree, и вы можете использовать predict способ выполнения прогнозов.
Тест кривизны является статистическим тестом, оценивающим нулевую гипотезу о том, что две переменные не связаны.
Тест кривизны между предикторными переменными x и y проводят с использованием этого процесса.
Если x является непрерывным, то разделите его на его квартили. Создайте номинальную переменную, которая содержит данные наблюдений в соответствии с тем, какой раздел раздела они занимают. Если значения отсутствуют, создайте для них дополнительное складское место.
Для каждого уровня в секционированном предикторе j = 1...J и классе в ответе k = 1,...,K вычислите взвешенную долю наблюдений в классе k
wi - вес наблюдения i, , I - индикаторная функция, а n - размер выборки. Если все наблюдения имеют одинаковый вес, то njkn, где njk - количество наблюдений на уровне j предсказателя, которые находятся в классе k.
Вычисление статистики теста
k) 2λ ^ j + λ ^ + k
, то есть предельная вероятность наблюдения за предиктором на уровне j. , это предельная вероятность наблюдения класса k. Если n достаточно велико, то t распределяется как δ 2 с (K-1) (J-1) степенями свободы.
Если значение p для теста меньше 0,05, то отклоните нулевую гипотезу об отсутствии связи между x и y.
При определении наилучшего предиктора разделения на каждом узле стандартный алгоритм CART предпочитает выбирать непрерывные предикторы, которые имеют много уровней. Иногда такой выбор может быть ложным и может также маскировать более важные предикторы, которые имеют меньше уровней, такие как категориальные предикторы.
Тест кривизны может быть применен вместо стандартной CART, чтобы определить наилучший предиктор разделения в каждом узле. В этом случае лучшей разбиенной прогнозирующей переменной является та, которая минимизирует значимые значения p (те, которые меньше 0,05) тестов кривизны между каждым предиктором и переменной отклика. Такой выбор устойчив к количеству уровней в отдельных предикторах.
Примечание
Если уровни предиктора являются чистыми для конкретного класса, то fitctree объединяет эти уровни. Следовательно, на этапе 3 алгоритма J может быть меньше фактического количества уровней в предикторе. Например, если x имеет 4 уровня, и все наблюдения в ячейках 1 и 2 принадлежат классу 1, то эти уровни являются чистыми для класса 1. Следовательно, fitctree объединяет наблюдения в ячейках 1 и 2, и J уменьшается до 3.
Дополнительные сведения о применении теста кривизны к растущим деревьям классификации см. в разделах Правила разделения узлов и [4].
Дерево решений разбивает узлы на основании либо примеси, либо ошибки узла.
Примесь означает одну из нескольких вещей, в зависимости от вашего выбора SplitCriterion аргумент пары имя-значение:
Индекс разнообразия Джини (gdi) - индекс Джини узла равен
),
где сумма превышает классы i в узле, и p (i) - наблюдаемая доля классов с классом i, которые достигают узла. Узел только с одним классом (чистый узел) имеет индекс Джини0; в противном случае индекс Джини является положительным. Таким образом, индекс Джини является мерой примеси узла.
Девианс ('deviance') - Если p (i) определено так же, как для индекса Джини, отклонение узла равно
i).
Чистый узел имеет отклонение 0; в противном случае отклонение является положительным.
Двоякое правило ('twoing') - Twoing не является мерой чистоты узла, но является другой мерой для решения, как разделить узел. Пусть L (i) обозначает долю членов класса i в левом дочернем узле после разделения, а R (i) обозначает долю членов класса i в правом дочернем узле после разделения. Выберите критерий разделения для максимизации
(i) |) 2,
где P (L) и P (R) - доли наблюдений, которые делятся влево и вправо соответственно. Если выражение велико, разделение делает каждый дочерний узел более чистым. Аналогично, если выражение мало, разделение делает каждый дочерний узел похожим друг на друга и, следовательно, похожим на родительский. Разделение не увеличивало чистоту узла.
Ошибка узла - ошибка узла - это доля неправильно классифицированных классов в узле. Если j - класс с наибольшим количеством обучающих выборок в узле, ошибка узла
1 - p (j).
Тест взаимодействия является статистическим тестом, который оценивает нулевую гипотезу об отсутствии взаимодействия между парой переменных предиктора и переменной ответа.
Тест взаимодействия, оценивающий связь между предикторными переменными x1 и x2 относительно y, проводится с использованием этого процесса.
Если x1 или x2 непрерывны, то эта переменная разделяется на квартили. Создайте номинальную переменную, которая содержит данные наблюдений в соответствии с тем, какой раздел раздела они занимают. Если значения отсутствуют, создайте для них дополнительное складское место.
Создайте номинальную переменную z с J = J1J2 уровнями, которая присваивает индекс наблюдению i в соответствии с уровнями x1 и x2. Удалите любые уровни z, которые не соответствуют наблюдениям.
Выполните проверку кривизны между z и y.
При росте деревьев принятия решений, если существуют важные взаимодействия между парами предикторов, но также есть много других менее важных предикторов в данных, то стандартная CART имеет тенденцию пропускать важные взаимодействия. Однако проведение тестов кривизны и взаимодействия для выбора предиктора вместо этого может улучшить обнаружение важных взаимодействий, которые могут дать более точные деревья решений.
Дополнительные сведения о том, как тест взаимодействия применяется к растущим деревьям решений, см. в разделах Тест кривизны, Правила разделения узлов и [3].
Прогностическая мера ассоциации - это значение, указывающее на сходство между правилами принятия решений, разделяющими наблюдения. Среди всех возможных разделений решений, которые сравниваются с оптимальным разделением (найденным при выращивании дерева), лучшее разделение суррогатного решения дает максимальную прогностическую меру ассоциации. Второй по величине суррогатный раскол имеет вторую по величине прогностическую меру ассоциации.
Предположим, что xj и xk являются прогнозирующими переменными j и k, соответственно, и j ≠ k. В узле t прогностическая мера ассоциации между оптимальным split xj < u и суррогатным split xk < v равна
min (PL, PR).
PL - доля наблюдений в узле t, такая, что xj < u. Нижний индекс L обозначает левый нижестоящий элемент узла t.
PR - это доля наблюдений в узле t, такая, что xj ≥ u. Нижний индекс R обозначает правый нижестоящий элемент узла t.
- доля наблюдений на узле t, такая, что xj < u и xk < v
- это доля наблюдений в узле t, так что xj ≥ u и xk ≥ v.
Наблюдения с отсутствующими значениями для xj или xk не способствуют расчетам пропорций.
λ jk - значение в (- ∞,1]. Если λ jk > 0, то xk < v является стоящим суррогатным разделением для xj < u.
Разделение суррогатного решения является альтернативой оптимальному разделению решения в данном узле дерева решений. Оптимальный раскол находят, выращивая дерево; суррогатное разделение использует аналогичную или коррелированную предикторную переменную и критерий разделения.
Когда значение оптимального расщепленного предиктора для наблюдения отсутствует, наблюдение посылается в левый или правый дочерний узел с использованием наилучшего суррогатного предиктора. Когда значение наилучшего суррогатного предиктора разделения для наблюдения также отсутствует, наблюдение посылается в левый или правый дочерний узел с использованием второго наилучшего суррогатного предиктора и так далее. Деления кандидатов сортируются в порядке убывания по их прогнозирующей мере ассоциации.
По умолчанию Prune является 'on'. Однако эта спецификация не удаляет дерево классификации. Чтобы удалить обученное дерево классификации, передайте дерево классификации в prune.
После обучения модели можно создать код C/C + +, который предсказывает метки для новых данных. Для создания кода C/C + + требуется Coder™ MATLAB. Дополнительные сведения см. в разделе Введение в создание кода .
fitctree использует эти процессы для определения способа разделения узла t.
Для стандартной CART (то есть, если PredictorSelection является 'allpairs') и для всех предикторов xi, i = 1,..., p:
fitctree вычисляет взвешенную примесь узла t. Для получения информации о поддерживаемых измерениях примесей см. SplitCriterion.
fitctree оценивает вероятность того, что наблюдение находится в узле t, используя
=∑j∈Twj.
wj - вес наблюдения j, а T - набор всех показателей наблюдения в узле t. Если не указать Prior или Weights, то wj = 1/n, где n - размер выборки.
fitctree сортирует xi в порядке возрастания. Каждый элемент отсортированного предиктора является кандидатом на разделение или точкой отсечения. fitctree сохраняет все индексы, соответствующие отсутствующим значениям, в наборе TU, который является неразделенным набором.
fitctree определяет наилучший способ разделения узла t с использованием xi путем максимизации коэффициента усиления примесей (ΔI) по всем кандидатам на разделение. То есть для всех кандидатов на разделение в xi:
fitctree разбивает наблюдения в узле t на левый и правый дочерние узлы (tL и tR соответственно).
fitctree вычисляет ΔI. Предположим, что для конкретного кандидата разделения tL и tR содержат индексы наблюдения в наборах TL и TR соответственно.
Если xi не содержит отсутствующих значений, то коэффициент усиления примесей для текущего кандидата на разделение равен
P (TR) итР.
Если xi содержит пропущенные значения, то, если предположить, что наблюдения отсутствуют случайным образом, прирост примеси равен
− P (TR) itR.
T - TU - набор всех показателей наблюдения в узле t, которые не отсутствуют.
Если используется разделение суррогатного решения, то:
fitctree вычисляет прогностические показатели связи между разделением решения xj < u и всеми возможными разделениями решения xk < v, j ≠ k.
fitctree сортирует возможные разбиения альтернативных решений в порядке убывания по их прогностической мере связи с оптимальным разбиением. Суррогатный раскол - это раскол решения, дающий наибольшую меру.
fitctree определяет назначения дочерних узлов для наблюдений с отсутствующим значением для xi с помощью суррогатного разделения. Если суррогатный предиктор также содержит отсутствующее значение, то fitctree использует разделение решения со второй по величине мерой и так далее, пока не будет других суррогатов. Это возможно для fitctree разделить два разных наблюдения в узле t с использованием двух разных суррогатных расщеплений. Например, предположим, что предикторы x1 и x2 являются лучшими и вторыми лучшими суррогатами, соответственно, для предиктора xi, i ∉ {1,2}, в узле T. Если наблюдение m предиктора xi отсутствует (т.е. xmi отсутствует), но xm1 не отсутствует, то x1 является суррогатным предиктором для наблюдения xmi. Если наблюдения x (m + 1), i и x (m + 1), 1 отсутствуют, но x (m + 1), 2 не пропущен, то x2 является суррогатным предиктором для наблюдения m + 1.
fitctree использует соответствующую формулу усиления примеси. То есть, если fitctree не удалось назначить все отсутствующие наблюдения в узле t дочерним узлам с использованием суррогатных расщеплений, тогда коэффициент усиления примесей равен ΔIU. В противном случае fitctree использует ΔI для усиления примеси.
fitctree выбирает кандидата, который дает наибольший прирост примесей.
fitctree разбивает предикторную переменную в точке отсечения, которая максимизирует прирост примеси.
Для испытания на кривизну (т.е. если PredictorSelection является 'curvature'):
fitctree проводит тесты кривизны между каждым предиктором и ответом на наблюдения в узле t.
Если все p-значения не менее 0,05, то fitctree не разделяет узел t.
Если существует минимальное значение p, то fitctree выбирает соответствующий предиктор для разделения узла t.
Если более одного значения p равно нулю из-за неполноты, то fitctree применяет стандартную CART к соответствующим предикторам для выбора разделенного предиктора.
Если fitctree выбирает разделенный предиктор, затем использует стандартную CART для выбора точки отсечения (см. шаг 4 в стандартном процессе CART).
Для теста взаимодействия (то есть, если PredictorSelection является 'interaction-curvature' ):
Для наблюдений в узле t, fitctree проводит тесты кривизны между каждым предиктором и тесты ответа и взаимодействия между каждой парой предикторов и ответом.
Если все p-значения не менее 0,05, то fitctree не разделяет узел t.
Если существует минимальное значение p и оно является результатом теста кривизны, то fitctree выбирает соответствующий предиктор для разделения узла t.
Если существует минимальное значение p и оно является результатом теста взаимодействия, то fitctree выбирает расщепленный предиктор с использованием стандартной CART на соответствующей паре предикторов.
Если более одного значения p равно нулю из-за неполноты, то fitctree применяет стандартную CART к соответствующим предикторам для выбора разделенного предиктора.
Если fitctree выбирает разделенный предиктор, затем использует стандартную CART для выбора точки отсечения (см. шаг 4 в стандартном процессе CART).
Если MergeLeaves является 'on' и PruneCriterion является 'error' (которые являются значениями по умолчанию для этих аргументов пары имя-значение), то программа применяет обрезку только к листьям и используя ошибку классификации. Эта спецификация равносильна слиянию листьев, которые имеют самый популярный класс на лист.
Приспосабливать MaxNumSplits, fitctree разбивает все узлы на текущем уровне, а затем подсчитывает количество узлов ветвления. Слой - это набор узлов, равноудаленных от корневого узла. Если число узлов ветви превышает MaxNumSplits, fitctree выполните следующую процедуру:
Определите, сколько узлов ветви в текущем слое должно быть не разделено, чтобы их было не больше MaxNumSplits узлы ветвей.
Сортировка узлов ветвей по их доходам от примесей.
Отмена разделения числа наименее успешных ветвей.
Верните дерево решений, выращенное до сих пор.
Эта процедура позволяет получить максимально сбалансированные деревья.
Программное обеспечение разделяет узлы ответвлений на уровни до тех пор, пока не произойдет по меньшей мере одно из следующих событий:
Есть MaxNumSplits узлы ветвей.
Предлагаемое разделение приводит к тому, что число наблюдений по крайней мере в одном узле ветви меньше MinParentSize.
Предлагаемое разделение приводит к тому, что число наблюдений по крайней мере в одном конечном узле меньше MinLeafSize.
Алгоритм не может найти хорошее разделение в пределах слоя (т.е. критерий отсечения (см. PruneCriterion), не улучшает все предлагаемые разделения в слое). Особый случай - когда все узлы являются чистыми (т.е. все наблюдения в узле имеют одинаковый класс).
Для значений 'curvature' или 'interaction-curvature' из PredictorSelectionвсе тесты дают значения p, превышающие 0,05.
MaxNumSplits и MinLeafSize не влияют на разделение значений по умолчанию. Поэтому, если установить 'MaxNumSplits', разделение может прекратиться из-за значения MinParentSize, до MaxNumSplits происходят расколы.
Для двухъядерных систем и выше, fitctree параллелизует деревья принятия обучающих решений с использованием стандартных блоков Intel ® Threading Building Blocks (TBB). Подробные сведения о TBB Intel см. в разделе https://software.intel.com/en-us/intel-tbb.
[1] Брейман, Л., Дж. Фридман, Р. Ольшен и К. Стоун. Деревья классификации и регрессии. Бока Ратон, FL: CRC Press, 1984.
[2] Копперсмит, Д., С. Дж. Хон и Дж. Р. М. Хоскинг. «Разбиение номинальных атрибутов в деревьях решений». Data Mining and Knowledge Discovery, Vol. 3, 1999, pp. 197-217.
[3] Loh, W.Y. «Регрессионные деревья с несмещенным выбором переменных и обнаружением взаимодействия». Statistica Sinica, Vol. 12, 2002, pp. 361-386.
[4] Ло, У.Я. и Ю.С. Ших. «Разбить методы выбора для деревьев классификации». Statistica Sinica, том 7, 1997, стр. 815-840.
Примечания и ограничения по использованию:
Поддерживаются следующие синтаксисы:
tree = fitctree(Tbl,Y)
tree = fitctree(X,Y)
tree = fitctree(___,Name,Value)
[tree,FitInfo,HyperparameterOptimizationResults] = fitctree(___,Name,Value) — fitctree возвращает дополнительные выходные аргументы FitInfo и HyperparameterOptimizationResults при указании 'OptimizeHyperparameters' аргумент пары имя-значение.
FitInfo выходной аргумент является пустым массивом структуры, зарезервированным в настоящее время для возможного использования в будущем.
HyperparameterOptimizationResults выходной аргумент является BayesianOptimization объект или таблица гиперпараметров со связанными значениями, описывающими оптимизацию гиперпараметров с перекрестной проверкой.
'HyperparameterOptimizationResults' является непустым, когда 'OptimizeHyperparameters' аргумент пары «имя-значение» не является пустым во время создания модели. Значения в 'HyperparameterOptimizationResults' зависит от значения, указанного для 'HyperparameterOptimizationOptions' аргумент пары имя-значение при создании модели.
При указании 'bayesopt' (по умолчанию), то HyperparameterOptimizationResults является объектом класса BayesianOptimization.
При указании 'gridsearch' или 'randomsearch', то HyperparameterOptimizationResults - таблица используемых гиперпараметров, наблюдаемых значений целевой функции (потери перекрестной проверки) и ранга наблюдений от самого низкого (лучший) до самого высокого (худший).
Поддерживаемые аргументы пары имя-значение и любые различия:
'AlgorithmForCategorical'
'CategoricalPredictors'
'ClassNames'
'Cost'
'HyperparameterOptimizationOptions' - Для перекрестной проверки поддерживается только оптимизация по высоте 'Holdout' проверка. По умолчанию программа выбирает и резервирует 20% данных в качестве данных проверки отсутствия и обучает модель, используя остальные данные. С помощью этого аргумента можно указать другое значение для удерживаемой дроби. Например, укажите 'HyperparameterOptimizationOptions',struct('Holdout',0.3) зарезервировать 30% данных в качестве данных проверки.
'MaxNumCategories'
'MaxNumSplits'- для оптимизации роста, fitctree поиск среди целых чисел, по умолчанию с логарифмическим масштабированием в диапазоне [1,max(2,min(10000,NumObservations-1))].
'MergeLeaves'
'MinLeafSize'
'MinParentSize'
'NumVariablesToSample'
'OptimizeHyperparameters'
'PredictorNames'
'Prior'
'ResponseName'
'ScoreTransform'
'SplitCriterion'
'Weights'
Этот дополнительный аргумент пары имя-значение относится только к массивам tall:
'MaxDepth' - положительное целое число, указывающее максимальную глубину дерева вывода. Укажите значение для этого аргумента, чтобы вернуть дерево, имеющее меньшее количество уровней и требующее меньшего количества проходов через массив высокого уровня для вычисления. Как правило, алгоритм fitctree выполняет один проход через данные и дополнительный проход для каждого уровня дерева. По умолчанию функция не задает максимальную глубину дерева.
Дополнительные сведения см. в разделе Массивы Tall.
Чтобы выполнить параллельную оптимизацию гиперпараметров, используйте 'HyperparameterOptimizationOptions', struct('UseParallel',true) аргумент name-value в вызове этой функции.
Дополнительные сведения об оптимизации параллельных гиперпараметров см. в разделе Параллельная байесовская оптимизация.
Общие сведения о параллельных вычислениях см. в разделе Запуск функций MATLAB с автоматической параллельной поддержкой (панель инструментов параллельных вычислений).
ClassificationPartitionedModel | ClassificationTree | kfoldPredict | predict | prune
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.