fitrtree

Подходящее дерево выбора из двух альтернатив для регрессии

Описание

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

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

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

пример

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

пример

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

Примеры

свернуть все

Загрузите выборочные данные.

load carsmall

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

tree = fitrtree([Weight, Cylinders],MPG,...
                'CategoricalPredictors',2,'MinParentSize',20,...
                'PredictorNames',{'W','C'})
tree = 
  RegressionTree
           PredictorNames: {'W'  'C'}
             ResponseName: 'Y'
    CategoricalPredictors: 2
        ResponseTransform: 'none'
          NumObservations: 94


  Properties, Methods

Предскажите пробег автомобилей за 4 000 фунтов с 4, 6, и 8 цилиндров.

MPG4Kpred = predict(tree,[4000 4; 4000 6; 4000 8])
MPG4Kpred = 3×1

   19.2778
   19.2778
   14.3889

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

Загрузите carsmall набор данных. Рассмотрите Displacement, Horsepower, и Weight как предикторы ответа MPG.

load carsmall
X = [Displacement Horsepower Weight];

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

  • n - 1 для MaxNumSplitsN учебный объем выборки.

  • 1 для MinLeafSize.

  • 10 для MinParentSize.

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

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

rng(1); % For reproducibility
MdlDefault = fitrtree(X,MPG,'CrossVal','on');

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

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

figure;
histogram(mdlDefaultNumSplits)

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

Среднее количество разделений между 14 и 15.

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

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

Сравните среднеквадратические ошибки перекрестной проверки (MSEs) моделей.

mseDefault = kfoldLoss(MdlDefault)
mseDefault = 25.7383
mse7 = kfoldLoss(Mdl7)
mse7 = 26.5748

Mdl7 является намного менее комплексным и выполняет незначительно хуже, чем MdlDefault.

Оптимизируйте гиперпараметры автоматически с помощью fitrtree.

Загрузите carsmall набор данных.

load carsmall

Используйте Weight и Horsepower как предикторы для MPG. Найдите гиперпараметры, которые минимизируют пятикратную потерю перекрестной проверки при помощи автоматической гипероптимизации параметров управления.

Для воспроизводимости, набор случайный seed и использование 'expected-improvement-plus' функция приобретения.

X = [Weight,Horsepower];
Y = MPG;
rng default
Mdl = fitrtree(X,Y,'OptimizeHyperparameters','auto',...
    'HyperparameterOptimizationOptions',struct('AcquisitionFunctionName',...
    'expected-improvement-plus'))

|======================================================================================|
| Iter | Eval   | Objective:  | Objective   | BestSoFar   | BestSoFar   |  MinLeafSize |
|      | result | log(1+loss) | runtime     | (observed)  | (estim.)    |              |
|======================================================================================|
|    1 | Best   |      3.2818 |     0.22349 |      3.2818 |      3.2818 |           28 |
|    2 | Accept |      3.4183 |    0.090247 |      3.2818 |      3.2888 |            1 |
|    3 | Best   |      3.1491 |    0.068191 |      3.1491 |       3.166 |            4 |
|    4 | Best   |      2.9885 |    0.081467 |      2.9885 |      2.9885 |            9 |
|    5 | Accept |      2.9978 |     0.07455 |      2.9885 |      2.9885 |            7 |
|    6 | Accept |      3.0203 |    0.051267 |      2.9885 |      3.0013 |            8 |
|    7 | Accept |      2.9885 |    0.052032 |      2.9885 |      2.9981 |            9 |
|    8 | Best   |      2.9589 |    0.050482 |      2.9589 |       2.985 |           10 |
|    9 | Accept |      3.0459 |    0.052799 |      2.9589 |      2.9895 |           12 |
|   10 | Accept |      4.1881 |    0.057182 |      2.9589 |      2.9594 |           50 |
|   11 | Accept |      3.4182 |    0.061527 |      2.9589 |      2.9594 |            2 |
|   12 | Accept |      3.0376 |    0.051006 |      2.9589 |      2.9592 |            6 |
|   13 | Accept |      3.1453 |    0.048838 |      2.9589 |      2.9856 |           19 |
|   14 | Accept |      2.9589 |    0.048108 |      2.9589 |      2.9591 |           10 |
|   15 | Accept |      2.9589 |    0.049641 |      2.9589 |       2.959 |           10 |
|   16 | Accept |      2.9589 |     0.05209 |      2.9589 |       2.959 |           10 |
|   17 | Accept |      3.3055 |    0.054697 |      2.9589 |       2.959 |            3 |
|   18 | Accept |      3.4577 |    0.076356 |      2.9589 |      2.9589 |           37 |
|   19 | Accept |      3.1584 |    0.049439 |      2.9589 |      2.9589 |           15 |
|   20 | Accept |       3.107 |    0.054861 |      2.9589 |      2.9589 |            5 |
|======================================================================================|
| Iter | Eval   | Objective:  | Objective   | BestSoFar   | BestSoFar   |  MinLeafSize |
|      | result | log(1+loss) | runtime     | (observed)  | (estim.)    |              |
|======================================================================================|
|   21 | Accept |      3.0398 |     0.07351 |      2.9589 |      2.9589 |           23 |
|   22 | Accept |      3.3226 |     0.06527 |      2.9589 |      2.9589 |           32 |
|   23 | Accept |      3.1883 |    0.066507 |      2.9589 |      2.9589 |           17 |
|   24 | Accept |      4.1881 |    0.051494 |      2.9589 |      2.9589 |           43 |
|   25 | Accept |      3.0123 |    0.057915 |      2.9589 |      2.9589 |           11 |
|   26 | Accept |      3.0932 |    0.051185 |      2.9589 |      2.9589 |           21 |
|   27 | Accept |       3.078 |    0.046506 |      2.9589 |      2.9589 |           13 |
|   28 | Accept |      3.2818 |    0.049576 |      2.9589 |      2.9589 |           25 |
|   29 | Accept |      3.0992 |    0.061612 |      2.9589 |      2.9589 |           14 |
|   30 | Accept |      3.4361 |    0.047973 |      2.9589 |      2.9589 |           34 |

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

Best observed feasible point:
    MinLeafSize
    ___________

        10     

Observed objective function value = 2.9589
Estimated objective function value = 2.9589
Function evaluation time = 0.050482

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

        10     

Estimated objective function value = 2.9589
Estimated function evaluation time = 0.060193
Mdl = 
  RegressionTree
                         ResponseName: 'Y'
                CategoricalPredictors: []
                    ResponseTransform: 'none'
                      NumObservations: 94
    HyperparameterOptimizationResults: [1x1 BayesianOptimization]


  Properties, Methods

