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

Спрогнозируйте пробег 4000-фунтовых автомобилей с 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 для MaxNumSplits. n - размер обучающей выборки.

  • 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)

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

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

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

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

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

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

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

Сравните средние квадратичные невязки (MSE) перекрестной валидации моделей.

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.13915 |      3.2818 |      3.2818 |           28 |
|    2 | Accept |      3.4183 |     0.05742 |      3.2818 |      3.2888 |            1 |
|    3 | Best   |      3.1457 |    0.051596 |      3.1457 |      3.1628 |            4 |
|    4 | Best   |      2.9885 |    0.070203 |      2.9885 |      2.9885 |            9 |
|    5 | Accept |      2.9978 |    0.047302 |      2.9885 |      2.9885 |            7 |
|    6 | Accept |      3.0203 |     0.04998 |      2.9885 |      3.0013 |            8 |
|    7 | Accept |      2.9885 |    0.053438 |      2.9885 |      2.9981 |            9 |
|    8 | Best   |      2.9589 |    0.063346 |      2.9589 |      2.9589 |           10 |
|    9 | Accept |       3.078 |    0.060645 |      2.9589 |      2.9888 |           13 |
|   10 | Accept |      4.1881 |    0.052751 |      2.9589 |      2.9592 |           50 |
|   11 | Accept |      3.4182 |    0.064517 |      2.9589 |      2.9592 |            2 |
|   12 | Accept |      3.0376 |     0.04815 |      2.9589 |      2.9591 |            6 |
|   13 | Accept |      3.1453 |    0.070829 |      2.9589 |      2.9591 |           20 |
|   14 | Accept |      2.9589 |    0.082447 |      2.9589 |       2.959 |           10 |
|   15 | Accept |      3.0123 |    0.048664 |      2.9589 |      2.9728 |           11 |
|   16 | Accept |      2.9589 |    0.079412 |      2.9589 |      2.9593 |           10 |
|   17 | Accept |      3.3055 |    0.053384 |      2.9589 |      2.9593 |            3 |
|   18 | Accept |      2.9589 |     0.04755 |      2.9589 |      2.9592 |           10 |
|   19 | Accept |      3.4577 |    0.053403 |      2.9589 |      2.9591 |           37 |
|   20 | Accept |      3.2166 |    0.060229 |      2.9589 |       2.959 |           16 |
|======================================================================================|
| Iter | Eval   | Objective:  | Objective   | BestSoFar   | BestSoFar   |  MinLeafSize |
|      | result | log(1+loss) | runtime     | (observed)  | (estim.)    |              |
|======================================================================================|
|   21 | Accept |       3.107 |    0.052991 |      2.9589 |      2.9591 |            5 |
|   22 | Accept |      3.2818 |    0.050341 |      2.9589 |       2.959 |           24 |
|   23 | Accept |      3.3226 |    0.047839 |      2.9589 |       2.959 |           32 |
|   24 | Accept |      4.1881 |     0.04512 |      2.9589 |      2.9589 |           43 |
|   25 | Accept |      3.1789 |    0.079162 |      2.9589 |      2.9589 |           18 |
|   26 | Accept |      3.0992 |    0.048448 |      2.9589 |      2.9589 |           14 |
|   27 | Accept |      3.0556 |    0.054892 |      2.9589 |      2.9589 |           22 |
|   28 | Accept |      3.0459 |    0.078358 |      2.9589 |      2.9589 |           12 |
|   29 | Accept |      3.2818 |    0.052024 |      2.9589 |      2.9589 |           26 |
|   30 | Accept |      3.4361 |    0.046595 |      2.9589 |      2.9589 |           34 |

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

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

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

Best observed feasible point:
    MinLeafSize
    ___________

        10     

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

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

        10     

Estimated objective function value = 2.9589
Estimated function evaluation time = 0.058388
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стандартный алгоритм разделения предикторов ТЕЛЕЖКА предпочитает разделение непрерывного предиктора над этими двумя переменными.

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

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';

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

В этом случае 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);

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

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

