Подбор двоичного дерева принятия решений для многоклассовой классификации
возвращает установленное двоичное дерево решений классификации, основанное на входных переменных (также известных как предикторы, функции или атрибуты), содержащихся в таблице 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
Поскольку в категориальных переменных представлено немного категорий по сравнению с уровнями в непрерывных переменных, стандартный алгоритм разделения предикторов ТЕЛЕЖКА предпочитает разделение непрерывного предиктора над категориальными переменными.
Обучите дерево классификации, используя весь набор данных. Чтобы вырастить объективные деревья, задайте использование теста кривизны для разделения предикторов. Поскольку в данных отсутствуют наблюдения, задайте использование суррогатных расщеплений.
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 является большим набором данных, который содержит табличный файл данных о рейсах авиакомпании. Этот пример создает длинная таблица, содержащий данные, и использует его, чтобы запустить процедуру оптимизации.
При выполнении вычислений на длинные массивы MATLAB ® использует либо параллельный пул (по умолчанию, если у вас есть Parallel Computing Toolbox™), либо локальный сеанс работы с MATLAB. Если вы хотите запустить пример с помощью локального сеанса работы с MATLAB, когда у вас есть Parallel Computing Toolbox, можно изменить глобальное окружение выполнения, используя mapreducer функция.
Создайте datastore, которое ссылается на расположение папки с данными. Выберите подмножество переменных для работы и обработки 'NA' значения как отсутствующие данные, так что datastore заменяет их на NaN значения. Создайте длинная таблица, который содержит данные в datastore.
ds = datastore('airlinesmall.csv'); ds.SelectedVariableNames = {'Month','DayofMonth','DayOfWeek',... 'DepTime','ArrDelay','Distance','DepDelay'}; ds.TreatAsMissing = 'NA'; tt = tall(ds) % Tall table
Starting parallel pool (parpool) using the 'local' profile ...
Connected to the parallel pool (number of workers: 6).
tt =
M×7 tall table
Month DayofMonth DayOfWeek DepTime ArrDelay Distance DepDelay
_____ __________ _________ _______ ________ ________ ________
10 21 3 642 8 308 12
10 26 1 1021 8 296 1
10 23 5 2055 21 480 20
10 23 5 1332 13 296 12
10 22 4 629 4 373 -1
10 28 3 1446 59 308 63
10 8 4 928 3 447 -2
10 10 6 859 11 954 -1
: : : : : : :
: : : : : : :
Определите рейсы, которые опоздали на 10 минут или больше, путем определения логической переменной, которая верна для позднего полета. Эта переменная содержит метки классов. Предварительный просмотр этой переменной включает первые несколько строк.
Y = tt.DepDelay > 10 % Class 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. Результаты могут варьироваться в зависимости от количества рабочих процессов и окружения выполнения для длинных массивов. Для получения дополнительной информации смотрите Управление, Где Ваш Код Запуски.
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 автоматически выбирает оптимальное подмножество алгоритмов для каждого разделения, используя известное количество классов и уровней категориального предиктора. Для K = 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 если его класс true i (т.е. строки соответствуют истинному классу, а столбцы - предсказанному классу). Чтобы задать порядок классов для соответствующих строк и столбцов Cost, также задайте ClassNames аргумент пары "имя-значение".
Структурные S имеющий два поля: S.ClassNames содержащие имена групп как переменный совпадающий тип данных as Y, и S.ClassificationCosts содержащая матрицу затрат.
Значение по умолчанию является Cost(i,j)=1 если i~=j, и Cost(i,j)=0 если i=j.
Типы данных: single | double | struct
'MaxDepth' - Максимальная глубина дереваМаксимальная глубина дерева, заданная как разделенная разделенными запятой парами, состоящая из 'MaxDepth' и положительное целое число. Задайте значение для этого аргумента, чтобы вернуть дерево, которое имеет меньше уровней и требует меньше проходов через длинный массив для вычисления. Обычно алгоритм fitctree принимает один проход через данные и дополнительный проход для каждого уровня дерева. Функция по умолчанию не задает максимальную глубину дерева.
Примечание
Эта опция применяется только при использовании fitctree на длинных массивах. Для получения дополнительной информации см. раздел «Длинные массивы».
'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, а затем выращивает деревья на индексах интервал вместо исходных данных.
Количество интервалов может быть меньше numBins если предиктор имеет меньше numBins уникальные значения.
fitctree не содержит категориальные предикторы.
Когда вы используете большой набор обучающих данных, эта опция binning ускоряет обучение, но может привести к потенциальному снижению точности. Можно попробовать 'NumBins',50 сначала, а затем измените значение в зависимости от точности и скорости обучения.
Обученная модель сохраняет границы интервала в BinEdges свойство.
Пример: 'NumBins',50
Типы данных: single | double
'NumVariablesToSample' - Количество предикторов для случайного выбора для каждого разделения'all' (по умолчанию) | положительное целое значениеКоличество предикторов для случайного выбора для каждого разделения, заданное как разделенная разделенными запятой парами, состоящая из 'NumVariablesToSample' и положительное целое значение. Также можно задать 'all' использовать все доступные предикторы.
Если обучающие данные включают много предикторов, и вы хотите проанализировать важность предиктора, задайте 'NumVariablesToSample' как 'all'. В противном случае программное обеспечение может не выбрать некоторые предикторы, недооценив их важность.
Чтобы воспроизвести случайные выборки, необходимо задать seed генератора случайных чисел при помощи 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]. Скорость обучения аналогична стандартной ТЕЛЕЖКА. |
'interaction-curvature' | Тест взаимодействия - выбирает разделенный предиктор, который минимизирует p-значение хи-квадратных тестов независимости между каждым предиктором и ответом, и который минимизирует p-значение хи-квадратного теста независимости между каждой парой предикторов и откликом [3]. Скорость обучения может быть медленнее, чем стандартная ТЕЛЕЖКА. |
Для 'curvature' и 'interaction-curvature', если все тесты дают p -значений больше 0,05, тоfitctree останавливает разделение узлов.
Совет
Стандартная ТЕЛЕЖКА имеет тенденцию выбирать разделенные предикторы, содержащие много различных значений, например, непрерывных переменных, по сравнению с теми, которые содержат несколько различных значений, например, категориальные переменные [4]. Рассмотрите установку критерия кривизны или взаимодействия, если любое из следующих значений верно:
Если существуют предикторы, которые имеют относительно меньше различных значений, чем другие предикторы, например, если набор данных предиктора неоднороден.
Если анализ предикторной важности является вашей целью. Для получения дополнительной информации об оценке предикторной важности см. predictorImportance и Введение в выбор признаков.
Деревья, выращенные с использованием стандартной ТЕЛЕЖКА, не чувствительны к взаимодействиям переменных предиктора. Кроме того, такие деревья с меньшей вероятностью идентифицируют важные переменные в присутствии многих нерелевантных предикторов, чем применение теста взаимодействия. Поэтому, чтобы принять во внимание взаимодействия предикторов и идентифицировать переменные важности в присутствии многих нерелевантных переменных, задайте тест взаимодействия [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 и установите seed генератора случайных чисел при помощи 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' | журнал (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' | 2 x – 1 |
'symmetricismax' | Устанавливает счет для класса с самым большим счетом равным 1 и устанавливает счета для всех других классов равной -1 |
'symmetriclogit' | 2/(1 + e–x) – 1 |
Для функции MATLAB или функции, которую вы задаете, используйте указатель на функцию для преобразования счета. Указатель на функцию должен принять матрицу (исходные счета) и вернуть матрицу того же размера (преобразованные счета).
Пример: 'ScoreTransform','logit'
Типы данных: char | string | function_handle
'SplitCriterion' - Критерий разделения'gdi' (по умолчанию) | 'twoing' | 'deviance' Критерий разделения, заданный как разделенная разделенными запятой парами, состоящая из 'SplitCriterion' и 'gdi'(индекс разнообразия Джини), 'twoing' для правила twoing, или 'deviance' для максимального уменьшения отклонения (также известного как перекрестная энтропия).
Для получения дополнительной информации смотрите Примеси и Ошибка узла.
Пример: 'SplitCriterion','deviance'
'Surrogate' - Флаг разделения суррогатных решений'off' (по умолчанию) | 'on' | 'all' | положительное целое значениеФлаг разделения суррогатного решения, заданный как разделенная разделенными запятой парами, состоящая из 'Surrogate' и 'on', 'off', 'all', или положительное целое значение.
Когда установлено значение 'on', fitctree находит не более 10 суррогатных разделений в каждом узле ветви.
Когда установлено значение 'all', fitctree находит все суррогатные разделения в каждом узле ветви. The '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», заданная как разделенная разделенными запятой парами, состоящая из 'Holdout' и скалярное значение в области значений [0,1]. Holdout проверяет указанную долю данных и использует остальную часть данных для обучения.
Если вы используете '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 оптимизирует по этому гиперпараметру.
Установите параметры nondefault путем передачи вектора optimizableVariable объекты, которые имеют значения nondefault. Для примера,
load fisheriris params = hyperparameters('fitctree',meas,species); params(1).Range = [1,30];
Передайте params как значение OptimizeHyperparameters.
По умолчанию итеративное отображение появляется в командной строке, и графики появляются согласно количеству гиперпараметров в оптимизации. Для оптимизации и графиков целевой функцией является журнал ( 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 | Логическое значение, указывающее, запускать ли байесовскую оптимизацию параллельно, что требует Parallel Computing 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 способ изготовления предсказаний.
curvature test является статистическим тестом, оценивающим нулевую гипотезу о том, что две переменные не связаны.
Тест кривизны между переменной предиктора x и y проводится с использованием этого процесса.
Если x непрерывна, разбейте его на квартили. Создайте номинальную переменную, которая закрывает наблюдения в соответствии с тем, какой раздел раздела они занимают. Если есть отсутствующие значения, то создайте для них дополнительный интервал.
Для каждого уровня в секционированном предикторе j = 1... J и классе в отклике k = 1,..., K, вычислите взвешенную долю наблюдений в классе k
wi - вес i наблюдений, I - функция индикации, а n - размер выборки. Если все наблюдения имеют одинаковый вес, то , где njk - количество наблюдений в j уровня предиктора, которые находятся в k классов.
Вычислите тестовую статистику
, то есть предельная вероятность наблюдения предиктора на уровне j. , это предельная вероятность наблюдения за k класса. Если n достаточно велик, то t распределяется как χ2 с (K - 1) (J - 1) степенями свободы.
Если p-значение для теста меньше 0,05, отклоните нулевую гипотезу об отсутствии связи между x и y.
При определении лучшего предиктора разделения в каждом узле стандартный алгоритм ТЕЛЕЖКА предпочитает выбирать непрерывные предикторы, которые имеют много уровней. Иногда такой выбор может быть ложным и может также замаскировать более важные предикторы, которые имеют меньше уровней, такие как категориальные предикторы.
Тест кривизны может быть применен вместо стандартной ТЕЛЕЖКА, чтобы определить лучший разделенный предиктор в каждом узле. В этом случае лучшая переменная предиктора разделения является такой, которая минимизирует значимые p значения (те, что меньше 0,05) тестов кривизны между каждым предиктором и переменной отклика. Такой выбор является устойчивым к количеству уровней в отдельных предикторах.
Примечание
Если уровни предиктора чисты для конкретного класса, то fitctree объединяет эти уровни. Поэтому на шаге 3 алгоритма J может быть меньше, чем фактическое количество уровней в предикторе. Например, если у x 4 уровня, и все наблюдения в интервалах 1 и 2 относятся к классу 1, то эти уровни являются чистыми для класса 1. Следовательно, fitctree объединяет наблюдения в интервалах 1 и 2 и J уменьшается до 3.
Для получения дополнительной информации о том, как тест кривизны применяется к растущим деревьям классификации, смотрите Правила разделения узлов и [4].
Дерево решений разделяет узлы на основе impurity или node error.
Примесь означает одну из нескольких вещей, в зависимости от вашего выбора SplitCriterion аргумент пары "имя-значение":
Индекс разнообразия Джини (gdi) - Индекс Джини узла:
где сумма по классам, i в узле, и p (i) является наблюдаемой долей классов с i классов, которые достигают узла. Узел только с одним классом (узел pure) имеет индекс Джини 0; в противном случае индекс Джини положителен. Так что индекс Джини является мерой узла примеси.
Отклонение ('deviance') - С p (i), заданными так же, как для индекса Джини, отклонение узла является
Чистый узел имеет отклонение 0; в противном случае отклонение положительное.
Правило Twoing ('twoing') - Twoing не является мерой чистоты узла, но является другой мерой для принятия решения о том, как разделить узел. Пусть L (i) обозначает долю представителей класса, i в левом дочернем узле после разделения, а R (i) обозначает долю представителей класса, i в правом дочернем узле после разделения. Выберите критерий разделения для максимизации
где P (L) и P (R) являются частями наблюдений, которые разделяются налево и вправо соответственно. Если выражение большое, разделение сделало каждый дочерний узел более чистым. Точно так же, если выражение маленькое, разделение сделало каждый дочерний узел похожим друг на друга, и, следовательно, подобным родительскому узлу. Разделение не увеличило чистоту узла.
Ошибка узла - ошибка узла - это часть неправильно классифицированных классов в узле. Если j является классом с наибольшим количеством обучающих выборок в узле, ошибка узла
1 – p (<reservedrangesplaceholder0>).
interaction test является статистическим тестом, который оценивает нулевую гипотезу об отсутствии взаимодействия между парой переменных предиктора и переменной отклика.
Тест взаимодействия, оценивающий связь между переменными предиктора x 1 и x 2 относительно y, проводится с использованием этого процесса.
Если x 1 или x 2 непрерывна, разбейте эту переменную на ее квартили. Создайте номинальную переменную, которая закрывает наблюдения в соответствии с тем, какой раздел раздела они занимают. Если есть отсутствующие значения, то создайте для них дополнительный интервал.
Создайте номинальную z с J = J 1 J 2 уровнями, которая присваивает индекс i наблюдения, согласно которым уровни x 1 и x 2 ему принадлежат. Удалите любые уровни z, которые не соответствуют никаким наблюдениям.
Проведите тест кривизны между z и y.
При выращивании деревьев решений, если существуют важные взаимодействия между парами предикторов, но в данных также есть много других менее важных предикторов, то стандартная ТЕЛЕЖКА, как правило, пропускает важные взаимодействия. Однако проведение тестов кривизны и взаимодействия для выбора предиктора может улучшить обнаружение важных взаимодействий, что может привести к более точным деревьям решений.
Для получения дополнительной информации о том, как тест взаимодействия применяется к растущим деревьям решений, смотрите Curvature Test, Node Splitting Rules и [3].
predictive measure of association является значением, которое указывает на сходство между правилами принятия решений, которые разделяют наблюдения. Среди всех возможных разделений решений, которые сравниваются с оптимальным разделением (найденным путем роста дерева), лучшее разделение суррогатных решений приводит к максимальной прогнозирующей мере ассоциации. Второе лучшее суррогатное разделение имеет вторую по величине прогнозирующую меру ассоциации.
Предположим xj, и xk переменные предсказателя j и k, соответственно, и <reservedrangesplaceholder6> ≠ <reservedrangesplaceholder5>. В узле t прогнозирующая мера ассоциации между оптимальным разделением xj < u и суррогатным разделением xk < v,
PL - это доля наблюдений в узле t, такая что xj < u. L индекса обозначает левый дочерний элемент узла t.
PR - пропорция наблюдений в узле t, такой что <reservedrangesplaceholder3> ≥ <reservedrangesplaceholder2>. R индекса обозначает правый дочерний элемент узла t.
- доля наблюдений в узле t, такая что xj < u и xk < v.
пропорция наблюдений в узле t, такой что <reservedrangesplaceholder3> ≥ <reservedrangesplaceholder2> и <reservedrangesplaceholder1> ≥ <reservedrangesplaceholder0>.
Наблюдения с отсутствующими значениями для xj или xk не способствуют вычислению пропорции.
λjk является значением в (- ∞, 1]. Если λjk > 0, то xk < v является стоящим суррогатным разделением для xj < u.
surrogate decision split является альтернативой оптимальному разделению решений в данном узле в дереве решений. Оптимальный раскол находит выращивание дерева; суррогатное разделение использует аналогичную или коррелированную переменную предиктора и критерий разделения.
Когда значение оптимального предиктора разделения для наблюдения отсутствует, наблюдение отправляется в левый или правый дочерний узел, используя лучший суррогатный предиктор. Когда значение лучшего суррогатного сплит предиктора для наблюдения также отсутствует, наблюдение отправляется в левый или правый дочерний узел с помощью второго лучшего суррогатного предиктора и так далее. Разделения кандидатов сортируются в порядке убывания по их прогнозирующей мере ассоциации.
По умолчанию Prune является 'on'. Однако эта спецификация не обрезает дерево классификации. Чтобы обрезать обученное дерево классификации, передайте дерево классификации в prune.
После обучения модели можно сгенерировать код C/C + +, который предсказывает метки для новых данных. Для генерации кода C/C + + требуется MATLAB Coder™. Для получения дополнительной информации смотрите Введение в генерацию кода .
fitctree использует эти процессы, чтобы определить, как разделить t узла.
Для стандартной ТЕЛЕЖКИ (то есть, если PredictorSelection является 'allpairs') и для всех предикторов xi, i = 1,..., p:
fitctree вычисляет взвешенную примесь узла t, it. Для поддерживаемых мер примеси смотрите SplitCriterion.
fitctree оценивает вероятность того, что наблюдение находится в узле t использованием
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 не содержит никаких отсутствующих значений, то коэффициент усиления примеси для текущего кандидата на разделение является
Если xi содержит отсутствующие значения, то, принимая, что наблюдения отсутствуют случайным образом, коэффициент усиления примеси является
T - TU - набор всех индексов наблюдения в t узлов, которые не отсутствуют.
Если вы используете суррогатные разделения решений, то:
fitctree вычисляет прогнозирующие меры ассоциации между xj разделения решения <u и всеми возможными разделениями решения xk <v, <reservedrangesplaceholder1> ≠ <reservedrangesplaceholder0>.
fitctree сортирует возможные альтернативные разделения решений в порядке убывания по их прогнозирующей мере ассоциации с оптимальным разделением. Суррогатное разделение - это разделение решений, дающее наибольшую меру.
fitctree определяет назначения дочерних узлов для наблюдений с отсутствующим значением для xi с использованием суррогатного разделения. Если суррогатный предиктор также содержит отсутствующее значение, то fitctree использует разделение решения со второй по величине мерой и так далее, пока нет других суррогатов. Возможно для fitctree чтобы разделить два различных наблюдения в узле t используя два разных суррогатных разделения. Для примера предположим, что предикторы x 1 и x 2 являются лучшими и вторыми лучшими суррогатами, соответственно, для xi предиктора, i ∉ {1,2}, в узле t. Если m наблюдения предиктора xi отсутствует (то есть xmi отсутствует), но x m 1 не отсутствует, то x 1 является суррогатным предиктором для xmi наблюдений. Если наблюдения x (m + 1), i и x (m + 1), 1 отсутствуют, но x (m + 1), 2 не пропущено, то x 2 является суррогатным предиктором для наблюдения m + 1.
fitctree использует соответствующую формулу усиления примеси. То есть, если fitctree не присваивает все отсутствующие наблюдения в узле t детским узлам с помощью суррогатных расщеплений, тогда коэффициент усиления примеси равен, IU. В противном случае ,fitctree Для коэффициента усиления примеси используется I
fitctree выбирает кандидата, который дает наибольший коэффициент усиления примеси.
fitctree разделяет переменную предиктора в точке разреза, которая максимизирует коэффициент усиления примеси.
Для теста кривизны (то есть, если PredictorSelection является 'curvature'):
fitctree проводит тесты кривизны между каждым предиктором и ответом для наблюдений в узле t.
Если все p -значения не менее 0,05, тоfitctree не разделяет t узла.
Если существует минимальное p -значение, тоfitctree выбирает соответствующий предиктор для разделения t узла.
Если более одного p -значение меньше нуля из-за недолива, тоfitctree применяет стандартную ТЕЛЕЖКА к соответствующим предикторам, чтобы выбрать разделенный предиктор.
Если fitctree выбирает предиктор разделения, затем использует стандартную ТЕЛЕЖКА для выбора точки разреза (см. шаг 4 в стандартном процессе ТЕЛЕЖКА).
Для теста взаимодействия (то есть, если PredictorSelection является 'interaction-curvature' ):
Для наблюдений в узле t, fitctree проводит тесты кривизны между каждым предиктором и тестами отклика и взаимодействия между каждой парой предикторов и откликом.
Если все p -значения не менее 0,05, тоfitctree не разделяет t узла.
Если существует минимальное p -значение и это результат теста кривизны, тоfitctree выбирает соответствующий предиктор для разделения t узла.
Если существует минимальное p -значение, и это результат теста взаимодействия, тоfitctree выбирает предиктор разделения, используя стандартную ТЕЛЕЖКА на соответствующей паре предикторов.
Если более одного p -значение меньше нуля из-за недолива, тоfitctree применяет стандартную ТЕЛЕЖКА к соответствующим предикторам, чтобы выбрать разделенный предиктор.
Если fitctree выбирает предиктор разделения, затем использует стандартную ТЕЛЕЖКА для выбора точки разреза (см. шаг 4 в стандартном процессе ТЕЛЕЖКА).
Если MergeLeaves является 'on' и PruneCriterion является 'error' (которые являются значениями по умолчанию для этих аргументов пары "имя-значение"), тогда программа применяет обрезку только к листьям и при помощи ошибки классификации. Эта спецификация состоит из слитых листьев, которые имеют наиболее популярный класс по листу.
Для размещения MaxNumSplits, fitctree разделяет все узлы в текущей layer, а затем подсчитывает количество узлов ветви. Слой является набором узлов, равноудаленных от корневого узла. Если количество узлов ветви превышает MaxNumSplits, fitctree следовать этой процедуре:
Определите, сколько узлов ветви в текущем слое должно быть непригодно, чтобы было самое большее MaxNumSplits узлы ветви.
Сортировка узлов ветви по усилениям примесей.
Отключите количество наименее успешных ветвей.
Верните дерево решений, выращенное до сих пор.
Эта процедура создает максимально сбалансированные деревья.
Программа разделяет узлы ветви слой за слоем, пока не произойдет по крайней мере одно из следующих событий:
Есть MaxNumSplits узлы ветви.
Предлагаемое разделение заставляет количество наблюдений по меньшей мере в одном узле ветви быть меньше MinParentSize.
Предлагаемое разделение заставляет количество наблюдений по меньшей мере в одном листовом узле быть меньше MinLeafSize.
Алгоритм не может найти хорошее разделение внутри слоя (т.е. критерий обрезки (см PruneCriterion), не улучшается для всех предлагаемых расщеплений в слое). Особый случай, когда все узлы являются чистыми (т.е. все наблюдения в узле имеют один и тот же класс).
Для значений 'curvature' или 'interaction-curvature' от PredictorSelectionвсе тесты дают p значений более 0,05.
MaxNumSplits и MinLeafSize не влияет на разделение значений по умолчанию. Поэтому, если вы задаете 'MaxNumSplits', разделение может остановиться из-за значения MinParentSize, до MaxNumSplits имеют место расщепления.
Для двухъядерных систем и выше, fitctree параллелизирует деревья решений для обучения с помощью Intel® Многопоточные базовые блоки (TBB). Для получения дополнительной информации о Intel TBB смотрите https://software.intel.com/en-us/intel-tbb.
[1] Breiman, L., J. Friedman, R. Olshen, and C. Stone. Деревья классификации и регрессии. Бока Ратон, FL: CRC Press, 1984.
[2] Coppersmith, D., S. J. Хонг и Дж. Р. М. Хоскинг. «Разбиение номинальных атрибутов на разделы в деревьях решений». Data Mining and Knowledge Discovery, Vol. 3, 1999, pp. 197-217.
[3] Loh, W.Y. «Regression Trees with Unbiased Variable Selection and Interaction Detection». Statistica Sinica, Vol. 12, 2002, pp. 361-386.
[4] Loh, W.Y. and Y.S. Shih. «Разделение методов выбора для деревьев классификации». Statistica Sinica, Vol. 7, 1997, pp. 815-840.
Указания и ограничения по применению:
Поддерживаемые синтаксисы:
tree = fitctree(Tbl,Y)
tree = fitctree(X,Y)
tree = fitctree(___,Name,Value)
[tree,FitInfo,HyperparameterOptimizationResults] = fitctree(___,Name,Value) — fitctree возвращает дополнительные выходные аргументы FitInfo и HyperparameterOptimizationResults когда вы задаете 'OptimizeHyperparameters' аргумент пары "имя-значение".
The FitInfo выходной аргумент является пустым массивом структур, зарезервированным в настоящее время для возможного будущего использования.
The HyperparameterOptimizationResults выходной аргумент является BayesianOptimization объект или таблица гиперпараметров со связанными значениями, которые описывают оптимизацию гиперпараметров перекрестной валидации.
'HyperparameterOptimizationResults' не пуст, когда 'OptimizeHyperparameters' аргумент пары "имя-значение" не пуст в то время, когда вы создаете модель. Значения в 'HyperparameterOptimizationResults' зависят от значения, заданного для 'HyperparameterOptimizationOptions' аргумент пары "имя-значение" при создании модели.
Если вы задаете 'bayesopt' (по умолчанию), затем HyperparameterOptimizationResults является объектом класса BayesianOptimization.
Если вы задаете 'gridsearch' или 'randomsearch', затем HyperparameterOptimizationResults - таблица используемых гиперпараметров, наблюдаемых значений целевой функции (потери перекрестной валидации) и ранга наблюдений от самого низкого (лучшего) до самого высокого (худшего).
Поддерживаемые аргументы пары "имя-значение" и любые различия:
'AlgorithmForCategorical'
'CategoricalPredictors'
'ClassNames'
'Cost'
'HyperparameterOptimizationOptions' - Для перекрестной валидации tall optimization поддерживает только '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'
Этот дополнительный аргумент пары "имя-значение" характерен для длинных массивов:
'MaxDepth' - положительное целое число, задающее максимальную глубину выходного дерева. Задайте значение для этого аргумента, чтобы вернуть дерево, которое имеет меньше уровней и требует меньше проходов через длинный массив для вычисления. Обычно алгоритм fitctree принимает один проход через данные и дополнительный проход для каждого уровня дерева. Функция по умолчанию не задает максимальную глубину дерева.
Для получения дополнительной информации см. Раздел «Длинные массивы»
Чтобы выполнить параллельную оптимизацию гипероптимизации параметров управления, используйте 'HyperparameterOptimizationOptions', struct('UseParallel',true) аргумент имя-значение в вызове этой функции.
Для получения дополнительной информации об оптимизации параллельной гипероптимизации параметров управления смотрите Parallel Bayesian Optimization.
Общие сведения о параллельных вычислениях см. в разделе Запуск функций MATLAB с поддержкой автоматических параллелей (Parallel Computing Toolbox).
ClassificationPartitionedModel | ClassificationTree | kfoldPredict | predict | prune
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.