Загрузите carsmall набор данных. Рассмотрите модель, которая предсказывает среднюю экономию топлива автомобиля, учитывая его ускорение, количество цилиндров, объема двигателя, лошадиной силы, производителя, модельный год и вес. Рассмотрите Cylinders, Mfg, и Model_Year как категориальные переменные.

load carsmall
Cylinders = categorical(Cylinders);
Mfg = categorical(cellstr(Mfg));
Model_Year = categorical(Model_Year);
X = table(Acceleration,Cylinders,Displacement,Horsepower,Mfg,...
    Model_Year,Weight,MPG);

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

numCylinders = numel(categories(Cylinders))
numCylinders = 3
numMfg = numel(categories(Mfg))
numMfg = 28
numModelYear = numel(categories(Model_Year))
numModelYear = 3

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

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

Mdl = fitrtree(X,'MPG','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';

В этом случае, Displacement самый важный предиктор, сопровождаемый Horsepower.

fitrtree выращивает глубокие деревья решений по умолчанию. Создайте более мелкое дерево, которое требует, чтобы меньше прошли через длинный массив. Используйте 'MaxDepth' аргумент пары "имя-значение", чтобы управлять максимальной древовидной глубиной.

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

Загрузите carsmall набор данных. Рассмотрите Displacement, Horsepower, и Weight как предикторы ответа MPG.

load carsmall
X = [Displacement Horsepower Weight];

Преобразуйте массивы в оперативной памяти X и MPG к длинным массивам.

tx = tall(X);
Starting parallel pool (parpool) using the 'local' profile ...
Connected to the parallel pool (number of workers: 6).
ty = tall(MPG);

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

Для воспроизводимости, набор seed генераторов случайных чисел с помощью rng и tallrng. Результаты могут варьироваться в зависимости от количества рабочих и среды выполнения для длинных массивов. Для получения дополнительной информации смотрите Управление Где Ваши Запуски Кода (MATLAB).

rng('default') 
tallrng('default')
Mdl = fitrtree(tx,ty);
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 2: Completed in 3.3 sec
- Pass 2 of 2: Completed in 1 sec
Evaluation completed in 6.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 6: Completed in 1.4 sec
- Pass 2 of 6: Completed in 0.41 sec
- Pass 3 of 6: Completed in 2.3 sec
- Pass 4 of 6: Completed in 3.6 sec
- Pass 5 of 6: Completed in 1.5 sec
- Pass 6 of 6: Completed in 2.9 sec
Evaluation completed in 14 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.45 sec
- Pass 2 of 7: Completed in 0.36 sec
- Pass 3 of 7: Completed in 1.2 sec
- Pass 4 of 7: Completed in 2.5 sec
- Pass 5 of 7: Completed in 0.85 sec
- Pass 6 of 7: Completed in 1.4 sec
- Pass 7 of 7: Completed in 2.2 sec
Evaluation completed in 10 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.45 sec
- Pass 2 of 7: Completed in 0.36 sec
- Pass 3 of 7: Completed in 1.1 sec
- Pass 4 of 7: Completed in 2.6 sec
- Pass 5 of 7: Completed in 1 sec
- Pass 6 of 7: Completed in 1.5 sec
- Pass 7 of 7: Completed in 3.2 sec
Evaluation completed in 12 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.43 sec
- Pass 2 of 7: Completed in 0.38 sec
- Pass 3 of 7: Completed in 1.6 sec
- Pass 4 of 7: Completed in 2.6 sec
- Pass 5 of 7: Completed in 0.89 sec
- Pass 6 of 7: Completed in 1.2 sec
- Pass 7 of 7: Completed in 2.3 sec
Evaluation completed in 11 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.47 sec
- Pass 2 of 7: Completed in 0.38 sec
- Pass 3 of 7: Completed in 1.1 sec
- Pass 4 of 7: Completed in 2 sec
- Pass 5 of 7: Completed in 0.76 sec
- Pass 6 of 7: Completed in 1.2 sec
- Pass 7 of 7: Completed in 2.4 sec
Evaluation completed in 9.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.42 sec
- Pass 2 of 7: Completed in 0.33 sec
- Pass 3 of 7: Completed in 1.2 sec
- Pass 4 of 7: Completed in 2.2 sec
- Pass 5 of 7: Completed in 0.82 sec
- Pass 6 of 7: Completed in 1.3 sec
- Pass 7 of 7: Completed in 2.2 sec
Evaluation completed in 9.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.49 sec
- Pass 2 of 7: Completed in 0.36 sec
- Pass 3 of 7: Completed in 1.1 sec
- Pass 4 of 7: Completed in 2.8 sec
- Pass 5 of 7: Completed in 1.2 sec
- Pass 6 of 7: Completed in 1.1 sec
- Pass 7 of 7: Completed in 2.3 sec
Evaluation completed in 10 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.5 sec
- Pass 2 of 7: Completed in 0.34 sec
- Pass 3 of 7: Completed in 1.1 sec
- Pass 4 of 7: Completed in 1.8 sec
- Pass 5 of 7: Completed in 0.75 sec
- Pass 6 of 7: Completed in 1.1 sec
- Pass 7 of 7: Completed in 1.8 sec
Evaluation completed in 8.5 sec

Просмотрите обученный древовидный Mdl.

view(Mdl,'Mode','graph')

Mdl дерево глубины 8.

Оцените среднеквадратическую ошибку в выборке.

MSE_Mdl = gather(loss(Mdl,tx,ty))
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 3.1 sec
Evaluation completed in 3.7 sec
MSE_Mdl = 4.9078

Вырастите дерево регрессии, использующее все наблюдения. Ограничьте древовидную глубину путем определения максимальной древовидной глубины 4.

Mdl2 = fitrtree(tx,ty,'MaxDepth',4);
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 2: Completed in 0.38 sec
- Pass 2 of 2: Completed in 0.35 sec
Evaluation completed in 1.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.42 sec
- Pass 2 of 7: Completed in 0.35 sec
- Pass 3 of 7: Completed in 1.2 sec
- Pass 4 of 7: Completed in 1.9 sec
- Pass 5 of 7: Completed in 0.73 sec
- Pass 6 of 7: Completed in 1.2 sec
- Pass 7 of 7: Completed in 2.1 sec
Evaluation completed in 8.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.44 sec
- Pass 2 of 7: Completed in 0.39 sec
- Pass 3 of 7: Completed in 1.1 sec
- Pass 4 of 7: Completed in 2.1 sec
- Pass 5 of 7: Completed in 0.74 sec
- Pass 6 of 7: Completed in 1.1 sec
- Pass 7 of 7: Completed in 2.7 sec
Evaluation completed in 9.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.46 sec
- Pass 2 of 7: Completed in 0.37 sec
- Pass 3 of 7: Completed in 1.1 sec
- Pass 4 of 7: Completed in 1.9 sec
- Pass 5 of 7: Completed in 0.79 sec
- Pass 6 of 7: Completed in 1.1 sec
- Pass 7 of 7: Completed in 2.3 sec
Evaluation completed in 9.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.43 sec
- Pass 2 of 7: Completed in 0.41 sec
- Pass 3 of 7: Completed in 1.1 sec
- Pass 4 of 7: Completed in 1.9 sec
- Pass 5 of 7: Completed in 0.72 sec
- Pass 6 of 7: Completed in 1 sec
- Pass 7 of 7: Completed in 2.2 sec
Evaluation completed in 8.9 sec

Просмотрите обученный древовидный Mdl2.

view(Mdl2,'Mode','graph')

Оцените среднеквадратическую ошибку в выборке.

MSE_Mdl2 = gather(loss(Mdl2,tx,ty))
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.86 sec
Evaluation completed in 1.3 sec
MSE_Mdl2 = 9.3903

Mdl2 менее комплексное дерево с глубиной 4 и среднеквадратическая ошибка в выборке, которая выше, чем среднеквадратическая ошибка Mdl.

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

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

Загрузите carsmall набор данных. Рассмотрите Displacement, Horsepower, и Weight как предикторы ответа MPG.

load carsmall
X = [Displacement Horsepower Weight];

Преобразуйте массивы в оперативной памяти X и MPG к длинным массивам.

tx = tall(X);
Starting parallel pool (parpool) using the 'local' profile ...
Connected to the parallel pool (number of workers: 6).
ty = tall(MPG);

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

rng('default') 
tallrng('default')
[Mdl,FitInfo,HyperparameterOptimizationResults] = fitrtree(tx,ty,...
    'OptimizeHyperparameters','auto',...
    'HyperparameterOptimizationOptions',struct('Holdout',0.3,...
    'AcquisitionFunctionName','expected-improvement-plus'))

Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 6.3 sec
Evaluation completed in 8.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.5 sec
- Pass 2 of 4: Completed in 2.3 sec
- Pass 3 of 4: Completed in 5.1 sec
- Pass 4 of 4: Completed in 3.5 sec
Evaluation completed in 14 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.92 sec
- Pass 2 of 4: Completed in 2.1 sec
- Pass 3 of 4: Completed in 3.8 sec
- Pass 4 of 4: Completed in 3 sec
Evaluation completed in 11 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.89 sec
- Pass 2 of 4: Completed in 2 sec
- Pass 3 of 4: Completed in 4.8 sec
- Pass 4 of 4: Completed in 3.1 sec
Evaluation completed in 13 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1 sec
- Pass 2 of 4: Completed in 2.4 sec
- Pass 3 of 4: Completed in 4.8 sec
- Pass 4 of 4: Completed in 3.2 sec
Evaluation completed in 13 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1 sec
- Pass 2 of 4: Completed in 2.4 sec
- Pass 3 of 4: Completed in 3.6 sec
- Pass 4 of 4: Completed in 2.7 sec
Evaluation completed in 11 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.93 sec
- Pass 2 of 4: Completed in 2 sec
- Pass 3 of 4: Completed in 3.8 sec
- Pass 4 of 4: Completed in 2.9 sec
Evaluation completed in 11 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.9 sec
Evaluation completed in 2.4 sec
|======================================================================================|
| Iter | Eval   | Objective:  | Objective   | BestSoFar   | BestSoFar   |  MinLeafSize |
|      | result | log(1+loss) | runtime     | (observed)  | (estim.)    |              |
|======================================================================================|
|    1 | Best   |      3.2007 |      105.43 |      3.2007 |      3.2007 |            2 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.83 sec
Evaluation completed in 1.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.87 sec
- Pass 2 of 4: Completed in 1.9 sec
- Pass 3 of 4: Completed in 4.4 sec
- Pass 4 of 4: Completed in 3.1 sec
Evaluation completed in 11 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.2 sec
Evaluation completed in 1.6 sec
|    2 | Error  |         NaN |      19.881 |         NaN |      3.2007 |           46 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.72 sec
Evaluation completed in 1.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.86 sec
- Pass 2 of 4: Completed in 2 sec
- Pass 3 of 4: Completed in 3.2 sec
- Pass 4 of 4: Completed in 2.5 sec
Evaluation completed in 9.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.87 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 3.4 sec
- Pass 4 of 4: Completed in 2.4 sec
Evaluation completed in 9.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.77 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 3.2 sec
- Pass 4 of 4: Completed in 3 sec
Evaluation completed in 9.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.1 sec
Evaluation completed in 1.4 sec
|    3 | Best   |      3.1876 |      42.483 |      3.1876 |      3.1884 |           18 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.69 sec
Evaluation completed in 1.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.84 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 2.8 sec
- Pass 4 of 4: Completed in 2.3 sec
Evaluation completed in 8.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.85 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 3 sec
- Pass 4 of 4: Completed in 2.4 sec
Evaluation completed in 9.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.85 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 2.9 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 8.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.77 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 3 sec
- Pass 4 of 4: Completed in 2.5 sec
Evaluation completed in 9.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.1 sec
Evaluation completed in 1.5 sec
|    4 | Best   |      2.9048 |      52.189 |      2.9048 |      2.9537 |            6 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.71 sec
Evaluation completed in 1.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.8 sec
- Pass 2 of 4: Completed in 1.9 sec
- Pass 3 of 4: Completed in 3.6 sec
- Pass 4 of 4: Completed in 2.6 sec
Evaluation completed in 10 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.89 sec
- Pass 2 of 4: Completed in 2.5 sec
- Pass 3 of 4: Completed in 3.5 sec
- Pass 4 of 4: Completed in 2.5 sec
Evaluation completed in 11 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.99 sec
- Pass 2 of 4: Completed in 2 sec
- Pass 3 of 4: Completed in 3.7 sec
- Pass 4 of 4: Completed in 2.4 sec
Evaluation completed in 10 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.1 sec
Evaluation completed in 1.5 sec
|    5 | Accept |      3.2895 |      44.412 |      2.9048 |      2.9048 |           15 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.93 sec
Evaluation completed in 1.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.93 sec
- Pass 2 of 4: Completed in 2 sec
- Pass 3 of 4: Completed in 3.7 sec
- Pass 4 of 4: Completed in 2.7 sec
Evaluation completed in 11 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.99 sec
- Pass 2 of 4: Completed in 1.9 sec
- Pass 3 of 4: Completed in 3.4 sec
- Pass 4 of 4: Completed in 3.1 sec
Evaluation completed in 10 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.8 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 3 sec
- Pass 4 of 4: Completed in 3.6 sec
Evaluation completed in 10 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.78 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 3 sec
- Pass 4 of 4: Completed in 2.4 sec
Evaluation completed in 9.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.2 sec
Evaluation completed in 1.5 sec
|    6 | Accept |      3.1641 |      57.598 |      2.9048 |      3.1493 |            5 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.76 sec
Evaluation completed in 1.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.2 sec
- Pass 2 of 4: Completed in 2.1 sec
- Pass 3 of 4: Completed in 3.1 sec
- Pass 4 of 4: Completed in 2.3 sec
Evaluation completed in 10 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.9 sec
- Pass 3 of 4: Completed in 3.2 sec
- Pass 4 of 4: Completed in 2.4 sec
Evaluation completed in 9.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.83 sec
- Pass 2 of 4: Completed in 2 sec
- Pass 3 of 4: Completed in 3.1 sec
- Pass 4 of 4: Completed in 2.5 sec
Evaluation completed in 9.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.81 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 3.1 sec
- Pass 4 of 4: Completed in 2.5 sec
Evaluation completed in 9.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.1 sec
Evaluation completed in 1.5 sec
|    7 | Accept |      2.9048 |      55.193 |      2.9048 |      2.9048 |            6 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.7 sec
Evaluation completed in 1.1 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.9 sec
- Pass 3 of 4: Completed in 3.2 sec
- Pass 4 of 4: Completed in 2.5 sec
Evaluation completed in 9.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.83 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 3 sec
- Pass 4 of 4: Completed in 2.3 sec
Evaluation completed in 9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.82 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 2.9 sec
- Pass 4 of 4: Completed in 2.3 sec
Evaluation completed in 8.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.82 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 3 sec
- Pass 4 of 4: Completed in 2.3 sec
Evaluation completed in 9.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.2 sec
Evaluation completed in 1.6 sec
|    8 | Accept |      2.9522 |      53.495 |      2.9048 |      2.9048 |            7 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.74 sec
Evaluation completed in 1.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.83 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 3.2 sec
- Pass 4 of 4: Completed in 2.8 sec
Evaluation completed in 9.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.82 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 2.9 sec
- Pass 4 of 4: Completed in 2.6 sec
Evaluation completed in 9.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.88 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 3.5 sec
- Pass 4 of 4: Completed in 2.7 sec
Evaluation completed in 9.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.87 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 3 sec
- Pass 4 of 4: Completed in 2.4 sec
Evaluation completed in 9.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.2 sec
Evaluation completed in 1.6 sec
|    9 | Accept |      2.9985 |      55.524 |      2.9048 |      2.9048 |            8 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.8 sec
Evaluation completed in 1.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.84 sec
- Pass 2 of 4: Completed in 2 sec
- Pass 3 of 4: Completed in 3.7 sec
- Pass 4 of 4: Completed in 2.3 sec
Evaluation completed in 10 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.9 sec
- Pass 3 of 4: Completed in 3 sec
- Pass 4 of 4: Completed in 2.8 sec
Evaluation completed in 9.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.81 sec
- Pass 2 of 4: Completed in 2.1 sec
- Pass 3 of 4: Completed in 3 sec
- Pass 4 of 4: Completed in 2.4 sec
Evaluation completed in 9.4 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.7 sec
- Pass 3 of 4: Completed in 3 sec
- Pass 4 of 4: Completed in 2.4 sec
Evaluation completed in 9.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.5 sec
Evaluation completed in 1.9 sec
|   10 | Accept |      3.0185 |      56.169 |      2.9048 |      2.9048 |           10 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.68 sec
Evaluation completed in 1.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.81 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 3 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 8.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.85 sec
- Pass 2 of 4: Completed in 2 sec
- Pass 3 of 4: Completed in 3 sec
- Pass 4 of 4: Completed in 2.3 sec
Evaluation completed in 9.3 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.9 sec
- Pass 3 of 4: Completed in 2.9 sec
- Pass 4 of 4: Completed in 2.4 sec
Evaluation completed in 9.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1 sec
Evaluation completed in 1.4 sec
|   11 | Accept |      3.2895 |      41.119 |      2.9048 |      2.9048 |           14 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.76 sec
Evaluation completed in 1.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.87 sec
- Pass 2 of 4: Completed in 1.9 sec
- Pass 3 of 4: Completed in 2.9 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.76 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 2.8 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 8.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.2 sec
Evaluation completed in 1.6 sec
|   12 | Accept |      3.4798 |      28.268 |      2.9048 |      2.9049 |           31 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.8 sec
Evaluation completed in 1.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.85 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 3 sec
- Pass 4 of 4: Completed in 2.4 sec
Evaluation completed in 9.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.83 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 2.9 sec
- Pass 4 of 4: Completed in 2.6 sec
Evaluation completed in 9.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.87 sec
- Pass 2 of 4: Completed in 1.9 sec
- Pass 3 of 4: Completed in 3.1 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 9.3 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.8 sec
- Pass 3 of 4: Completed in 3.3 sec
- Pass 4 of 4: Completed in 2.3 sec
Evaluation completed in 9.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.81 sec
- Pass 2 of 4: Completed in 1.9 sec
- Pass 3 of 4: Completed in 3 sec
- Pass 4 of 4: Completed in 2.1 sec
Evaluation completed in 8.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.88 sec
- Pass 2 of 4: Completed in 2.2 sec
- Pass 3 of 4: Completed in 3.6 sec
- Pass 4 of 4: Completed in 2.3 sec
Evaluation completed in 10 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1 sec
Evaluation completed in 1.4 sec
|   13 | Accept |      3.2248 |      78.612 |      2.9048 |      2.9048 |            1 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.79 sec
Evaluation completed in 1.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.99 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 3.2 sec
- Pass 4 of 4: Completed in 2.4 sec
Evaluation completed in 9.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.82 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 2.8 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 8.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.87 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 3.8 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 9.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1 sec
- Pass 2 of 4: Completed in 1.9 sec
- Pass 3 of 4: Completed in 2.9 sec
- Pass 4 of 4: Completed in 2.1 sec
Evaluation completed in 9.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.83 sec
- Pass 2 of 4: Completed in 1.9 sec
- Pass 3 of 4: Completed in 2.9 sec
- Pass 4 of 4: Completed in 2.7 sec
Evaluation completed in 9.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.1 sec
Evaluation completed in 1.5 sec
|   14 | Accept |      3.1498 |      66.404 |      2.9048 |      2.9048 |            3 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.68 sec
Evaluation completed in 1.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.82 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 3.1 sec
- Pass 4 of 4: Completed in 2.4 sec
Evaluation completed in 9.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.84 sec
- Pass 2 of 4: Completed in 2.1 sec
- Pass 3 of 4: Completed in 3.1 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 9.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.99 sec
- Pass 2 of 4: Completed in 2.1 sec
- Pass 3 of 4: Completed in 3.9 sec
- Pass 4 of 4: Completed in 3.4 sec
Evaluation completed in 12 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.83 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 3.1 sec
- Pass 4 of 4: Completed in 2.3 sec
Evaluation completed in 9.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.1 sec
Evaluation completed in 1.5 sec
|   15 | Accept |      2.9048 |      55.887 |      2.9048 |      2.9048 |            6 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.68 sec
Evaluation completed in 1.1 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.8 sec
- Pass 3 of 4: Completed in 2.9 sec
- Pass 4 of 4: Completed in 2.3 sec
Evaluation completed in 8.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.78 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 3 sec
- Pass 4 of 4: Completed in 2.3 sec
Evaluation completed in 9.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.75 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 2.9 sec
- Pass 4 of 4: Completed in 2.3 sec
Evaluation completed in 8.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.75 sec
- Pass 2 of 4: Completed in 1.9 sec
- Pass 3 of 4: Completed in 3 sec
- Pass 4 of 4: Completed in 2.3 sec
Evaluation completed in 9.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.3 sec
Evaluation completed in 1.7 sec
|   16 | Accept |      2.9048 |      52.961 |      2.9048 |      2.9048 |            6 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.76 sec
Evaluation completed in 1.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.88 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 3.4 sec
- Pass 4 of 4: Completed in 2.7 sec
Evaluation completed in 10 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.78 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 2.9 sec
- Pass 4 of 4: Completed in 2.3 sec
Evaluation completed in 8.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.99 sec
Evaluation completed in 1.4 sec
|   17 | Accept |      3.1847 |      29.784 |      2.9048 |      2.9048 |           23 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.87 sec
Evaluation completed in 1.3 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.8 sec
- Pass 3 of 4: Completed in 2.9 sec
- Pass 4 of 4: Completed in 2.4 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 2.1 sec
- Pass 3 of 4: Completed in 3.1 sec
- Pass 4 of 4: Completed in 2.4 sec
Evaluation completed in 10 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.82 sec
- Pass 2 of 4: Completed in 2.1 sec
- Pass 3 of 4: Completed in 3.2 sec
- Pass 4 of 4: Completed in 2.3 sec
Evaluation completed in 9.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.8 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 3.2 sec
- Pass 4 of 4: Completed in 2.4 sec
Evaluation completed in 9.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1 sec
Evaluation completed in 1.4 sec
|   18 | Accept |      3.1817 |      54.833 |      2.9048 |      2.9048 |            4 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.69 sec
Evaluation completed in 1.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.81 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 2.9 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 8.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.97 sec
Evaluation completed in 1.3 sec
|   19 | Error  |         NaN |      16.205 |      2.9048 |      2.9048 |           38 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.69 sec
Evaluation completed in 1.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.74 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 2.8 sec
- Pass 4 of 4: Completed in 2.4 sec
Evaluation completed in 8.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.85 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 2.8 sec
- Pass 4 of 4: Completed in 2.1 sec
Evaluation completed in 8.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.78 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 3 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 8.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.84 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 3 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 8.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.1 sec
Evaluation completed in 1.4 sec
|   20 | Accept |      3.0628 |      51.234 |      2.9048 |      2.9048 |           12 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.75 sec
Evaluation completed in 1.2 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.7 sec
- Pass 3 of 4: Completed in 2.9 sec
- Pass 4 of 4: Completed in 2.3 sec
Evaluation completed in 8.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 1.6 sec
- Pass 2 of 4: Completed in 2.8 sec
- Pass 3 of 4: Completed in 3.5 sec
- Pass 4 of 4: Completed in 2.4 sec
Evaluation completed in 12 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.96 sec
Evaluation completed in 1.3 sec
|======================================================================================|
| Iter | Eval   | Objective:  | Objective   | BestSoFar   | BestSoFar   |  MinLeafSize |
|      | result | log(1+loss) | runtime     | (observed)  | (estim.)    |              |
|======================================================================================|
|   21 | Accept |      3.1847 |      30.525 |      2.9048 |      2.9048 |           27 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.68 sec
Evaluation completed in 1.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 1.7 sec
- Pass 3 of 4: Completed in 2.9 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 8.6 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.7 sec
- Pass 3 of 4: Completed in 2.8 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 8.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.94 sec
- Pass 2 of 4: Completed in 2.7 sec
- Pass 3 of 4: Completed in 4.1 sec
- Pass 4 of 4: Completed in 2.5 sec
Evaluation completed in 12 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.82 sec
- Pass 2 of 4: Completed in 1.9 sec
- Pass 3 of 4: Completed in 3 sec
- Pass 4 of 4: Completed in 2.6 sec
Evaluation completed in 9.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.1 sec
Evaluation completed in 1.5 sec
|   22 | Accept |      3.0185 |      54.633 |      2.9048 |      2.9048 |            9 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.71 sec
Evaluation completed in 1.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.82 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 2.9 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 8.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.73 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 2.8 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 8.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.8 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 2.8 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 8.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.99 sec
Evaluation completed in 1.4 sec
|   23 | Accept |      3.0749 |      38.992 |      2.9048 |      2.9048 |           20 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.66 sec
Evaluation completed in 1.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.72 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 2.9 sec
- Pass 4 of 4: Completed in 2.5 sec
Evaluation completed in 8.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.75 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 2.8 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 8.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.85 sec
- Pass 2 of 4: Completed in 2 sec
- Pass 3 of 4: Completed in 2.8 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 9.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.78 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 2.8 sec
- Pass 4 of 4: Completed in 2.1 sec
Evaluation completed in 8.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1 sec
Evaluation completed in 1.4 sec
|   24 | Accept |      3.0628 |      50.819 |      2.9048 |      2.9048 |           11 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.67 sec
Evaluation completed in 1.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.74 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 2.8 sec
- Pass 4 of 4: Completed in 2.1 sec
Evaluation completed in 8.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.97 sec
Evaluation completed in 1.3 sec
|   25 | Error  |         NaN |      15.733 |      2.9048 |      2.9048 |           34 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.67 sec
Evaluation completed in 1.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.76 sec
- Pass 2 of 4: Completed in 1.9 sec
- Pass 3 of 4: Completed in 2.8 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 8.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.81 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 2.8 sec
- Pass 4 of 4: Completed in 2.1 sec
Evaluation completed in 8.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.96 sec
Evaluation completed in 1.3 sec
|   26 | Accept |      3.1847 |       27.32 |      2.9048 |      2.9048 |           25 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.7 sec
Evaluation completed in 1.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.77 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 2.8 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 8.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.83 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 2.8 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 8.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.74 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 3.1 sec
- Pass 4 of 4: Completed in 2.5 sec
Evaluation completed in 9.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.2 sec
Evaluation completed in 1.5 sec
|   27 | Accept |      3.2895 |      40.116 |      2.9048 |      2.9048 |           16 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.71 sec
Evaluation completed in 1.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.76 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 2.8 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 8.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.74 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 2.8 sec
- Pass 4 of 4: Completed in 2.3 sec
Evaluation completed in 8.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.74 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 2.9 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 8.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.1 sec
Evaluation completed in 1.5 sec
|   28 | Accept |      3.2135 |      39.236 |      2.9048 |      2.9048 |           13 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.69 sec
Evaluation completed in 1.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.76 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 2.8 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 8.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.76 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 3 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 8.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.99 sec
Evaluation completed in 1.4 sec
|   29 | Accept |      3.1847 |      27.328 |      2.9048 |      2.9048 |           21 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.77 sec
Evaluation completed in 1.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.76 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 2.9 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 8.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.78 sec
- Pass 2 of 4: Completed in 1.8 sec
- Pass 3 of 4: Completed in 2.8 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 8.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1 sec
Evaluation completed in 1.4 sec
|   30 | Accept |      3.1827 |      27.838 |      2.9048 |      2.9122 |           29 |

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

Best observed feasible point:
    MinLeafSize
    ___________

         6     

Observed objective function value = 2.9048
Estimated objective function value = 2.9122
Function evaluation time = 52.1889

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

         6     

Estimated objective function value = 2.9122
Estimated function evaluation time = 54.4166

Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 2: Completed in 0.37 sec
- Pass 2 of 2: Completed in 0.35 sec
Evaluation completed in 1.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.42 sec
- Pass 2 of 7: Completed in 0.35 sec
- Pass 3 of 7: Completed in 1.1 sec
- Pass 4 of 7: Completed in 1.9 sec
- Pass 5 of 7: Completed in 0.73 sec
- Pass 6 of 7: Completed in 1.1 sec
- Pass 7 of 7: Completed in 1.9 sec
Evaluation completed in 8.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.4 sec
- Pass 2 of 7: Completed in 0.32 sec
- Pass 3 of 7: Completed in 1.2 sec
- Pass 4 of 7: Completed in 1.9 sec
- Pass 5 of 7: Completed in 0.8 sec
- Pass 6 of 7: Completed in 1.1 sec
- Pass 7 of 7: Completed in 2 sec
Evaluation completed in 8.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.45 sec
- Pass 2 of 7: Completed in 0.35 sec
- Pass 3 of 7: Completed in 1.1 sec
- Pass 4 of 7: Completed in 2 sec
- Pass 5 of 7: Completed in 0.72 sec
- Pass 6 of 7: Completed in 1.1 sec
- Pass 7 of 7: Completed in 2.2 sec
Evaluation completed in 8.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.4 sec
- Pass 2 of 7: Completed in 0.33 sec
- Pass 3 of 7: Completed in 1.2 sec
- Pass 4 of 7: Completed in 1.9 sec
- Pass 5 of 7: Completed in 0.78 sec
- Pass 6 of 7: Completed in 1.1 sec
- Pass 7 of 7: Completed in 2 sec
Evaluation completed in 8.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.43 sec
- Pass 2 of 7: Completed in 0.33 sec
- Pass 3 of 7: Completed in 1.1 sec
- Pass 4 of 7: Completed in 2 sec
- Pass 5 of 7: Completed in 0.75 sec
- Pass 6 of 7: Completed in 1.2 sec
- Pass 7 of 7: Completed in 2 sec
Evaluation completed in 8.8 sec
Mdl = 
  classreg.learning.regr.CompactRegressionTree
             ResponseName: 'Y'
    CategoricalPredictors: []
        ResponseTransform: 'none'


  Properties, Methods

FitInfo = struct with no fields.


HyperparameterOptimizationResults = 
  BayesianOptimization with properties:

                      ObjectiveFcn: @createObjFcn/tallObjFcn
              VariableDescriptions: [3×1 optimizableVariable]
                           Options: [1×1 struct]
                      MinObjective: 2.9048
                   XAtMinObjective: [1×1 table]
             MinEstimatedObjective: 2.9122
          XAtMinEstimatedObjective: [1×1 table]
           NumObjectiveEvaluations: 30
                  TotalElapsedTime: 1.4036e+03
                         NextPoint: [1×1 table]
                            XTrace: [30×1 table]
                    ObjectiveTrace: [30×1 double]
                  ConstraintsTrace: []
                     UserDataTrace: {30×1 cell}
      ObjectiveEvaluationTimeTrace: [30×1 double]
                IterationTimeTrace: [30×1 double]
                        ErrorTrace: [30×1 double]
                  FeasibilityTrace: [30×1 logical]
       FeasibilityProbabilityTrace: [30×1 double]
               IndexOfMinimumTrace: [30×1 double]
             ObjectiveMinimumTrace: [30×1 double]
    EstimatedObjectiveMinimumTrace: [30×1 double]

Входные параметры

свернуть все

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

Если Tbl содержит переменную отклика, и вы хотите использовать все остающиеся переменные в Tbl как предикторы, затем задайте переменную отклика при помощи ResponseVarName.

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

Если Tbl не содержит переменную отклика, затем задает переменную отклика при помощи Y. Длина переменной отклика и количество строк в Tbl должно быть равным.

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

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

Необходимо задать ResponseVarName как вектор символов или скаляр строки. Например, если Tbl хранит переменную отклика Y как Tbl.Y, затем задайте его как 'Y'. В противном случае программное обеспечение обрабатывает все столбцы Tbl, включая Y, как предикторы, когда обучение модель.

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

Объяснительная модель переменной отклика и подмножество переменных предикторов, заданных как вектор символов или скаляр строки в форме 'Y~X1+X2+X3'. В этой форме, Y представляет переменную отклика и X1x2 , и X3 представляйте переменные предикторы.

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

Имена переменных в формуле должны быть оба именами переменных в Tbl (Tbl.Properties.VariableNames) и допустимые идентификаторы MATLAB®.

Можно проверить имена переменных в Tbl при помощи isvarname функция. Следующий код возвращает логический 1 TRUE) для каждой переменной, которая имеет допустимое имя переменной.

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

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

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