rng('default') 
tallrng('default')
Mdl = fitrtree(tx,ty);
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 2: Completed in 4.1 sec
- Pass 2 of 2: Completed in 0.71 sec
Evaluation completed in 6.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 1.4 sec
- Pass 2 of 7: Completed in 0.29 sec
- Pass 3 of 7: Completed in 1.5 sec
- Pass 4 of 7: Completed in 3.3 sec
- Pass 5 of 7: Completed in 0.63 sec
- Pass 6 of 7: Completed in 1.2 sec
- Pass 7 of 7: Completed in 2.6 sec
Evaluation completed in 12 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.36 sec
- Pass 2 of 7: Completed in 0.27 sec
- Pass 3 of 7: Completed in 0.85 sec
- Pass 4 of 7: Completed in 2 sec
- Pass 5 of 7: Completed in 0.55 sec
- Pass 6 of 7: Completed in 0.92 sec
- Pass 7 of 7: Completed in 1.6 sec
Evaluation completed in 7.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.32 sec
- Pass 2 of 7: Completed in 0.29 sec
- Pass 3 of 7: Completed in 0.89 sec
- Pass 4 of 7: Completed in 1.9 sec
- Pass 5 of 7: Completed in 0.83 sec
- Pass 6 of 7: Completed in 1.2 sec
- Pass 7 of 7: Completed in 2.4 sec
Evaluation completed in 9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.33 sec
- Pass 2 of 7: Completed in 0.28 sec
- Pass 3 of 7: Completed in 0.89 sec
- Pass 4 of 7: Completed in 2.4 sec
- Pass 5 of 7: Completed in 0.76 sec
- Pass 6 of 7: Completed in 1 sec
- Pass 7 of 7: Completed in 1.7 sec
Evaluation completed in 8.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.34 sec
- Pass 2 of 7: Completed in 0.26 sec
- Pass 3 of 7: Completed in 0.81 sec
- Pass 4 of 7: Completed in 1.7 sec
- Pass 5 of 7: Completed in 0.56 sec
- Pass 6 of 7: Completed in 1 sec
- Pass 7 of 7: Completed in 1.9 sec
Evaluation completed in 7.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.35 sec
- Pass 2 of 7: Completed in 0.28 sec
- Pass 3 of 7: Completed in 0.81 sec
- Pass 4 of 7: Completed in 1.8 sec
- Pass 5 of 7: Completed in 0.76 sec
- Pass 6 of 7: Completed in 0.96 sec
- Pass 7 of 7: Completed in 2.2 sec
Evaluation completed in 8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.35 sec
- Pass 2 of 7: Completed in 0.32 sec
- Pass 3 of 7: Completed in 0.92 sec
- Pass 4 of 7: Completed in 1.9 sec
- Pass 5 of 7: Completed in 1 sec
- Pass 6 of 7: Completed in 1.5 sec
- Pass 7 of 7: Completed in 2.1 sec
Evaluation completed in 9.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.33 sec
- Pass 2 of 7: Completed in 0.28 sec
- Pass 3 of 7: Completed in 0.82 sec
- Pass 4 of 7: Completed in 1.4 sec
- Pass 5 of 7: Completed in 0.61 sec
- Pass 6 of 7: Completed in 0.93 sec
- Pass 7 of 7: Completed in 1.5 sec
Evaluation completed in 6.6 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 1.6 sec
Evaluation completed in 1.9 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.27 sec
- Pass 2 of 2: Completed in 0.28 sec
Evaluation completed in 0.84 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.36 sec
- Pass 2 of 7: Completed in 0.3 sec
- Pass 3 of 7: Completed in 0.95 sec
- Pass 4 of 7: Completed in 1.6 sec
- Pass 5 of 7: Completed in 0.55 sec
- Pass 6 of 7: Completed in 0.93 sec
- Pass 7 of 7: Completed in 1.5 sec
Evaluation completed in 7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.34 sec
- Pass 2 of 7: Completed in 0.3 sec
- Pass 3 of 7: Completed in 0.95 sec
- Pass 4 of 7: Completed in 1.7 sec
- Pass 5 of 7: Completed in 0.57 sec
- Pass 6 of 7: Completed in 0.94 sec
- Pass 7 of 7: Completed in 1.8 sec
Evaluation completed in 7.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.34 sec
- Pass 2 of 7: Completed in 0.3 sec
- Pass 3 of 7: Completed in 0.87 sec
- Pass 4 of 7: Completed in 1.5 sec
- Pass 5 of 7: Completed in 0.57 sec
- Pass 6 of 7: Completed in 0.81 sec
- Pass 7 of 7: Completed in 1.7 sec
Evaluation completed in 6.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.32 sec
- Pass 2 of 7: Completed in 0.27 sec
- Pass 3 of 7: Completed in 0.85 sec
- Pass 4 of 7: Completed in 1.6 sec
- Pass 5 of 7: Completed in 0.63 sec
- Pass 6 of 7: Completed in 0.9 sec
- Pass 7 of 7: Completed in 1.6 sec
Evaluation completed in 7 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.73 sec
Evaluation completed in 1 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' и установите начальные значения генераторов случайных чисел, используя rng и tallrng. Результаты могут варьироваться в зависимости от количества рабочих процессов и окружения выполнения для длинных массивов. Для получения дополнительной информации смотрите Управление, Где Ваш Код Запуски.

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 4.4 sec
Evaluation completed in 6.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.97 sec
- Pass 2 of 4: Completed in 1.6 sec
- Pass 3 of 4: Completed in 3.6 sec
- Pass 4 of 4: Completed in 2.4 sec
Evaluation completed in 9.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.55 sec
- Pass 2 of 4: Completed in 1.3 sec
- Pass 3 of 4: Completed in 2.7 sec
- Pass 4 of 4: Completed in 1.9 sec
Evaluation completed in 7.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.52 sec
- Pass 2 of 4: Completed in 1.3 sec
- Pass 3 of 4: Completed in 3 sec
- Pass 4 of 4: Completed in 2 sec
Evaluation completed in 8.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.55 sec
- Pass 2 of 4: Completed in 1.4 sec
- Pass 3 of 4: Completed in 2.6 sec
- Pass 4 of 4: Completed in 2 sec
Evaluation completed in 7.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.61 sec
- Pass 2 of 4: Completed in 1.2 sec
- Pass 3 of 4: Completed in 2.1 sec
- Pass 4 of 4: Completed in 1.7 sec
Evaluation completed in 6.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.53 sec
- Pass 2 of 4: Completed in 1.2 sec
- Pass 3 of 4: Completed in 2.4 sec
- Pass 4 of 4: Completed in 1.6 sec
Evaluation completed in 6.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.4 sec
Evaluation completed in 1.7 sec
|======================================================================================|
| Iter | Eval   | Objective:  | Objective   | BestSoFar   | BestSoFar   |  MinLeafSize |
|      | result | log(1+loss) | runtime     | (observed)  | (estim.)    |              |
|======================================================================================|
|    1 | Best   |      3.2007 |      69.013 |      3.2007 |      3.2007 |            2 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.52 sec
Evaluation completed in 0.83 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.65 sec
- Pass 2 of 4: Completed in 1.2 sec
- Pass 3 of 4: Completed in 3 sec
- Pass 4 of 4: Completed in 2 sec
Evaluation completed in 8.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.79 sec
Evaluation completed in 1 sec
|    2 | Error  |         NaN |      13.772 |         NaN |      3.2007 |           46 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.52 sec
Evaluation completed in 0.81 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.57 sec
- Pass 2 of 4: Completed in 1.3 sec
- Pass 3 of 4: Completed in 2.2 sec
- Pass 4 of 4: Completed in 1.7 sec
Evaluation completed in 6.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.5 sec
- Pass 2 of 4: Completed in 1.2 sec
- Pass 3 of 4: Completed in 2.7 sec
- Pass 4 of 4: Completed in 1.7 sec
Evaluation completed in 6.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.47 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 2.1 sec
- Pass 4 of 4: Completed in 1.9 sec
Evaluation completed in 6.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.72 sec
Evaluation completed in 0.99 sec
|    3 | Best   |      3.1876 |      29.091 |      3.1876 |      3.1884 |           18 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.48 sec
Evaluation completed in 0.76 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.5 sec
- Pass 2 of 4: Completed in 1.2 sec
- Pass 3 of 4: Completed in 1.9 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.48 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 2 sec
- Pass 4 of 4: Completed in 1.5 sec
Evaluation completed in 5.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.54 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.9 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.46 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.64 sec
Evaluation completed in 0.92 sec
|    4 | Best   |      2.9048 |      33.465 |      2.9048 |      2.9537 |            6 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.44 sec
Evaluation completed in 0.71 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.46 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 2 sec
- Pass 4 of 4: Completed in 1.5 sec
Evaluation completed in 5.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.47 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.9 sec
- Pass 4 of 4: Completed in 1.5 sec
Evaluation completed in 5.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.44 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.9 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.66 sec
Evaluation completed in 0.92 sec
|    5 | Accept |      3.2895 |      25.902 |      2.9048 |      2.9048 |           15 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.54 sec
Evaluation completed in 0.82 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.53 sec
- Pass 2 of 4: Completed in 1.2 sec
- Pass 3 of 4: Completed in 2 sec
- Pass 4 of 4: Completed in 1.5 sec
Evaluation completed in 6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.5 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 2.1 sec
- Pass 4 of 4: Completed in 1.9 sec
Evaluation completed in 6.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.49 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.9 sec
- Pass 4 of 4: Completed in 2 sec
Evaluation completed in 6.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.45 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 2 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.68 sec
Evaluation completed in 0.99 sec
|    6 | Accept |      3.1641 |      35.522 |      2.9048 |      3.1493 |            5 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.51 sec
Evaluation completed in 0.79 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.67 sec
- Pass 2 of 4: Completed in 1.3 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 6.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.45 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.9 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.48 sec
- Pass 2 of 4: Completed in 1.4 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.46 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.63 sec
Evaluation completed in 0.89 sec
|    7 | Accept |      2.9048 |      33.755 |      2.9048 |      2.9048 |            6 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.45 sec
Evaluation completed in 0.75 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.51 sec
- Pass 2 of 4: Completed in 1.2 sec
- Pass 3 of 4: Completed in 2.2 sec
- Pass 4 of 4: Completed in 1.5 sec
Evaluation completed in 6.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.49 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.9 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.46 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.45 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.68 sec
Evaluation completed in 0.97 sec
|    8 | Accept |      2.9522 |      33.362 |      2.9048 |      2.9048 |            7 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.42 sec
Evaluation completed in 0.71 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.48 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.45 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.5 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.9 sec
- Pass 4 of 4: Completed in 1.5 sec
Evaluation completed in 5.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.49 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.64 sec
Evaluation completed in 0.9 sec
|    9 | Accept |      2.9985 |      32.674 |      2.9048 |      2.9048 |            8 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.43 sec
Evaluation completed in 0.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.47 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.56 sec
- Pass 2 of 4: Completed in 1.2 sec
- Pass 3 of 4: Completed in 2 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.45 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.5 sec
Evaluation completed in 5.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.47 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.6 sec
Evaluation completed in 5.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.88 sec
Evaluation completed in 1.2 sec
|   10 | Accept |      3.0185 |      33.922 |      2.9048 |      2.9048 |           10 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.44 sec
Evaluation completed in 0.74 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.46 sec
- Pass 2 of 4: Completed in 1.2 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.48 sec
- Pass 2 of 4: Completed in 1.2 sec
- Pass 3 of 4: Completed in 2 sec
- Pass 4 of 4: Completed in 1.6 sec
Evaluation completed in 6.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.73 sec
- Pass 2 of 4: Completed in 1.2 sec
- Pass 3 of 4: Completed in 2 sec
- Pass 4 of 4: Completed in 1.5 sec
Evaluation completed in 6.2 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.63 sec
Evaluation completed in 0.88 sec
|   11 | Accept |      3.2895 |      26.625 |      2.9048 |      2.9048 |           14 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.48 sec
Evaluation completed in 0.78 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.51 sec
- Pass 2 of 4: Completed in 1.2 sec
- Pass 3 of 4: Completed in 1.9 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.48 sec
- Pass 2 of 4: Completed in 1.2 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.65 sec
Evaluation completed in 0.9 sec
|   12 | Accept |      3.4798 |      18.111 |      2.9048 |      2.9049 |           31 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.44 sec
Evaluation completed in 0.71 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.45 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.5 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.5 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.48 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.44 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.43 sec
- Pass 2 of 4: Completed in 1.2 sec
- Pass 3 of 4: Completed in 2 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.64 sec
Evaluation completed in 0.91 sec
|   13 | Accept |      3.2248 |      47.436 |      2.9048 |      2.9048 |            1 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.46 sec
Evaluation completed in 0.74 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.6 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.45 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.57 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 2.6 sec
- Pass 4 of 4: Completed in 1.6 sec
Evaluation completed in 6.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.62 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.5 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.6 sec
Evaluation completed in 6.1 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.61 sec
Evaluation completed in 0.88 sec
|   14 | Accept |      3.1498 |      42.062 |      2.9048 |      2.9048 |            3 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.46 sec
Evaluation completed in 0.76 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.48 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.5 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.67 sec
- Pass 2 of 4: Completed in 1.3 sec
- Pass 3 of 4: Completed in 2.3 sec
- Pass 4 of 4: Completed in 2.2 sec
Evaluation completed in 7.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.45 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.6 sec
Evaluation completed in 0.86 sec
|   15 | Accept |      2.9048 |        34.3 |      2.9048 |      2.9048 |            6 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.48 sec
Evaluation completed in 0.78 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.44 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.44 sec
- Pass 2 of 4: Completed in 1.2 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.43 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.44 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 2 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.62 sec
Evaluation completed in 0.88 sec
|   16 | Accept |      2.9048 |       32.97 |      2.9048 |      2.9048 |            6 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.43 sec
Evaluation completed in 0.73 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.47 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.43 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.62 sec
Evaluation completed in 0.9 sec
|   17 | Accept |      3.1847 |       17.47 |      2.9048 |      2.9048 |           23 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.43 sec
Evaluation completed in 0.72 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.44 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.68 sec
- Pass 2 of 4: Completed in 1.4 sec
- Pass 3 of 4: Completed in 1.9 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 6.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.45 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.44 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.62 sec
Evaluation completed in 0.93 sec
|   18 | Accept |      3.1817 |      33.346 |      2.9048 |      2.9048 |            4 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.43 sec
Evaluation completed in 0.72 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.44 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.62 sec
Evaluation completed in 0.86 sec
|   19 | Error  |         NaN |      10.235 |      2.9048 |      2.9048 |           38 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.47 sec
Evaluation completed in 0.76 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.44 sec
- Pass 2 of 4: Completed in 1.2 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.44 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.44 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.9 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.43 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.63 sec
Evaluation completed in 0.89 sec
|   20 | Accept |      3.0628 |      32.459 |      2.9048 |      2.9048 |           12 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.46 sec
Evaluation completed in 0.76 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.48 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.68 sec
- Pass 2 of 4: Completed in 1.7 sec
- Pass 3 of 4: Completed in 2.1 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 6.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.64 sec
Evaluation completed in 0.9 sec
|======================================================================================|
| Iter | Eval   | Objective:  | Objective   | BestSoFar   | BestSoFar   |  MinLeafSize |
|      | result | log(1+loss) | runtime     | (observed)  | (estim.)    |              |
|======================================================================================|
|   21 | Accept |      3.1847 |       19.02 |      2.9048 |      2.9048 |           27 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.45 sec
Evaluation completed in 0.75 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.47 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.45 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.5 sec
- Pass 2 of 4: Completed in 1.6 sec
- Pass 3 of 4: Completed in 2.4 sec
- Pass 4 of 4: Completed in 1.5 sec
Evaluation completed in 6.8 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.44 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.5 sec
Evaluation completed in 5.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.63 sec
Evaluation completed in 0.89 sec
|   22 | Accept |      3.0185 |      33.933 |      2.9048 |      2.9048 |            9 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.46 sec
Evaluation completed in 0.76 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.45 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.45 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.43 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.64 sec
Evaluation completed in 0.89 sec
|   23 | Accept |      3.0749 |      25.147 |      2.9048 |      2.9048 |           20 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.44 sec
Evaluation completed in 0.73 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.42 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.43 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.53 sec
- Pass 2 of 4: Completed in 1.4 sec
- Pass 3 of 4: Completed in 1.9 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.9 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.44 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.62 sec
Evaluation completed in 0.88 sec
|   24 | Accept |      3.0628 |      32.764 |      2.9048 |      2.9048 |           11 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.44 sec
Evaluation completed in 0.73 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.44 sec
- Pass 2 of 4: Completed in 1.2 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.61 sec
Evaluation completed in 0.87 sec
|   25 | Error  |         NaN |      10.294 |      2.9048 |      2.9048 |           34 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.44 sec
Evaluation completed in 0.73 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.45 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.43 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.62 sec
Evaluation completed in 0.87 sec
|   26 | Accept |      3.1847 |      17.587 |      2.9048 |      2.9048 |           25 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.45 sec
Evaluation completed in 0.73 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.45 sec
- Pass 2 of 4: Completed in 1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.44 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.43 sec
- Pass 2 of 4: Completed in 1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.3 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.66 sec
Evaluation completed in 0.96 sec
|   27 | Accept |      3.2895 |      24.867 |      2.9048 |      2.9048 |           16 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.44 sec
Evaluation completed in 0.74 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.45 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.43 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.44 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.4 sec
Evaluation completed in 5.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.6 sec
Evaluation completed in 0.88 sec
|   28 | Accept |      3.2135 |      24.928 |      2.9048 |      2.9048 |           13 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.47 sec
Evaluation completed in 0.76 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.45 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.46 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.62 sec
Evaluation completed in 0.87 sec
|   29 | Accept |      3.1847 |      17.582 |      2.9048 |      2.9048 |           21 |
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.53 sec
Evaluation completed in 0.81 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.44 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 4: Completed in 0.43 sec
- Pass 2 of 4: Completed in 1.1 sec
- Pass 3 of 4: Completed in 1.8 sec
- Pass 4 of 4: Completed in 1.3 sec
Evaluation completed in 5.4 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 0.63 sec
Evaluation completed in 0.88 sec
|   30 | Accept |      3.1827 |      17.597 |      2.9048 |      2.9122 |           29 |

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

