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

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

Сравните среднее значение квадрата ошибок (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 |


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

В этом случае 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 содержит переменную ответа, и вы хотите использовать все оставшиеся переменные в Tbl в качестве предикторов, затем укажите переменную ответа, используя ResponseVarName.
Если Tbl содержит переменную ответа, и требуется использовать только подмножество остальных переменных в Tbl в качестве предикторов, затем укажите формулу с помощью formula.
Если Tbl не содержит переменную ответа, затем укажите переменную ответа с помощью Y. Длина переменной ответа и количество строк в Tbl должно быть равным.
Типы данных: table
ResponseVarName - Имя переменной ответаTblИмя переменной ответа, указанное как имя переменной в Tbl. Переменная ответа должна быть числовым вектором.
Необходимо указать ResponseVarName в виде вектора символов или строкового скаляра. Например, если Tbl сохраняет переменную ответа Y как Tbl.Y, затем укажите его как 'Y'. В противном случае программа обрабатывает все столбцы Tbl, в том числе Y, в качестве предикторов при обучении модели.
Типы данных: char | string
formula - Пояснительная модель переменной ответа и подмножество переменных предиктораПояснительная модель переменной ответа и подмножество переменных предиктора, указанное как вектор символов или строковый скаляр в форме 'Y~x1+x2+x3'. В этой форме Y представляет переменную ответа, и x1, x2, и x3 представляют переменные предиктора.
Задание подмножества переменных в Tbl в качестве предикторов для обучения модели используйте формулу. Если задать формулу, программа не будет использовать переменные в Tbl которые не отображаются в formula.
Имена переменных в формуле должны быть обоими именами переменных в Tbl (Tbl.Properties.VariableNames) и допустимые идентификаторы MATLAB ®. Имена переменных можно проверить вTbl с помощью isvarname функция. Если имена переменных недопустимы, их можно преобразовать с помощью matlab.lang.makeValidName функция.
Типы данных: char | string
Y - Данные ответаДанные ответа, указанные как числовой вектор столбца с тем же количеством строк, что и X. Каждая запись в Y является ответом на данные в соответствующей строке X.
Программное обеспечение учитывает NaN значения в Y для отсутствующих значений. fitrtree не использует наблюдения с отсутствующими значениями для Y в посадке.
Типы данных: single | double
X - Данные предиктораДанные предиктора, заданные как числовая матрица. Каждый столбец X представляет одну переменную, а каждая строка представляет одно наблюдение.
fitrtree рассматривает NaN значения в X как отсутствующие значения. fitrtree не использует наблюдения со всеми отсутствующими значениями для X в посадке. fitrtree использует наблюдения с некоторыми отсутствующими значениями для X для поиска разбиений по переменным, для которых эти наблюдения имеют допустимые значения.
Типы данных: single | double
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
'CrossVal','on','MinParentSize',30 задает кросс-проверенное дерево регрессии с минимум 30 наблюдениями на узел ветви.Примечание
Нельзя использовать любой аргумент пары имя-значение перекрестной проверки вместе с 'OptimizeHyperparameters' аргумент пары имя-значение. Можно изменить перекрестную проверку для 'OptimizeHyperparameters' только с помощью 'HyperparameterOptimizationOptions' аргумент пары имя-значение.
'CategoricalPredictors' - Список категориальных предикторов'all'Список категориальных предикторов, указанный как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
| Вектор положительных целых чисел |
Каждая запись в векторе представляет собой значение индекса, соответствующее столбцу данных предиктора, который содержит категориальную переменную. Значения индекса находятся в диапазоне от 1 до Если |
| Логический вектор |
A |
| Символьная матрица | Каждая строка матрицы является именем предикторной переменной. Имена должны соответствовать записям в PredictorNames. Поместите имена с дополнительными пробелами, чтобы каждая строка символьной матрицы имела одинаковую длину. |
| Строковый массив или массив ячеек символьных векторов | Каждый элемент массива является именем переменной предиктора. Имена должны соответствовать записям в PredictorNames. |
'all' | Все предикторы категоричны. |
По умолчанию, если данные предиктора находятся в таблице (Tbl), fitrtree предполагает, что переменная категорична, если она является логическим вектором, неупорядоченным категориальным вектором, символьным массивом, строковым массивом или массивом ячеек символьных векторов. Если данные предиктора являются матрицей (X), fitrtree предполагает, что все предикторы непрерывны. Чтобы определить любые другие предикторы как категориальные предикторы, укажите их с помощью 'CategoricalPredictors' аргумент «имя-значение».
Пример: 'CategoricalPredictors','all'
Типы данных: single | double | logical | char | string | cell
'MaxDepth' - Максимальная глубина дереваМаксимальная глубина дерева, заданная как разделенная запятыми пара, состоящая из 'MaxDepth' и положительное целое число. Укажите значение для этого аргумента, чтобы вернуть дерево, имеющее меньшее количество уровней и требующее меньшего количества проходов через массив высокого уровня для вычисления. Как правило, алгоритм fitrtree выполняет один проход через данные и дополнительный проход для каждого уровня дерева. По умолчанию функция не задает максимальную глубину дерева.
Примечание
Этот параметр применяется только при использовании fitrtree на высоких массивах. Дополнительные сведения см. в разделе Массивы Tall.
'MergeLeaves' - флаг слияния листьев'on' (по умолчанию) | 'off'Флаг слияния листа, заданный как разделенная запятыми пара, состоящая из 'MergeLeaves' и 'on' или 'off'.
Если MergeLeaves является 'on', то fitrtree:
Слияние листьев, которые происходят от одного родительского узла и дают сумму значений риска, большую или равную риску, связанному с родительским узлом
Оценивает оптимальную последовательность обрезанных поддеревьев, но не отсекает дерево регрессии
В противном случае fitrtree не объединяет листья.
Пример: 'MergeLeaves','off'
'MinParentSize' - Минимальное количество наблюдений узла ветви10 (по умолчанию) | положительное целое значениеМинимальное количество наблюдений узла ветви, указанное как пара, разделенная запятыми, состоящая из 'MinParentSize' и положительное целое значение. Каждый узел ветви в дереве имеет по крайней мере MinParentSize наблюдения. Если вы поставляете оба MinParentSize и MinLeafSize, fitrtree использует параметр, который дает большие листья: MinParentSize = max(MinParentSize,2*MinLeafSize).
Пример: 'MinParentSize',8
Типы данных: single | double
'NumBins' - Количество ячеек для числовых предикторов[](пустое) (по умолчанию) | положительный целочисленный скалярКоличество ячеек для числовых предикторов, указанных как разделенная запятыми пара, состоящая из 'NumBins' и положительный целочисленный скаляр.
Если 'NumBins' значение пустое (по умолчанию), затем fitrtree не содержит никаких предикторов.
При указании 'NumBins' значение в виде положительного целого скаляра (numBins), то fitrtree помещает каждый числовой предиктор максимум в numBins equiprobable bins, а затем выращивает деревья по индексам bin вместо исходных данных.
Количество ячеек может быть меньше numBins если предиктор имеет менее numBins уникальные значения.
fitrtree не содержит категориальных предикторов.
При использовании большого набора данных обучения этот параметр объединения ускоряет обучение, но может привести к потенциальному снижению точности. Вы можете попробовать 'NumBins',50 сначала, а затем изменить значение в зависимости от точности и скорости тренировки.
Обученная модель хранит кромки бункера в BinEdges собственность.
Пример: 'NumBins',50
Типы данных: single | double
'PredictorNames' - Имена переменных предиктораИмена переменных предиктора, заданные как строковый массив уникальных имен или массив ячеек уникальных векторов символов. Функциональные возможности PredictorNames зависит от способа ввода данных обучения.
Если вы поставляете X и Y, то вы можете использовать PredictorNames назначение имен переменным предиктора в X.
Порядок имен в PredictorNames должен соответствовать порядку столбцов X. То есть PredictorNames{1} является именем X(:,1), PredictorNames{2} является именем X(:,2)и так далее. Также, size(X,2) и numel(PredictorNames) должно быть равным.
По умолчанию PredictorNames является {'x1','x2',...}.
Если вы поставляете Tbl, то вы можете использовать PredictorNames чтобы выбрать, какие переменные предиктора использовать в обучении. То есть fitrtree использует только переменные предиктора в PredictorNames и переменную ответа во время обучения.
PredictorNames должен быть подмножеством Tbl.Properties.VariableNames и не может включать имя переменной ответа.
По умолчанию PredictorNames содержит имена всех переменных предиктора.
Хорошей практикой является определение предикторов для обучения с использованием 'PredictorNames' или formulaно не оба.
Пример: 'PredictorNames',{'SepalLength','SepalWidth','PetalLength','PetalWidth'}
Типы данных: string | cell
'PredictorSelection' - Алгоритм, используемый для выбора наилучшего предсказателя разделения'allsplits' (по умолчанию) | 'curvature' | 'interaction-curvature'Алгоритм, используемый для выбора наилучшего предиктора разделения в каждом узле, указанного как пара, разделенная запятыми, состоящая из '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' или 'off'.
Если Prune является 'on', то fitrtree выращивает регрессионное дерево и оценивает оптимальную последовательность обрезанных поддеревьев, но не отсекает регрессионное дерево. В противном случае fitrtree выращивает регрессионное дерево без оценки оптимальной последовательности обрезанных поддеревьев.
Чтобы удалить обученное дерево регрессии, передайте дерево регрессии в prune.
Пример: 'Prune','off'
'PruneCriterion' - Критерий отсечения'mse' (по умолчанию)Критерий отсечения, указанный как пара, разделенная запятыми, состоящая из 'PruneCriterion' и 'mse'.
'QuadraticErrorTolerance' - Квадратичный допуск ошибок1e-6 (по умолчанию) | положительное скалярное значениеКвадратичный допуск ошибки для каждого узла, указанный как разделенная запятыми пара, состоящая из 'QuadraticErrorTolerance' и положительное скалярное значение. Функция останавливает разделение узлов, когда средневзвешенная квадратичная ошибка на узел опускается ниже QuadraticErrorTolerance*ε, где ε - средневзвешенная квадратичная ошибка всех n ответов, вычисленных перед ростом дерева решений.
pet) 2.
wi - вес наблюдения i, учитывая, что вес всех наблюдений равен единице (), и
- средневзвешенное значение всех ответов.
Дополнительные сведения о разделении узлов см. в разделе Правила разделения узлов.
Пример: 'QuadraticErrorTolerance',1e-4
'Reproducible' - Флаг для обеспечения воспроизводимостиfalse (логический 0) (по умолчанию) | true (логический 1)Флаг для обеспечения воспроизводимости при повторных запусках обучения модели, указанной как пара, разделенная запятыми, состоящая из 'Reproducible' и либо false или true.
Если 'NumVariablesToSample' не является 'all'затем программное обеспечение выбирает предсказатели случайным образом для каждого разделения. Для воспроизведения случайных выборок необходимо указать 'Reproducible',true и установить начальное число генератора случайных чисел с помощью rng. Обратите внимание, что настройка 'Reproducible' кому true может замедлить тренировку.
Пример: 'Reproducible',true
Типы данных: logical
'ResponseName' - Имя переменной ответа'Y' (по умолчанию) | символьный вектор | строковый скалярИмя переменной ответа, указанное как вектор символа или скаляр строки.
Если вы поставляете Y, то вы можете использовать 'ResponseName' для указания имени переменной ответа.
Если вы поставляете ResponseVarName или formula, то вы не можете использовать 'ResponseName'.
Пример: 'ResponseName','response'
Типы данных: char | string
'ResponseTransform' - Преобразование ответа'none' (по умолчанию) | дескриптор функцииПреобразование ответа, указанное как 'none' или дескриптор функции. Значение по умолчанию: 'none', что означает @(y)y, или нет трансформации. Для функции MATLAB или определяемой функции используйте ее дескриптор функции для преобразования ответа. Дескриптор функции должен принимать вектор (исходные значения ответа) и возвращать вектор того же размера (преобразованные значения ответа).
Пример: Предположим, что вы создаете дескриптор функции, который применяет экспоненциальное преобразование к входному вектору с помощью myfunction = @(y)exp(y). Затем можно указать преобразование ответа как 'ResponseTransform',myfunction.
Типы данных: char | string | function_handle
'SplitCriterion' - Критерий разделения'MSE' (по умолчанию)Критерий разделения, указанный как разделенная запятыми пара, состоящая из 'SplitCriterion' и 'MSE', что означает квадрат ошибки.
Пример: 'SplitCriterion','MSE'
'Surrogate' - Флаг разделения суррогатного решения'off' (по умолчанию) | 'on' | 'all' | положительное целое числоФлаг разделения суррогатного решения, определяемый как разделенная запятыми пара, состоящая из 'Surrogate' и 'on', 'off', 'all', или положительное целое число.
Когда 'on', fitrtree находит не более 10 суррогатных расщеплений в каждом узле ветви.
Если задано положительное целое число, fitrtree находит самое большее указанное количество суррогатных разбиений в каждом узле ветви.
Если установлено значение 'all', fitrtree находит все суррогатные разделения в каждом узле ветви. 'all' может использовать много времени и памяти.
Используйте суррогатные разделения для повышения точности прогнозов для данных с отсутствующими значениями. Параметр также позволяет вычислить показатели прогнозирующей связи между предикторами.
Пример: 'Surrogate','on'
Типы данных: single | double | char | string
'Weights' - Наблюдательные весаones(size(X,1),1) (по умолчанию) | вектор скалярных значений | имя переменной в TblВеса наблюдения, указанные как разделенная запятыми пара, состоящая из 'Weights' и вектор скалярных значений или имя переменной в Tbl. Программа взвешивает наблюдения в каждой строке X или Tbl с соответствующим значением в Weights. Размер Weights должно равняться количеству строк в X или Tbl.
Если входные данные указаны как таблица Tbl, то Weights может быть именем переменной в Tbl содержит числовой вектор. В этом случае необходимо указать Weights в виде вектора символов или строкового скаляра. Например, если весовые коэффициенты вектора W хранится как Tbl.W, затем укажите его как 'W'. В противном случае программа обрабатывает все столбцы Tbl, в том числе W, в качестве предикторов при обучении модели.
fitrtree нормализует значения Weights для суммирования в 1.
Типы данных: single | double | char | string
'CrossVal' - Флаг перекрестной проверки'off' (по умолчанию) | 'on' Флаг перекрестной проверки, заданный как пара, разделенная запятыми, состоящая из 'CrossVal' и либо 'on' или 'off'.
Если 'on', fitrtree вырастает перекрестно проверенное дерево решений с 10 складками. Этот параметр перекрестной проверки можно переопределить с помощью одного из следующих параметров: 'KFold', 'Holdout', 'Leaveout', или 'CVPartition' аргументы пары имя-значение. Можно использовать только один из этих четырех вариантов ('KFold', 'Holdout', 'Leaveout', или 'CVPartition') во время создания дерева с перекрестной проверкой.
Также можно выполнить перекрестную проверку tree позже с использованием crossval способ.
Пример: 'CrossVal','on'
'CVPartition' - Раздел для дерева перекрестной проверкиcvpartition объектРаздел для дерева с перекрестной проверкой, указанный как разделенная запятыми пара, состоящая из 'CVPartition' и объект, созданный с помощью cvpartition.
Если вы используете 'CVPartition', вы не можете использовать ни один из 'KFold', 'Holdout', или 'Leaveout' аргументы пары имя-значение.
'Holdout' - Доля данных для проверки отсутствия0 (по умолчанию) | скалярное значение в диапазоне [0,1]Доля данных, используемых для проверки удержания, указанная как пара, разделенная запятыми, состоящая из 'Holdout' и скалярное значение в диапазоне [0,1]. Проверка отсутствия проверяет указанную часть данных и использует остальные данные для обучения.
Если вы используете 'Holdout', вы не можете использовать ни один из 'CVPartition', 'KFold', или 'Leaveout' аргументы пары имя-значение.
Пример: 'Holdout',0.1
Типы данных: single | double
'KFold' - Количество складок10 (по умолчанию) | положительное целое число больше 1Количество складок для использования в дереве с перекрестной проверкой, указанное как пара, разделенная запятыми, состоящая из 'KFold' и положительное целое значение больше 1.
Если вы используете 'KFold', вы не можете использовать ни один из 'CVPartition', 'Holdout', или 'Leaveout' аргументы пары имя-значение.
Пример: 'KFold',8
Типы данных: single | double
'Leaveout' - Флаг перекрестной проверки «оставить один»'off' (по умолчанию) | 'on'Флаг перекрестной проверки, определяемый как разделенная запятыми пара, состоящая из 'Leaveout' и либо 'on' или 'off. Используйте перекрестную проверку «оставить один», установив значение 'on'.
Если вы используете 'Leaveout', вы не можете использовать ни один из 'CVPartition', 'Holdout', или 'KFold' аргументы пары имя-значение.
Пример: 'Leaveout','on'
'MaxNumSplits' - Максимальное число разделений решенийsize(X,1) - 1 (по умолчанию) | положительное целое числоМаксимальное число разделений решения (или узлов ветви), указанное как пара, разделенная запятыми, состоящая из 'MaxNumSplits' и положительное целое число. fitrtree разделения MaxNumSplits или меньше узлов ветви. Дополнительные сведения о разделении см. в разделе Управление глубиной дерева.
Пример: 'MaxNumSplits',5
Типы данных: single | double
'MinLeafSize' - Минимальное число наблюдений за конечными узлами1 (по умолчанию) | положительное целое значениеМинимальное число наблюдений за конечными узлами, указанное как пара, разделенная запятыми, состоящая из 'MinLeafSize' и положительное целое значение. Каждый лист имеет не менее MinLeafSize наблюдения на лист дерева. Если вы поставляете оба MinParentSize и MinLeafSize, fitrtree использует параметр, который дает большие листья: MinParentSize = max(MinParentSize,2*MinLeafSize).
Пример: 'MinLeafSize',3
Типы данных: single | double
'NumVariablesToSample' - Количество предикторов, выбираемых случайным образом для каждого разделения'all' (по умолчанию) | положительное целое значениеКоличество предикторов, выбираемых случайным образом для каждого разделения, указанного как пара, разделенная запятыми, состоящая из 'NumVariablesToSample' и положительное целое значение. Кроме того, можно указать 'all' для использования всех доступных предикторов.
Если обучающие данные включают много предикторов и требуется проанализировать важность предиктора, укажите 'NumVariablesToSample' как 'all'. В противном случае программное обеспечение может не выбирать некоторые предикторы, недооценивая их важность.
Для воспроизведения случайных выборок необходимо задать начальное число генератора случайных чисел с помощью rng и указать 'Reproducible',true.
Пример: 'NumVariablesToSample',3
Типы данных: char | string | single | double
'OptimizeHyperparameters' - Параметры для оптимизации'none' (по умолчанию) | 'auto' | 'all' | строковый массив или массив ячеек допустимых имен параметров | вектор optimizableVariable объектыПараметры для оптимизации, указанные как пара, разделенная запятыми, состоящая из 'OptimizeHyperparameters' и одно из следующих:
'none' - Не оптимизировать.
'auto' - Использование {'MinLeafSize'}.
'all' - Оптимизируйте все подходящие параметры.
Строковый массив или массив ячеек допустимых имен параметров.
Вектор optimizableVariable объекты, обычно выходные данные hyperparameters.
Оптимизация пытается минимизировать потери при перекрестной проверке (ошибка) для fitrtree путем изменения параметров. Для управления типом перекрестной проверки и другими аспектами оптимизации используйте HyperparameterOptimizationOptions пара имя-значение.
Примечание
'OptimizeHyperparameters' значения переопределяют любые значения, заданные с помощью других аргументов пары «имя-значение». Например, настройка 'OptimizeHyperparameters' кому 'auto' вызывает 'auto' значения для применения.
Подходящие параметры для fitrtree являются:
MaxNumSplits — fitrtree поиск среди целых чисел, по умолчанию с логарифмическим масштабированием в диапазоне [1,max(2,NumObservations-1)].
MinLeafSize — fitrtree поиск среди целых чисел, по умолчанию с логарифмическим масштабированием в диапазоне [1,max(2,floor(NumObservations/2))].
NumVariablesToSample — fitrtree не оптимизируется над этим гиперпараметром. Если вы проходите 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' - Варианты оптимизацииОпции оптимизации, указанные как разделенная запятыми пара, состоящая из 'HyperparameterOptimizationOptions' и структура. Этот аргумент изменяет эффект OptimizeHyperparameters аргумент пары имя-значение. Все поля в структуре являются необязательными.
| Имя поля | Ценности | Дефолт |
|---|---|---|
Optimizer |
| 'bayesopt' |
AcquisitionFunctionName |
Функции приобретения, имена которых включают | 'expected-improvement-per-second-plus' |
MaxObjectiveEvaluations | Максимальное количество оценок целевой функции. | 30 для 'bayesopt' или 'randomsearch'и вся сетка для 'gridsearch' |
MaxTime | Ограничение по времени, указанное как положительный реал. Ограничение по времени в секундах, измеренное | Inf |
NumGridDivisions | Для 'gridsearch', количество значений в каждом измерении. Значение может быть вектором положительных целых чисел, дающим количество значений для каждого измерения, или скаляром, который применяется ко всем измерениям. Это поле игнорируется для категориальных переменных. | 10 |
ShowPlots | Логическое значение, указывающее, показывать ли графики. Если trueв этом поле отображается наилучшее значение целевой функции относительно номера итерации. Если имеется один или два параметра оптимизации, и если Optimizer является 'bayesopt', то ShowPlots также строит график модели целевой функции по параметрам. | true |
SaveIntermediateResults | Логическое значение, указывающее, сохранять ли результаты при Optimizer является 'bayesopt'. Если true, это поле перезаписывает переменную рабочей области с именем 'BayesoptResults' на каждой итерации. Переменная является BayesianOptimization объект. | false |
Verbose | Отображение в командной строке.
Для получения более подробной информации см. | 1 |
UseParallel | Логическое значение, указывающее, выполнять ли байесовскую оптимизацию параллельно, что требует Toolbox™ параллельных вычислений. Из-за непродуктивности параллельной синхронизации параллельная байесовская оптимизация не обязательно дает воспроизводимые результаты. Дополнительные сведения см. в разделе Параллельная байесовская оптимизация. | false |
Repartition | Логическое значение, указывающее, следует ли перераспределять перекрестную проверку при каждой итерации. Если
| false |
| Используйте не более одного из следующих трех имен полей. | ||
CVPartition | A cvpartition объект, созданный cvpartition. | 'Kfold',5 если не указано какое-либо поле перекрестной проверки |
Holdout | Скаляр в диапазоне (0,1) представляет собой удерживающую фракцию. | |
Kfold | Целое число больше 1. | |
Пример: 'HyperparameterOptimizationOptions',struct('MaxObjectiveEvaluations',60)
Типы данных: struct
tree - Регрессионное деревоДерево регрессии, возвращаемое как объект дерева регрессии. Использование 'Crossval', 'KFold', 'Holdout', 'Leaveout', или 'CVPartition' параметры приводят к созданию дерева класса RegressionPartitionedModel. Невозможно использовать секционированное дерево для прогнозирования, поэтому этот тип дерева не имеет predict способ.
В противном случае tree имеет класс RegressionTree, и вы можете использовать predict способ выполнения прогнозов.
Тест кривизны является статистическим тестом, оценивающим нулевую гипотезу о том, что две переменные не связаны.
Тест кривизны между предикторными переменными x и y проводят с использованием этого процесса.
Если x является непрерывным, то разделите его на его квартили. Создайте номинальную переменную, которая содержит данные наблюдений в соответствии с тем, какой раздел раздела они занимают. Если значения отсутствуют, создайте для них дополнительное складское место.
Для каждого уровня в секционированном предикторе j = 1...J и классе в ответе k = 1,...,K вычислите взвешенную долю наблюдений в классе k
wi - вес наблюдения i, , I - индикаторная функция, а n - размер выборки. Если все наблюдения имеют одинаковый вес, то njkn, где njk - количество наблюдений на уровне j предсказателя, которые находятся в классе k.
Вычисление статистики теста
k) 2λ ^ j + λ ^ + k
, то есть предельная вероятность наблюдения за предиктором на уровне j. , это предельная вероятность наблюдения класса k. Если n достаточно велико, то t распределяется как δ 2 с (K-1) (J-1) степенями свободы.
Если значение p для теста меньше 0,05, то отклоните нулевую гипотезу об отсутствии связи между x и y.
При определении наилучшего предиктора разделения на каждом узле стандартный алгоритм CART предпочитает выбирать непрерывные предикторы, которые имеют много уровней. Иногда такой выбор может быть ложным и может также маскировать более важные предикторы, которые имеют меньше уровней, такие как категориальные предикторы.
Тест кривизны может быть применен вместо стандартной CART, чтобы определить наилучший предиктор разделения в каждом узле. В этом случае лучшей разбиенной прогнозирующей переменной является та, которая минимизирует значимые значения p (те, которые меньше 0,05) тестов кривизны между каждым предиктором и переменной отклика. Такой выбор устойчив к количеству уровней в отдельных предикторах.
Дополнительные сведения о применении теста кривизны к растущим деревьям регрессии см. в разделах Правила разделения узлов и [3].
Тест взаимодействия является статистическим тестом, который оценивает нулевую гипотезу об отсутствии взаимодействия между парой переменных предиктора и переменной ответа.
Тест взаимодействия, оценивающий связь между предикторными переменными x1 и x2 относительно y, проводится с использованием этого процесса.
Если x1 или x2 непрерывны, то эта переменная разделяется на квартили. Создайте номинальную переменную, которая содержит данные наблюдений в соответствии с тем, какой раздел раздела они занимают. Если значения отсутствуют, создайте для них дополнительное складское место.
Создайте номинальную переменную z с J = J1J2 уровнями, которая присваивает индекс наблюдению i в соответствии с уровнями x1 и x2. Удалите любые уровни z, которые не соответствуют наблюдениям.
Выполните проверку кривизны между z и y.
При росте деревьев принятия решений, если существуют важные взаимодействия между парами предикторов, но также есть много других менее важных предикторов в данных, то стандартная CART имеет тенденцию пропускать важные взаимодействия. Однако проведение тестов кривизны и взаимодействия для выбора предиктора вместо этого может улучшить обнаружение важных взаимодействий, которые могут дать более точные деревья решений.
Дополнительные сведения о том, как тест взаимодействия применяется к растущим деревьям решений, см. в разделах Тест кривизны, Правила разделения узлов и [2].
Прогностическая мера ассоциации - это значение, указывающее на сходство между правилами принятия решений, разделяющими наблюдения. Среди всех возможных разделений решений, которые сравниваются с оптимальным разделением (найденным при выращивании дерева), лучшее разделение суррогатного решения дает максимальную прогностическую меру ассоциации. Второй по величине суррогатный раскол имеет вторую по величине прогностическую меру ассоциации.
Предположим, что xj и xk являются прогнозирующими переменными j и k, соответственно, и j ≠ k. В узле t прогностическая мера ассоциации между оптимальным split xj < u и суррогатным split xk < v равна
min (PL, PR).
PL - доля наблюдений в узле t, такая, что xj < u. Нижний индекс L обозначает левый нижестоящий элемент узла t.
PR - это доля наблюдений в узле t, такая, что xj ≥ u. Нижний индекс R обозначает правый нижестоящий элемент узла t.
- доля наблюдений на узле t, такая, что xj < u и xk < v
- это доля наблюдений в узле t, так что xj ≥ u и xk ≥ v.
Наблюдения с отсутствующими значениями для xj или xk не способствуют расчетам пропорций.
λ jk - значение в (- ∞,1]. Если λ jk > 0, то xk < v является стоящим суррогатным разделением для xj < u.
Разделение суррогатного решения является альтернативой оптимальному разделению решения в данном узле дерева решений. Оптимальный раскол находят, выращивая дерево; суррогатное разделение использует аналогичную или коррелированную предикторную переменную и критерий разделения.
Когда значение оптимального расщепленного предиктора для наблюдения отсутствует, наблюдение посылается в левый или правый дочерний узел с использованием наилучшего суррогатного предиктора. Когда значение наилучшего суррогатного предиктора разделения для наблюдения также отсутствует, наблюдение посылается в левый или правый дочерний узел с использованием второго наилучшего суррогатного предиктора и так далее. Деления кандидатов сортируются в порядке убывания по их прогнозирующей мере ассоциации.
По умолчанию Prune является 'on'. Однако эта спецификация не удаляет дерево регрессии. Чтобы удалить обученное дерево регрессии, передайте дерево регрессии в prune.
После обучения модели можно создать код C/C + +, который предсказывает ответы на новые данные. Для создания кода C/C + + требуется Coder™ MATLAB. Дополнительные сведения см. в разделе Введение в создание кода .
fitrtree использует эти процессы для определения способа разделения узла t.
Для стандартной CART (то есть, если PredictorSelection является 'allpairs') и для всех предикторов xi, i = 1,..., p:
fitrtree вычисляет взвешенную среднеквадратичную ошибку (MSE) ответов в узле t с использованием
2.
wj - вес наблюдения j, а T - набор всех показателей наблюдения в узле t. Если не указать Weights, то wj = 1/n, где n - размер выборки.
fitrtree оценивает вероятность того, что наблюдение находится в узле t, используя
=∑j∈Twj.
fitrtree сортирует xi в порядке возрастания. Каждый элемент отсортированного предиктора является кандидатом на разделение или точкой отсечения. fitrtree записывает все индексы, соответствующие отсутствующим значениям в наборе TU, который является неразделенным набором.
fitrtree определяет наилучший способ разделения узла t с использованием xi путем максимального снижения MSE (ΔI) по всем кандидатам на разделение. То есть для всех кандидатов на разделение в xi:
fitrtree разбивает наблюдения в узле t на левый и правый дочерние узлы (tL и tR соответственно).
fitrtree вычисляет ΔI. Предположим, что для конкретного кандидата разделения tL и tR содержат индексы наблюдения в наборах TL и TR соответственно.
Если xi не содержит отсутствующих значений, то уменьшение MSE для текущего кандидата на разделение равно
P (TR) αtR.
Если xi содержит отсутствующие значения, то, если предположить, что наблюдения отсутствуют случайным образом, уменьшение MSE будет
)
T - TU - набор всех показателей наблюдения в узле t, которые не отсутствуют.
Если используется разделение суррогатного решения, то:
fitrtree вычисляет прогностические показатели связи между разделением решения xj < u и всеми возможными разделениями решения xk < v, j ≠ k.
fitrtree сортирует возможные разбиения альтернативных решений в порядке убывания по их прогностической мере связи с оптимальным разбиением. Суррогатный раскол - это раскол решения, дающий наибольшую меру.
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.
fitrtree использует соответствующую формулу восстановления MSE. То есть, если fitrtree не удалось назначить все отсутствующие наблюдения в узле t дочерним узлам с использованием суррогатных расщеплений, тогда уменьшение MSE равно ΔIU. В противном случае fitrtree использует ΔI для уменьшения MSE.
fitrtree выбирает кандидата, который дает наибольшее снижение MSE.
fitrtree разделяет предикторную переменную в точке отсечения, которая максимизирует уменьшение MSE.
Для испытания на кривизну (т.е. если PredictorSelection является 'curvature'):
fitrtree вычисляет остатки y _ t для всех наблюдений в y¯t=1∑iwi∑iwiyti, который является средневзвешенным откликами в узле T. Весами являются веса наблюдений вWeights.
fitrtree присваивает наблюдения одному из двух бункеров по знаку соответствующих остатков. Пусть zt - номинальная переменная, содержащая назначения ячеек для наблюдений в узле t.
fitrtree проводит тесты кривизны между каждым предиктором и zt. Для деревьев регрессии K = 2.
Если все p-значения не менее 0,05, то fitrtree не разделяет узел t.
Если существует минимальное значение p, то fitrtree выбирает соответствующий предиктор для разделения узла t.
Если более одного значения p равно нулю из-за неполноты, то fitrtree применяет стандартную CART к соответствующим предикторам для выбора разделенного предиктора.
Если fitrtree выбирает разделенный предиктор, затем использует стандартную CART для выбора точки отсечения (см. шаг 4 в стандартном процессе CART).
Для теста взаимодействия (то есть, если PredictorSelection является 'interaction-curvature' ):
Для наблюдений в узле t, fitrtree проводит тесты кривизны между каждым предиктором и тесты ответа и взаимодействия между каждой парой предикторов и ответом.
Если все p-значения не менее 0,05, то fitrtree не разделяет узел t.
Если существует минимальное значение p и оно является результатом теста кривизны, то fitrtree выбирает соответствующий предиктор для разделения узла t.
Если существует минимальное значение p и оно является результатом теста взаимодействия, то fitrtree выбирает расщепленный предиктор с использованием стандартной CART на соответствующей паре предикторов.
Если более одного значения p равно нулю из-за неполноты, то fitrtree применяет стандартную CART к соответствующим предикторам для выбора разделенного предиктора.
Если fitrtree выбирает разделенный предиктор, затем использует стандартную CART для выбора точки отсечения (см. шаг 4 в стандартном процессе CART).
Если MergeLeaves является 'on' и PruneCriterion является 'mse' (которые являются значениями по умолчанию для этих аргументов пары имя-значение), то программное обеспечение применяет обрезку только к листьям и с помощью MSE. Эта спецификация равносильна слиянию листьев, поступающих от того же родительского узла, MSE которого является максимум суммой MSE двух его листьев.
Приспосабливать MaxNumSplits, fitrtree разбивает все узлы на текущем уровне, а затем подсчитывает количество узлов ветвления. Слой - это набор узлов, равноудаленных от корневого узла. Если число узлов ветви превышает MaxNumSplits, fitrtree выполните следующую процедуру:
Определите, сколько узлов ветви в текущем слое должно быть не разделено, чтобы их было не больше MaxNumSplits узлы ветвей.
Сортировка узлов ветвей по их доходам от примесей.
Отмена разделения числа наименее успешных ветвей.
Верните дерево решений, выращенное до сих пор.
Эта процедура позволяет получить максимально сбалансированные деревья.
Программное обеспечение разделяет узлы ответвлений на уровни до тех пор, пока не произойдет по меньшей мере одно из следующих событий:
Есть 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.
Примечания и ограничения по использованию:
Поддерживаются следующие синтаксисы:
tree = fitrtree(Tbl,Y)
tree = fitrtree(X,Y)
tree = fitrtree(___,Name,Value)
[tree,FitInfo,HyperparameterOptimizationResults] = fitrtree(___,Name,Value) — fitrtree возвращает дополнительные выходные аргументы FitInfo и HyperparameterOptimizationResults при указании 'OptimizeHyperparameters' аргумент пары имя-значение.
tree является CompactRegressionTree объект; поэтому он не включает данные, используемые при обучении дерева регрессии.
FitInfo выходной аргумент является пустым массивом структуры, зарезервированным в настоящее время для возможного использования в будущем.
HyperparameterOptimizationResults выходной аргумент является BayesianOptimization объект или таблица гиперпараметров со связанными значениями, описывающими оптимизацию гиперпараметров с перекрестной проверкой.
'HyperparameterOptimizationResults' является непустым, когда 'OptimizeHyperparameters' аргумент пары «имя-значение» не является пустым во время создания модели. Значения в 'HyperparameterOptimizationResults' зависит от значения, указанного для 'HyperparameterOptimizationOptions' аргумент пары имя-значение при создании модели.
При указании 'bayesopt' (по умолчанию), то HyperparameterOptimizationResults является объектом класса BayesianOptimization.
При указании 'gridsearch' или 'randomsearch', то HyperparameterOptimizationResults - таблица используемых гиперпараметров, наблюдаемых значений целевой функции (потери перекрестной проверки) и ранга наблюдений от самого низкого (лучший) до самого высокого (худший).
Поддерживаемые аргументы пары имя-значение:
'CategoricalPredictors'
'HyperparameterOptimizationOptions' - Для перекрестной проверки поддерживается только оптимизация по высоте 'Holdout' проверка. По умолчанию программа выбирает и резервирует 20% данных в качестве данных проверки отсутствия и обучает модель, используя остальные данные. С помощью этого аргумента можно указать другое значение для удерживаемой дроби. Например, укажите 'HyperparameterOptimizationOptions',struct('Holdout',0.3) зарезервировать 30% данных в качестве данных проверки.
'MaxNumSplits' - Для высокой оптимизации, fitrtree поиск среди целых чисел, с логарифмическим масштабированием (по умолчанию) в диапазоне [1,max(2,min(10000,NumObservations–1))].
'MergeLeaves'
'MinLeafSize' - Для высокой оптимизации, fitrtree поиск среди целых чисел, с логарифмическим масштабированием (по умолчанию) в диапазоне [1,max(2,floor(NumObservations/2))].
'MinParentSize'
'NumVariablesToSample' - Для высокой оптимизации, fitrtree поиск среди целых чисел в диапазоне [1,max(2,NumPredictors)].
'OptimizeHyperparameters'
'PredictorNames'
'QuadraticErrorTolerance'
'ResponseName'
'ResponseTransform'
'SplitCriterion'
'Weights'
Этот дополнительный аргумент пары имя-значение относится только к массивам tall:
'MaxDepth' - положительное целое число, указывающее максимальную глубину дерева вывода. Укажите значение для этого аргумента, чтобы вернуть дерево, имеющее меньшее количество уровней и требующее меньшего количества проходов через массив высокого уровня для вычисления. Как правило, алгоритм fitrtree выполняет один проход через данные и дополнительный проход для каждого уровня дерева. По умолчанию функция не задает максимальную глубину дерева.
Дополнительные сведения см. в разделе Массивы Tall.
Чтобы выполнить параллельную оптимизацию гиперпараметров, используйте 'HyperparameterOptimizationOptions', struct('UseParallel',true) аргумент name-value в вызове этой функции.
Дополнительные сведения об оптимизации параллельных гиперпараметров см. в разделе Параллельная байесовская оптимизация.
Общие сведения о параллельных вычислениях см. в разделе Запуск функций MATLAB с автоматической параллельной поддержкой (панель инструментов параллельных вычислений).
predict | prune | RegressionPartitionedModel | RegressionTree | surrogateAssociation
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.