Программное обеспечение рассматривает NaN значения в Y быть отсутствующими значениями. fitrtree не использует наблюдения с отсутствующими значениями для Y в подгонке.

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

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

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

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

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

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

Пример: 'CrossVal','on','MinParentSize',30 задает перекрестное подтвержденное дерево регрессии с минимумом 30 наблюдений на узел ветви.

Примечание

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

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

свернуть все

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

ЗначениеОписание
Вектор положительных целых чиселКаждая запись в векторе является значением индекса, соответствующим столбцу данных о предикторе (X или Tbl) это содержит категориальную переменную.
Логический векторtrue запись означает что соответствующий столбец данных о предикторе (X или Tbl) категориальная переменная.
Символьная матрицаКаждая строка матрицы является именем переменного предиктора. Имена должны совпадать с записями в PredictorNames. Заполните имена дополнительными пробелами, таким образом, каждая строка символьной матрицы имеет ту же длину.
Массив строк или массив ячеек из символьных векторовКаждый элемент в массиве является именем переменного предиктора. Имена должны совпадать с записями в PredictorNames.
всеВсе предикторы являются категориальными.

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

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

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

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

Примечание

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

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

Если MergeLeaves 'on', затем fitrtree:

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

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

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

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

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

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

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

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

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

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

    • Если 'NumBins' значение превышает номер (u) уникальных значений для предиктора, затем fitrtree интервалы предиктор в интервалы u.

    • fitrtree не делает интервала категориальные предикторы.

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

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

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