Best observed feasible point:
    MinLeafSize
    ___________

         6     

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

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

         6     

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

Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 2: Completed in 0.26 sec
- Pass 2 of 2: Completed in 0.26 sec
Evaluation completed in 0.84 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.31 sec
- Pass 2 of 7: Completed in 0.25 sec
- Pass 3 of 7: Completed in 0.75 sec
- Pass 4 of 7: Completed in 1.2 sec
- Pass 5 of 7: Completed in 0.45 sec
- Pass 6 of 7: Completed in 0.69 sec
- Pass 7 of 7: Completed in 1.2 sec
Evaluation completed in 5.7 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.28 sec
- Pass 2 of 7: Completed in 0.24 sec
- Pass 3 of 7: Completed in 0.75 sec
- Pass 4 of 7: Completed in 1.2 sec
- Pass 5 of 7: Completed in 0.46 sec
- Pass 6 of 7: Completed in 0.67 sec
- Pass 7 of 7: Completed in 1.2 sec
Evaluation completed in 5.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.32 sec
- Pass 2 of 7: Completed in 0.25 sec
- Pass 3 of 7: Completed in 0.71 sec
- Pass 4 of 7: Completed in 1.2 sec
- Pass 5 of 7: Completed in 0.47 sec
- Pass 6 of 7: Completed in 0.66 sec
- Pass 7 of 7: Completed in 1.2 sec
Evaluation completed in 5.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.29 sec
- Pass 2 of 7: Completed in 0.25 sec
- Pass 3 of 7: Completed in 0.73 sec
- Pass 4 of 7: Completed in 1.2 sec
- Pass 5 of 7: Completed in 0.46 sec
- Pass 6 of 7: Completed in 0.68 sec
- Pass 7 of 7: Completed in 1.2 sec
Evaluation completed in 5.5 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 7: Completed in 0.27 sec
- Pass 2 of 7: Completed in 0.25 sec
- Pass 3 of 7: Completed in 0.75 sec
- Pass 4 of 7: Completed in 1.2 sec
- Pass 5 of 7: Completed in 0.47 sec
- Pass 6 of 7: Completed in 0.69 sec
- Pass 7 of 7: Completed in 1.2 sec
Evaluation completed in 5.6 sec
Mdl = 
  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: 882.5668
                         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 представляет переменную отклика, и x1, x2, и x3 представляют переменные предиктора.

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

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

