exponenta event banner

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. Найдите гиперпараметры, которые минимизируют пятикратные потери при перекрестной проверке, используя автоматическую оптимизацию гиперпараметров.

Для воспроизводимости задайте случайное начальное число и используйте '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стандартный алгоритм разделения предиктора CART предпочитает разделение непрерывного предиктора по этим двум переменным.

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

Mdl = fitrtree(X,'MPG','PredictorSelection','curvature','Surrogate','on');

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

imp = predictorImportance(Mdl);

figure;
bar(imp);
title('Predictor Importance Estimates');
ylabel('Estimates');
xlabel('Predictors');
h = gca;
h.XTickLabel = Mdl.PredictorNames;
h.XTickLabelRotation = 45;
h.TickLabelInterpreter = 'none';

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

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

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

При выполнении вычислений в массивах TALL MATLAB ® использует либо параллельный пул (по умолчанию при наличии Toolbox™ Parallel Computing), либо локальный сеанс 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. Результаты могут варьироваться в зависимости от количества работников и среды выполнения для массивов tall. Дополнительные сведения см. в разделе Управление местом запуска кода.

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 набор данных. В этом примере набор данных преобразуется в массив высокого уровня и используется для выполнения процедуры оптимизации.

При выполнении вычислений в массивах TALL MATLAB ® использует либо параллельный пул (по умолчанию при наличии Toolbox™ Parallel Computing), либо локальный сеанс 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. Результаты могут варьироваться в зависимости от количества работников и среды выполнения для массивов tall. Дополнительные сведения см. в разделе Управление местом запуска кода.

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

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

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

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

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

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

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

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

Примечание

Этот параметр применяется только при использовании fitrtree на высоких массивах. Дополнительные сведения см. в разделе Массивы Tall.

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

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

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

При использовании большого набора данных обучения этот параметр объединения ускоряет обучение, но может привести к потенциальному снижению точности. Вы можете попробовать '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]. Скорость обучения аналогична стандартной CART.
'interaction-curvature'Тест взаимодействия - выбирает расщепленный предиктор, который минимизирует значение p тестов независимости хи-квадрат между каждым предиктором и ответом (то есть проводит тесты кривизны), и который минимизирует значение p теста независимости хи-квадрат между каждой парой предикторов и ответом [2]. Скорость обучения может быть ниже стандартной CART.

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

Совет

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

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

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

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

  • На скорость прогнозирования не влияет значение 'PredictorSelection'.

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

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

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

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

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

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

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

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

ε=∑i=1nwi (yi y pet) 2.

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

y¯=∑i=1nwiyi

- средневзвешенное значение всех ответов.

Дополнительные сведения о разделении узлов см. в разделе Правила разделения узлов.

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

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

Если 'NumVariablesToSample' не является 'all'затем программное обеспечение выбирает предсказатели случайным образом для каждого разделения. Для воспроизведения случайных выборок необходимо указать 'Reproducible',true и установить начальное число генератора случайных чисел с помощью 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 находит все суррогатные разделения в каждом узле ветви. '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' и скалярное значение в диапазоне [0,1]. Проверка отсутствия проверяет указанную часть данных и использует остальные данные для обучения.

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

Оптимизация гиперпараметров

свернуть все

Параметры для оптимизации, указанные как пара, разделенная запятыми, состоящая из 'OptimizeHyperparameters' и одно из следующих:

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

  • 'auto' - Использование {'MinLeafSize'}.

  • 'all' - Оптимизируйте все подходящие параметры.

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

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

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

Примечание

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

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

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

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

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

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

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

Проход params как значение OptimizeHyperparameters.

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

Подробнее

свернуть все

Проверка кривизны

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

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

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

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

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

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

  3. Вычисление статистики теста

    t=n∑k=1K∑j=1J δ (^ jk λ ^ j + λ ^ + k) 2λ ^ j + λ ^ + k

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

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

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

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

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

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

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

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

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

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

  3. Выполните проверку кривизны между z и y.

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

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

Прогностическая мера ассоциации

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

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

λ jk = min (PL, PR) (1 PLjLk − PRjRk) min (PL, PR).

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

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

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

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

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

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

Разделение суррогатного решения

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

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

Совет

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

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

Алгоритмы

свернуть все

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

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

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

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

      εt=∑j∈Twj (yj y vet) 2.

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

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

      P (T) =∑j∈Twj.

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

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

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

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

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

          ΔI = P (T) αt P (TL) αtL P (TR) αtR.

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

          ΔIU = P (T TU)

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

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

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

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

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

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

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

    fitrtree разделяет предикторную переменную в точке отсечения, которая максимизирует уменьшение MSE.

  • Для испытания на кривизну (т.е. если PredictorSelection является 'curvature'):

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2. Сортировка узлов ветвей по их доходам от примесей.

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

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

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

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

    • Есть MaxNumSplits узлы ветвей.

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

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

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

    • Для значений 'curvature' или 'interaction-curvature' из PredictorSelectionвсе тесты дают значения p, превышающие 0,05.

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

Параллелизация

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

Ссылки

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

[2] О, W.Y. «Регрессионные деревья с несмещенным выбором переменных и обнаружением взаимодействия». Statistica Sinica, Vol. 12, 2002, pp. 361-386.

[3] Ло, У.Я. и Ю.С. Ших. «Разбить методы выбора для деревьев классификации». Statistica Sinica, том 7, 1997, стр. 815-840.

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

Представлен в R2014a