Типы данных: 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' выбрать который переменные предикторы использовать в обучении. Таким образом, fitrtree использование только переменные предикторы в PredictorNames и переменная отклика в обучении.

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

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

    • Это - хорошая практика, чтобы задать предикторы для обучения с помощью любого 'PredictorNames' или formula только.

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

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

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

ЗначениеОписание
'allsplits'

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

'curvature'Тест искривления — Выбирает предиктор разделения, который минимизирует p - значение тестов хи-квадрата независимости между каждым предиктором и ответом [2]. Учебная скорость похожа на стандартный CART.
'interaction-curvature'Тест взаимодействия — Выбирает предиктор разделения, который минимизирует p - значение тестов хи-квадрата независимости между каждым предиктором и ответом (то есть, проводит тесты искривления), и это минимизирует p - значение теста хи-квадрата независимости между каждой парой предикторов и ответом [2]. Учебная скорость может быть медленнее, чем стандартный CART.

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

Совет

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

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

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

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

  • Скорость прогноза незатронута значением 'PredictorSelection'.

Для получения дополнительной информации, на как fitrtree выбирает предикторы разделения, см. Правила Расщепления узлов и Выберите Split Predictor Selection Technique.

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

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

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

Чтобы сократить обученное дерево регрессии, передайте дерево регрессии prune.

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