Типы данных: 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' аргумент пары "имя-значение".

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

свернуть все

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

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

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

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

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

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

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

По умолчанию, если данные предиктора находятся в таблице (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' значение пустое (по умолчанию), тогда fitrtree не содержит предикторов.

  • Если вы задаете 'NumBins' значение как положительный целочисленный скаляр (numBins), затем fitrtree помещает каждый числовой предиктор в самое большее numBins equiprobable bins, а затем выращивает деревья на индексах интервал вместо исходных данных.

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

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

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

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

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

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

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

  • Если вы поставляете X и Y, тогда можно использовать PredictorNames для назначения имен переменным предиктора в X.

    • Порядок имен в PredictorNames должен соответствовать порядку столбцов X. То есть PredictorNames{1} - имя X(:,1), PredictorNames{2} - имя X(:,2)и так далее. Кроме того, size(X,2) и numel(PredictorNames) должно быть равным.

    • По умолчанию PredictorNames является {'x1','x2',...}.

  • Если вы поставляете Tbl, тогда можно использовать PredictorNames выбрать, какие переменные предиктора использовать в обучении. То есть, fitrtree использует только переменные предиктора в PredictorNames и переменной отклика во время обучения.

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

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

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

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

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

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

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

Стандартная ТЕЛЕЖКА - выбирает предиктор разделения, который максимизирует коэффициент усиления разделения по всем возможным разделениям всех предикторов [1].

'curvature'Тест кривизны - выбирает разделенный предиктор, который минимизирует p-значение хи-квадратных тестов независимости между каждым предиктором и ответом [2]. Скорость обучения аналогична стандартной ТЕЛЕЖКА.
'interaction-curvature'Тест взаимодействия - выбирает разделенный предиктор, который минимизирует p-значение хи-квадратных тестов независимости между каждым предиктором и ответом (то есть проводит тесты кривизны), и который минимизирует p-значение хи-квадратного теста независимости между каждой парой предикторов и ответом [2]. Скорость обучения может быть медленнее, чем стандартная ТЕЛЕЖКА.

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

Совет

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

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

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

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

  • Скорость предсказания не зависит от значения 'PredictorSelection'.

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

Пример: '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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для получения примера см. раздел «Оптимизация дерева регрессии».

Пример: 'auto'

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

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

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

  • 'randomsearch' - Поиск наугад среди MaxObjectiveEvaluations точки.

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

'bayesopt'
AcquisitionFunctionName

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

  • 'expected-improvement'

  • 'expected-improvement-plus'

  • 'expected-improvement-per-second'

  • 'lower-confidence-bound'

  • 'probability-of-improvement'

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

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

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

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

Отображение в командной строке.

  • 0 - Нет итерационного отображения

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

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

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

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

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

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

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

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

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

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

свернуть все

Регрессионное дерево, возвращенное как объект регрессионного дерева. Использование 'Crossval', 'KFold', 'Holdout', 'Leaveout', или 'CVPartition' опции приводят к дереву классов 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=1I - функция индикации, а n - размер выборки. Если все наблюдения имеют одинаковый вес, то π^jk=njkn, где njk - количество наблюдений в j уровня предиктора, которые находятся в k классов.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Совет

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

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

Алгоритмы

свернуть все

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

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

  • Для стандартной ТЕЛЕЖКИ (то есть, если 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 set, который является набором неявных значений.

    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, <reservedrangesplaceholder1> ≠ <reservedrangesplaceholder0>.

          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 применяет стандартную ТЕЛЕЖКА к соответствующим предикторам, чтобы выбрать разделенный предиктор.

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

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

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

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

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

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

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

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

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

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

Ссылки

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

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

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

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

Введенный в R2014a