Сокращение критерия, заданного как разделенная запятой пара, состоящая из 'PruneCriterion' и 'mse'.

Квадратичный ошибочный допуск на узел, заданный как разделенная запятой пара, состоящая из 'QuadraticErrorTolerance' и значение положительной скалярной величины. Функция прекращает разделять узлы, когда квадратичная невязка взвешенного среднего на узел опускается ниже QuadraticErrorTolerance*ε, где ε квадратичная невязка взвешенного среднего всех ответов n, вычисленных прежде, чем вырастить дерево решений.

ε=i=1nwi(yiy¯)2.

wi является весом наблюдения i, учитывая, что веса всех наблюдений суммируют к одному (i=1nwi=1), и

y¯=i=1nwiyi

взвешенное среднее всех ответов.

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

Пример: 'QuadraticErrorTolerance',1e-4

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

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

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

Типы данных: логический

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

  • Если вы предоставляете Y, затем можно использовать 'ResponseName' задавать имя для переменной отклика.

  • Если вы предоставляете ResponseVarName или formula, затем вы не можете использовать 'ResponseName'.

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

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

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

Пример: Предположим, что вы создаете указатель на функцию, который применяет экспоненциальное преобразование к входному вектору при помощи myfunction = @(y)exp(y). Затем можно задать преобразование ответа как 'ResponseTransform',myfunction.

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

Разделите критерий, заданный как разделенная запятой пара, состоящая из 'SplitCriterion' и 'MSE', значение среднеквадратической ошибки.

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

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

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

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

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

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

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

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

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

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

fitrtree нормирует веса в каждом классе, чтобы составить в целом 1.

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

Перекрестная проверка

свернуть все

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

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

В качестве альтернативы перекрестный подтвердите tree позже использование crossval метод.

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

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

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

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

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

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

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

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

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

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

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

Флаг перекрестной проверки "Пропускает один", заданный как разделенная запятой пара, состоящая из 'Leaveout' и любой 'on' или 'off. Используйте перекрестную проверку, "пропускают один" путем установки на 'on'.

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

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

Гиперпараметры

свернуть все

Максимальное количество разделений решения (или узлы ветви), заданный как разделенная запятой пара, состоящая из 'MaxNumSplits' и положительное целое число. fitrtree разделения MaxNumSplits или меньше узлов ветви. Для получения дополнительной информации о разделяющем поведении смотрите Древовидное Управление Глубиной.

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

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

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

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

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

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

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

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

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

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

Гипероптимизация параметров управления

свернуть все

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

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

  • 'auto' — Используйте {'MinLeafSize'}.

  • 'all' — Оптимизируйте все имеющие право параметры.

  • Массив строк или массив ячеек имеющих право названий параметра.

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

Оптимизация пытается минимизировать потерю перекрестной проверки (ошибка) для fitrtree путем варьирования параметров. Чтобы управлять типом перекрестной проверки и другими аспектами оптимизации, используйте HyperparameterOptimizationOptions пара "имя-значение".

Примечание

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

Имеющие право параметры для fitrtree :

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

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

  • NumVariablesToSamplefitrtree не оптимизирует по этому гиперпараметру. Если вы передаете NumVariablesToSample как название параметра, fitrtree просто использует полное количество предикторов. Однако fitrensemble действительно оптимизирует по этому гиперпараметру.

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

load carsmall
params = hyperparameters('fitrtree',[Horsepower,Weight],MPG);
params(1).Range = [1,30];

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

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

Для примера смотрите, Оптимизируют Дерево Регрессии.

Пример: 'auto'

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

Имя поляЗначенияЗначение по умолчанию
Optimizer
  • 'bayesopt' — Используйте Байесовую оптимизацию. Внутренне, эта установка вызывает bayesopt.

  • 'gridsearch' — Используйте поиск сетки с NumGridDivisions значения на размерность.

  • 'randomsearch' — Поиск наугад среди MaxObjectiveEvaluations 'points'.

'gridsearch' поисковые запросы в произвольном порядке, с помощью универсальной выборки без замены от сетки. После оптимизации можно получить таблицу в порядке сетки при помощи команды sortrows(Mdl.HyperparameterOptimizationResults).

'bayesopt'
AcquisitionFunctionName

  • 'expected-improvement-per-second-plus'

  • 'expected-improvement'

  • 'expected-improvement-plus'

  • 'expected-improvement-per-second'

  • 'lower-confidence-bound'

  • 'probability-of-improvement'

Приобретение функционирует, чьи имена включают per-second не давайте к восстанавливаемым результатам, потому что оптимизация зависит от времени выполнения целевой функции. Приобретение функционирует, чьи имена включают plus измените их поведение, когда они сверхиспользуют область. Для получения дополнительной информации смотрите Типы Функции Приобретения.

'expected-improvement-per-second-plus'
MaxObjectiveEvaluationsМаксимальное количество оценок целевой функции.30 для 'bayesopt' или 'randomsearch', и целая сетка для 'gridsearch'
MaxTime

Ограничение по времени, заданное как положительное действительное. Ограничение по времени находится в секундах, как измерено tic и toc. Время выполнения может превысить MaxTime потому что MaxTime не делает оценок функции обработки прерываний.

Inf
NumGridDivisionsДля 'gridsearch', количество значений в каждой размерности. Значение может быть вектором положительных целых чисел, дающих количество значений для каждой размерности или скаляр, который применяется ко всем размерностям. Это поле проигнорировано для категориальных переменных.10
ShowPlotsЛогическое значение, указывающее, показать ли графики. Если true, это поле строит лучшее значение целевой функции против номера итерации. Если существуют один или два параметра оптимизации, и если Optimizer 'bayesopt', затем ShowPlots также строит модель целевой функции против параметров.true
SaveIntermediateResultsЛогическое значение, указывающее, сохранить ли результаты когда Optimizer 'bayesopt'. Если true, это поле перезаписывает переменную рабочей области под названием 'BayesoptResults' в каждой итерации. Переменной является BayesianOptimization объект.false
Verbose

Отобразитесь к командной строке.

  • 0 — Никакое итеративное отображение

  • 1 Итеративное отображение

  • 2 — Итеративное отображение с дополнительной информацией

Для получения дополнительной информации смотрите bayesopt Verbose аргумент пары "имя-значение".

1
UseParallelЛогическое значение, указывающее, запустить ли Байесовую оптимизацию параллельно, которая требует Parallel Computing Toolbox™. Из-за невоспроизводимости синхронизации параллели, параллельная Байесова оптимизация не обязательно дает к восстанавливаемым результатам. Для получения дополнительной информации смотрите Параллельную Байесовую Оптимизацию.false
Repartition

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

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

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

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

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

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

свернуть все

Дерево регрессии, возвращенное как объект дерева регрессии. Используя 'Crossval', 'KFold', 'Holdout', 'Leaveout', или 'CVPartition' опции приводят к дереву класса RegressionPartitionedModel. Вы не можете использовать разделенное дерево в прогнозе, таким образом, этот вид дерева не имеет predict метод.

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

Больше о

свернуть все

Тест искривления

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

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

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

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

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

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

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

    t=nk=1Kj=1J(π^jkπ^j+π^+k)2π^j+π^+k

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

λjk=min(PL,PR)(1PLjLkPRjRk)min(PL,PR).

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

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

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

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

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

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

Суррогатные разделения решения

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

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

Советы

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

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

Алгоритмы

свернуть все

Правила расщепления узлов

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

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

    1. fitrtree вычисляет квадратичную невязку взвешенного среднего (MSE) ответов в узле использование t

      εt=jTwj(yjy¯t)2.

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

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

      P(T)=jTwj.

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

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

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

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

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

          ΔI=P(T)εtP(TL)εtLP(TR)εtR.

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

          ΔIU=P(TTU)εtP(TL)εtLP(TR)εtR.

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

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

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

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

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

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

      3. fitrtree выбирает кандидата, который дает к самому большому сокращению MSE.

    fitrtree разделяет переменный предиктор в точке разделения, которая максимизирует сокращение MSE.

  • Для теста искривления (то есть, если PredictorSelection 'curvature'):

    1. fitrtree вычисляет остаточные значения rti=ytiy¯t для всех наблюдений в узле t. y¯t=1iwiiwiyti, который является взвешенным средним ответов в узле t. Веса являются весами наблюдения в Weights.

    2. fitrtree наблюдения присвоений к одному из двух интервалов согласно знаку соответствующих остаточных значений. Позвольте zt быть номинальной переменной, которая содержит присвоения интервала для наблюдений в узле t.

    3. fitrtree проводит тесты искривления между каждым предиктором и zt. Для деревьев регрессии, K = 2.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • Существует MaxNumSplits узлы ветви.

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

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

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

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

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

Распараллеливание

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

Ссылки

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

[2] Loh, W.Y. “Деревья регрессии с Несмещенным Обнаружением Выбора переменной и Взаимодействия”. Statistica Sinica, Издание 12, 2002, стр 361–386.

[3] Loh, В.И. и И.С. Ши. “Разделите Методы выбора для Деревьев Классификации”. Statistica Sinica, Издание 7, 1997, стр 815–840.

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

Введенный в R2014a