Подбор двоичного дерева принятия решений для регрессии
возвращает дерево регрессии, основанное на входных переменных (также известных как предикторы, функции или атрибуты) в таблице 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
. Найдите гиперпараметры, которые минимизируют пятикратные потери при перекрестной проверке с помощью автоматической оптимизации гипероптимизации параметров управления.
Для воспроизводимости установите случайный seed и используйте 'expected-improvement-plus'
функция сбора.
X = [Weight,Horsepower]; Y = MPG; rng default Mdl = fitrtree(X,Y,'OptimizeHyperparameters','auto',... 'HyperparameterOptimizationOptions',struct('AcquisitionFunctionName',... 'expected-improvement-plus'))
|======================================================================================| | Iter | Eval | Objective: | Objective | BestSoFar | BestSoFar | MinLeafSize | | | result | log(1+loss) | runtime | (observed) | (estim.) | | |======================================================================================| | 1 | Best | 3.2818 | 0.13915 | 3.2818 | 3.2818 | 28 | | 2 | Accept | 3.4183 | 0.05742 | 3.2818 | 3.2888 | 1 | | 3 | Best | 3.1457 | 0.051596 | 3.1457 | 3.1628 | 4 | | 4 | Best | 2.9885 | 0.070203 | 2.9885 | 2.9885 | 9 | | 5 | Accept | 2.9978 | 0.047302 | 2.9885 | 2.9885 | 7 | | 6 | Accept | 3.0203 | 0.04998 | 2.9885 | 3.0013 | 8 | | 7 | Accept | 2.9885 | 0.053438 | 2.9885 | 2.9981 | 9 | | 8 | Best | 2.9589 | 0.063346 | 2.9589 | 2.9589 | 10 | | 9 | Accept | 3.078 | 0.060645 | 2.9589 | 2.9888 | 13 | | 10 | Accept | 4.1881 | 0.052751 | 2.9589 | 2.9592 | 50 | | 11 | Accept | 3.4182 | 0.064517 | 2.9589 | 2.9592 | 2 | | 12 | Accept | 3.0376 | 0.04815 | 2.9589 | 2.9591 | 6 | | 13 | Accept | 3.1453 | 0.070829 | 2.9589 | 2.9591 | 20 | | 14 | Accept | 2.9589 | 0.082447 | 2.9589 | 2.959 | 10 | | 15 | Accept | 3.0123 | 0.048664 | 2.9589 | 2.9728 | 11 | | 16 | Accept | 2.9589 | 0.079412 | 2.9589 | 2.9593 | 10 | | 17 | Accept | 3.3055 | 0.053384 | 2.9589 | 2.9593 | 3 | | 18 | Accept | 2.9589 | 0.04755 | 2.9589 | 2.9592 | 10 | | 19 | Accept | 3.4577 | 0.053403 | 2.9589 | 2.9591 | 37 | | 20 | Accept | 3.2166 | 0.060229 | 2.9589 | 2.959 | 16 | |======================================================================================| | Iter | Eval | Objective: | Objective | BestSoFar | BestSoFar | MinLeafSize | | | result | log(1+loss) | runtime | (observed) | (estim.) | | |======================================================================================| | 21 | Accept | 3.107 | 0.052991 | 2.9589 | 2.9591 | 5 | | 22 | Accept | 3.2818 | 0.050341 | 2.9589 | 2.959 | 24 | | 23 | Accept | 3.3226 | 0.047839 | 2.9589 | 2.959 | 32 | | 24 | Accept | 4.1881 | 0.04512 | 2.9589 | 2.9589 | 43 | | 25 | Accept | 3.1789 | 0.079162 | 2.9589 | 2.9589 | 18 | | 26 | Accept | 3.0992 | 0.048448 | 2.9589 | 2.9589 | 14 | | 27 | Accept | 3.0556 | 0.054892 | 2.9589 | 2.9589 | 22 | | 28 | Accept | 3.0459 | 0.078358 | 2.9589 | 2.9589 | 12 | | 29 | Accept | 3.2818 | 0.052024 | 2.9589 | 2.9589 | 26 | | 30 | Accept | 3.4361 | 0.046595 | 2.9589 | 2.9589 | 34 |
__________________________________________________________ Optimization completed. MaxObjectiveEvaluations of 30 reached. Total function evaluations: 30 Total elapsed time: 33.5591 seconds Total objective function evaluation time: 1.8102 Best observed feasible point: MinLeafSize ___________ 10 Observed objective function value = 2.9589 Estimated objective function value = 2.9589 Function evaluation time = 0.063346 Best estimated feasible point (according to models): MinLeafSize ___________ 10 Estimated objective function value = 2.9589 Estimated function evaluation time = 0.058388
Mdl = RegressionTree ResponseName: 'Y' CategoricalPredictors: [] ResponseTransform: 'none' NumObservations: 94 HyperparameterOptimizationResults: [1x1 BayesianOptimization] Properties, Methods
Загрузите carsmall
набор данных. Рассмотрим модель, которая предсказывает среднюю экономию топлива автомобиля, учитывая его ускорение, количество цилиндров, объем двигателя, мощность, производитель, год модели и вес. Рассмотрим Cylinders
, Mfg
, и Model_Year
как категориальные переменные.
load carsmall Cylinders = categorical(Cylinders); Mfg = categorical(cellstr(Mfg)); Model_Year = categorical(Model_Year); X = table(Acceleration,Cylinders,Displacement,Horsepower,Mfg,... Model_Year,Weight,MPG);
Отображение количества категорий, представленных в категориальных переменных.
numCylinders = numel(categories(Cylinders))
numCylinders = 3
numMfg = numel(categories(Mfg))
numMfg = 28
numModelYear = numel(categories(Model_Year))
numModelYear = 3
Потому что существует 3 категории только в Cylinders
и Model_Year
стандартный алгоритм разделения предикторов ТЕЛЕЖКА предпочитает разделение непрерывного предиктора над этими двумя переменными.
Обучите регрессионное дерево, используя весь набор данных. Чтобы вырастить объективные деревья, задайте использование теста кривизны для разделения предикторов. Поскольку в данных отсутствуют значения, задайте использование суррогатных разделений.
Mdl = fitrtree(X,'MPG','PredictorSelection','curvature','Surrogate','on');
Оцените значения важности предиктора путем суммирования изменений риска из-за расщеплений на каждом предикторе и деления суммы на количество узлов ветви. Сравните оценки с помощью гистограммы.
imp = predictorImportance(Mdl); figure; bar(imp); title('Predictor Importance Estimates'); ylabel('Estimates'); xlabel('Predictors'); h = gca; h.XTickLabel = Mdl.PredictorNames; h.XTickLabelRotation = 45; h.TickLabelInterpreter = 'none';
В этом случае Displacement
является наиболее важным предиктором, за которым следуют Horsepower
.
fitrtree
по умолчанию выращивает глубокие деревья решений. Создайте более мелкое дерево, которое требует меньшего количества проходов через длинный массив. Используйте 'MaxDepth'
аргумент пары "имя-значение" для управления максимальной глубиной дерева.
При выполнении вычислений на длинные массивы MATLAB ® использует либо параллельный пул (по умолчанию, если у вас есть Parallel Computing Toolbox™), либо локальный сеанс работы с MATLAB. Если вы хотите запустить пример с помощью локального сеанса работы с MATLAB, когда у вас есть Parallel Computing Toolbox, можно изменить глобальное окружение выполнения, используя mapreducer
функция.
Загрузите carsmall
набор данных. Рассмотрим Displacement
, Horsepower
, и Weight
как предикторы отклика MPG
.
load carsmall
X = [Displacement Horsepower Weight];
Преобразуйте массивы в памяти X
и MPG
к длинным массивам.
tx = tall(X);
Starting parallel pool (parpool) using the 'local' profile ... Connected to the parallel pool (number of workers: 6).
ty = tall(MPG);
Вырастите дерево регрессии, используя все наблюдения. Разрешить дереву расти до максимально возможной глубины.
Для воспроизводимости установите начальные значения генераторов случайных чисел, используя rng
и tallrng
. Результаты могут варьироваться в зависимости от количества рабочих процессов и окружения выполнения для длинных массивов. Для получения дополнительной информации смотрите Управление, Где Ваш Код Запуски.
rng('default') tallrng('default') Mdl = fitrtree(tx,ty);
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 2: Completed in 4.1 sec - Pass 2 of 2: Completed in 0.71 sec Evaluation completed in 6.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 7: Completed in 1.4 sec - Pass 2 of 7: Completed in 0.29 sec - Pass 3 of 7: Completed in 1.5 sec - Pass 4 of 7: Completed in 3.3 sec - Pass 5 of 7: Completed in 0.63 sec - Pass 6 of 7: Completed in 1.2 sec - Pass 7 of 7: Completed in 2.6 sec Evaluation completed in 12 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 7: Completed in 0.36 sec - Pass 2 of 7: Completed in 0.27 sec - Pass 3 of 7: Completed in 0.85 sec - Pass 4 of 7: Completed in 2 sec - Pass 5 of 7: Completed in 0.55 sec - Pass 6 of 7: Completed in 0.92 sec - Pass 7 of 7: Completed in 1.6 sec Evaluation completed in 7.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 7: Completed in 0.32 sec - Pass 2 of 7: Completed in 0.29 sec - Pass 3 of 7: Completed in 0.89 sec - Pass 4 of 7: Completed in 1.9 sec - Pass 5 of 7: Completed in 0.83 sec - Pass 6 of 7: Completed in 1.2 sec - Pass 7 of 7: Completed in 2.4 sec Evaluation completed in 9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 7: Completed in 0.33 sec - Pass 2 of 7: Completed in 0.28 sec - Pass 3 of 7: Completed in 0.89 sec - Pass 4 of 7: Completed in 2.4 sec - Pass 5 of 7: Completed in 0.76 sec - Pass 6 of 7: Completed in 1 sec - Pass 7 of 7: Completed in 1.7 sec Evaluation completed in 8.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 7: Completed in 0.34 sec - Pass 2 of 7: Completed in 0.26 sec - Pass 3 of 7: Completed in 0.81 sec - Pass 4 of 7: Completed in 1.7 sec - Pass 5 of 7: Completed in 0.56 sec - Pass 6 of 7: Completed in 1 sec - Pass 7 of 7: Completed in 1.9 sec Evaluation completed in 7.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 7: Completed in 0.35 sec - Pass 2 of 7: Completed in 0.28 sec - Pass 3 of 7: Completed in 0.81 sec - Pass 4 of 7: Completed in 1.8 sec - Pass 5 of 7: Completed in 0.76 sec - Pass 6 of 7: Completed in 0.96 sec - Pass 7 of 7: Completed in 2.2 sec Evaluation completed in 8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 7: Completed in 0.35 sec - Pass 2 of 7: Completed in 0.32 sec - Pass 3 of 7: Completed in 0.92 sec - Pass 4 of 7: Completed in 1.9 sec - Pass 5 of 7: Completed in 1 sec - Pass 6 of 7: Completed in 1.5 sec - Pass 7 of 7: Completed in 2.1 sec Evaluation completed in 9.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 7: Completed in 0.33 sec - Pass 2 of 7: Completed in 0.28 sec - Pass 3 of 7: Completed in 0.82 sec - Pass 4 of 7: Completed in 1.4 sec - Pass 5 of 7: Completed in 0.61 sec - Pass 6 of 7: Completed in 0.93 sec - Pass 7 of 7: Completed in 1.5 sec Evaluation completed in 6.6 sec
Просмотрите обученное дерево Mdl
.
view(Mdl,'Mode','graph')
Mdl
- дерево глубины 8
.
Оцените среднюю квадратичную невязку в выборке.
MSE_Mdl = gather(loss(Mdl,tx,ty))
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.6 sec Evaluation completed in 1.9 sec
MSE_Mdl = 4.9078
Вырастите дерево регрессии, используя все наблюдения. Ограничьте глубину дерева путем определения максимальной глубины 4
.
Mdl2 = fitrtree(tx,ty,'MaxDepth',4);
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 2: Completed in 0.27 sec - Pass 2 of 2: Completed in 0.28 sec Evaluation completed in 0.84 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 7: Completed in 0.36 sec - Pass 2 of 7: Completed in 0.3 sec - Pass 3 of 7: Completed in 0.95 sec - Pass 4 of 7: Completed in 1.6 sec - Pass 5 of 7: Completed in 0.55 sec - Pass 6 of 7: Completed in 0.93 sec - Pass 7 of 7: Completed in 1.5 sec Evaluation completed in 7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 7: Completed in 0.34 sec - Pass 2 of 7: Completed in 0.3 sec - Pass 3 of 7: Completed in 0.95 sec - Pass 4 of 7: Completed in 1.7 sec - Pass 5 of 7: Completed in 0.57 sec - Pass 6 of 7: Completed in 0.94 sec - Pass 7 of 7: Completed in 1.8 sec Evaluation completed in 7.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 7: Completed in 0.34 sec - Pass 2 of 7: Completed in 0.3 sec - Pass 3 of 7: Completed in 0.87 sec - Pass 4 of 7: Completed in 1.5 sec - Pass 5 of 7: Completed in 0.57 sec - Pass 6 of 7: Completed in 0.81 sec - Pass 7 of 7: Completed in 1.7 sec Evaluation completed in 6.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 7: Completed in 0.32 sec - Pass 2 of 7: Completed in 0.27 sec - Pass 3 of 7: Completed in 0.85 sec - Pass 4 of 7: Completed in 1.6 sec - Pass 5 of 7: Completed in 0.63 sec - Pass 6 of 7: Completed in 0.9 sec - Pass 7 of 7: Completed in 1.6 sec Evaluation completed in 7 sec
Просмотрите обученное дерево Mdl2
.
view(Mdl2,'Mode','graph')
Оцените среднюю квадратичную невязку в выборке.
MSE_Mdl2 = gather(loss(Mdl2,tx,ty))
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.73 sec Evaluation completed in 1 sec
MSE_Mdl2 = 9.3903
Mdl2
является менее комплексным деревом с глубиной 4 и средней квадратичной невязкой в выборке, которая выше, чем средняя квадратичная невязка Mdl
.
Оптимизируйте гиперпараметры регрессионого дерева автоматически с помощью длинный массив. Выборочные данные являются carsmall
набор данных. Этот пример преобразует набор данных в длинный массив и использует его, чтобы запустить процедуру оптимизации.
При выполнении вычислений на длинные массивы MATLAB ® использует либо параллельный пул (по умолчанию, если у вас есть Parallel Computing Toolbox™), либо локальный сеанс работы с MATLAB. Если вы хотите запустить пример с помощью локального сеанса работы с MATLAB, когда у вас есть Parallel Computing Toolbox, можно изменить глобальное окружение выполнения, используя mapreducer
функция.
Загрузите carsmall
набор данных. Рассмотрим Displacement
, Horsepower
, и Weight
как предикторы отклика MPG
.
load carsmall
X = [Displacement Horsepower Weight];
Преобразуйте массивы в памяти X
и MPG
к длинным массивам.
tx = tall(X);
Starting parallel pool (parpool) using the 'local' profile ... Connected to the parallel pool (number of workers: 6).
ty = tall(MPG);
Оптимизируйте гиперпараметры автоматически с помощью 'OptimizeHyperparameters'
аргумент пары "имя-значение". Нахождение оптимального 'MinLeafSize'
значение, которое минимизирует потери перекрестной валидации удержания. (Определение 'auto'
использует 'MinLeafSize'
.) Для воспроизводимости используйте 'expected-improvement-plus'
и установите начальные значения генераторов случайных чисел, используя rng
и tallrng
. Результаты могут варьироваться в зависимости от количества рабочих процессов и окружения выполнения для длинных массивов. Для получения дополнительной информации смотрите Управление, Где Ваш Код Запуски.
rng('default') tallrng('default') [Mdl,FitInfo,HyperparameterOptimizationResults] = fitrtree(tx,ty,... 'OptimizeHyperparameters','auto',... 'HyperparameterOptimizationOptions',struct('Holdout',0.3,... 'AcquisitionFunctionName','expected-improvement-plus'))
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 4.4 sec Evaluation completed in 6.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.97 sec - Pass 2 of 4: Completed in 1.6 sec - Pass 3 of 4: Completed in 3.6 sec - Pass 4 of 4: Completed in 2.4 sec Evaluation completed in 9.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.55 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 2.7 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.52 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 3 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 8.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.55 sec - Pass 2 of 4: Completed in 1.4 sec - Pass 3 of 4: Completed in 2.6 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 7.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.61 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 2.1 sec - Pass 4 of 4: Completed in 1.7 sec Evaluation completed in 6.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.53 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 2.4 sec - Pass 4 of 4: Completed in 1.6 sec Evaluation completed in 6.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.4 sec Evaluation completed in 1.7 sec |======================================================================================| | Iter | Eval | Objective: | Objective | BestSoFar | BestSoFar | MinLeafSize | | | result | log(1+loss) | runtime | (observed) | (estim.) | | |======================================================================================| | 1 | Best | 3.2007 | 69.013 | 3.2007 | 3.2007 | 2 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.52 sec Evaluation completed in 0.83 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.65 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 3 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 8.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.79 sec Evaluation completed in 1 sec | 2 | Error | NaN | 13.772 | NaN | 3.2007 | 46 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.52 sec Evaluation completed in 0.81 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.57 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 2.2 sec - Pass 4 of 4: Completed in 1.7 sec Evaluation completed in 6.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.5 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 2.7 sec - Pass 4 of 4: Completed in 1.7 sec Evaluation completed in 6.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.47 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 2.1 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.72 sec Evaluation completed in 0.99 sec | 3 | Best | 3.1876 | 29.091 | 3.1876 | 3.1884 | 18 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.48 sec Evaluation completed in 0.76 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.5 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 1.9 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.48 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 2 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 5.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.54 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.9 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.46 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.64 sec Evaluation completed in 0.92 sec | 4 | Best | 2.9048 | 33.465 | 2.9048 | 2.9537 | 6 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.44 sec Evaluation completed in 0.71 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.46 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 2 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 5.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.47 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.9 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 5.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.44 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.9 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.66 sec Evaluation completed in 0.92 sec | 5 | Accept | 3.2895 | 25.902 | 2.9048 | 2.9048 | 15 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.54 sec Evaluation completed in 0.82 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.53 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 2 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.5 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 2.1 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.49 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.9 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 6.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.45 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 2 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.68 sec Evaluation completed in 0.99 sec | 6 | Accept | 3.1641 | 35.522 | 2.9048 | 3.1493 | 5 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.51 sec Evaluation completed in 0.79 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.67 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 6.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.45 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.9 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.48 sec - Pass 2 of 4: Completed in 1.4 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.46 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.63 sec Evaluation completed in 0.89 sec | 7 | Accept | 2.9048 | 33.755 | 2.9048 | 2.9048 | 6 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.45 sec Evaluation completed in 0.75 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.51 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 2.2 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 6.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.49 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.9 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.46 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.45 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.68 sec Evaluation completed in 0.97 sec | 8 | Accept | 2.9522 | 33.362 | 2.9048 | 2.9048 | 7 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.42 sec Evaluation completed in 0.71 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.48 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.45 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.5 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.9 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 5.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.49 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.64 sec Evaluation completed in 0.9 sec | 9 | Accept | 2.9985 | 32.674 | 2.9048 | 2.9048 | 8 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.43 sec Evaluation completed in 0.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.47 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.56 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 2 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.45 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 5.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.47 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.6 sec Evaluation completed in 5.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.88 sec Evaluation completed in 1.2 sec | 10 | Accept | 3.0185 | 33.922 | 2.9048 | 2.9048 | 10 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.44 sec Evaluation completed in 0.74 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.46 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.48 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 2 sec - Pass 4 of 4: Completed in 1.6 sec Evaluation completed in 6.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.73 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 2 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 6.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.63 sec Evaluation completed in 0.88 sec | 11 | Accept | 3.2895 | 26.625 | 2.9048 | 2.9048 | 14 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.48 sec Evaluation completed in 0.78 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.51 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 1.9 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.48 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.65 sec Evaluation completed in 0.9 sec | 12 | Accept | 3.4798 | 18.111 | 2.9048 | 2.9049 | 31 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.44 sec Evaluation completed in 0.71 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.45 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.5 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.5 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.48 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.44 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.43 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 2 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.64 sec Evaluation completed in 0.91 sec | 13 | Accept | 3.2248 | 47.436 | 2.9048 | 2.9048 | 1 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.46 sec Evaluation completed in 0.74 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.6 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.45 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.57 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 2.6 sec - Pass 4 of 4: Completed in 1.6 sec Evaluation completed in 6.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.62 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.5 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.6 sec Evaluation completed in 6.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.61 sec Evaluation completed in 0.88 sec | 14 | Accept | 3.1498 | 42.062 | 2.9048 | 2.9048 | 3 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.46 sec Evaluation completed in 0.76 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.48 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.5 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.67 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 2.3 sec - Pass 4 of 4: Completed in 2.2 sec Evaluation completed in 7.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.45 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.6 sec Evaluation completed in 0.86 sec | 15 | Accept | 2.9048 | 34.3 | 2.9048 | 2.9048 | 6 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.48 sec Evaluation completed in 0.78 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.44 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.44 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.43 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.44 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 2 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.62 sec Evaluation completed in 0.88 sec | 16 | Accept | 2.9048 | 32.97 | 2.9048 | 2.9048 | 6 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.43 sec Evaluation completed in 0.73 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.47 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.43 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.62 sec Evaluation completed in 0.9 sec | 17 | Accept | 3.1847 | 17.47 | 2.9048 | 2.9048 | 23 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.43 sec Evaluation completed in 0.72 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.44 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.68 sec - Pass 2 of 4: Completed in 1.4 sec - Pass 3 of 4: Completed in 1.9 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 6.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.45 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.44 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.62 sec Evaluation completed in 0.93 sec | 18 | Accept | 3.1817 | 33.346 | 2.9048 | 2.9048 | 4 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.43 sec Evaluation completed in 0.72 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.44 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.62 sec Evaluation completed in 0.86 sec | 19 | Error | NaN | 10.235 | 2.9048 | 2.9048 | 38 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.47 sec Evaluation completed in 0.76 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.44 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.44 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.44 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.9 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.43 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.63 sec Evaluation completed in 0.89 sec | 20 | Accept | 3.0628 | 32.459 | 2.9048 | 2.9048 | 12 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.46 sec Evaluation completed in 0.76 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.48 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.68 sec - Pass 2 of 4: Completed in 1.7 sec - Pass 3 of 4: Completed in 2.1 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 6.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.64 sec Evaluation completed in 0.9 sec |======================================================================================| | Iter | Eval | Objective: | Objective | BestSoFar | BestSoFar | MinLeafSize | | | result | log(1+loss) | runtime | (observed) | (estim.) | | |======================================================================================| | 21 | Accept | 3.1847 | 19.02 | 2.9048 | 2.9048 | 27 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.45 sec Evaluation completed in 0.75 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.47 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.45 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.5 sec - Pass 2 of 4: Completed in 1.6 sec - Pass 3 of 4: Completed in 2.4 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 6.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.44 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 5.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.63 sec Evaluation completed in 0.89 sec | 22 | Accept | 3.0185 | 33.933 | 2.9048 | 2.9048 | 9 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.46 sec Evaluation completed in 0.76 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.45 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.45 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.43 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.64 sec Evaluation completed in 0.89 sec | 23 | Accept | 3.0749 | 25.147 | 2.9048 | 2.9048 | 20 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.44 sec Evaluation completed in 0.73 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.42 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.43 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.53 sec - Pass 2 of 4: Completed in 1.4 sec - Pass 3 of 4: Completed in 1.9 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.44 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.62 sec Evaluation completed in 0.88 sec | 24 | Accept | 3.0628 | 32.764 | 2.9048 | 2.9048 | 11 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.44 sec Evaluation completed in 0.73 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.44 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.61 sec Evaluation completed in 0.87 sec | 25 | Error | NaN | 10.294 | 2.9048 | 2.9048 | 34 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.44 sec Evaluation completed in 0.73 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.45 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.43 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.62 sec Evaluation completed in 0.87 sec | 26 | Accept | 3.1847 | 17.587 | 2.9048 | 2.9048 | 25 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.45 sec Evaluation completed in 0.73 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.45 sec - Pass 2 of 4: Completed in 1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.44 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.43 sec - Pass 2 of 4: Completed in 1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.66 sec Evaluation completed in 0.96 sec | 27 | Accept | 3.2895 | 24.867 | 2.9048 | 2.9048 | 16 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.44 sec Evaluation completed in 0.74 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.45 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.43 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.44 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.6 sec Evaluation completed in 0.88 sec | 28 | Accept | 3.2135 | 24.928 | 2.9048 | 2.9048 | 13 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.47 sec Evaluation completed in 0.76 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.45 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.46 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.62 sec Evaluation completed in 0.87 sec | 29 | Accept | 3.1847 | 17.582 | 2.9048 | 2.9048 | 21 |
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.53 sec Evaluation completed in 0.81 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.44 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.43 sec - Pass 2 of 4: Completed in 1.1 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.63 sec Evaluation completed in 0.88 sec | 30 | Accept | 3.1827 | 17.597 | 2.9048 | 2.9122 | 29 |
__________________________________________________________ Optimization completed. MaxObjectiveEvaluations of 30 reached. Total function evaluations: 30 Total elapsed time: 882.5668 seconds. Total objective function evaluation time: 859.2122 Best observed feasible point: MinLeafSize ___________ 6 Observed objective function value = 2.9048 Estimated objective function value = 2.9122 Function evaluation time = 33.4655 Best estimated feasible point (according to models): MinLeafSize ___________ 6 Estimated objective function value = 2.9122 Estimated function evaluation time = 33.6594 Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 2: Completed in 0.26 sec - Pass 2 of 2: Completed in 0.26 sec Evaluation completed in 0.84 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 7: Completed in 0.31 sec - Pass 2 of 7: Completed in 0.25 sec - Pass 3 of 7: Completed in 0.75 sec - Pass 4 of 7: Completed in 1.2 sec - Pass 5 of 7: Completed in 0.45 sec - Pass 6 of 7: Completed in 0.69 sec - Pass 7 of 7: Completed in 1.2 sec Evaluation completed in 5.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 7: Completed in 0.28 sec - Pass 2 of 7: Completed in 0.24 sec - Pass 3 of 7: Completed in 0.75 sec - Pass 4 of 7: Completed in 1.2 sec - Pass 5 of 7: Completed in 0.46 sec - Pass 6 of 7: Completed in 0.67 sec - Pass 7 of 7: Completed in 1.2 sec Evaluation completed in 5.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 7: Completed in 0.32 sec - Pass 2 of 7: Completed in 0.25 sec - Pass 3 of 7: Completed in 0.71 sec - Pass 4 of 7: Completed in 1.2 sec - Pass 5 of 7: Completed in 0.47 sec - Pass 6 of 7: Completed in 0.66 sec - Pass 7 of 7: Completed in 1.2 sec Evaluation completed in 5.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 7: Completed in 0.29 sec - Pass 2 of 7: Completed in 0.25 sec - Pass 3 of 7: Completed in 0.73 sec - Pass 4 of 7: Completed in 1.2 sec - Pass 5 of 7: Completed in 0.46 sec - Pass 6 of 7: Completed in 0.68 sec - Pass 7 of 7: Completed in 1.2 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 7: Completed in 0.27 sec - Pass 2 of 7: Completed in 0.25 sec - Pass 3 of 7: Completed in 0.75 sec - Pass 4 of 7: Completed in 1.2 sec - Pass 5 of 7: Completed in 0.47 sec - Pass 6 of 7: Completed in 0.69 sec - Pass 7 of 7: Completed in 1.2 sec Evaluation completed in 5.6 sec
Mdl = CompactRegressionTree ResponseName: 'Y' CategoricalPredictors: [] ResponseTransform: 'none' Properties, Methods
FitInfo = struct with no fields.
HyperparameterOptimizationResults = BayesianOptimization with properties: ObjectiveFcn: @createObjFcn/tallObjFcn VariableDescriptions: [3×1 optimizableVariable] Options: [1×1 struct] MinObjective: 2.9048 XAtMinObjective: [1×1 table] MinEstimatedObjective: 2.9122 XAtMinEstimatedObjective: [1×1 table] NumObjectiveEvaluations: 30 TotalElapsedTime: 882.5668 NextPoint: [1×1 table] XTrace: [30×1 table] ObjectiveTrace: [30×1 double] ConstraintsTrace: [] UserDataTrace: {30×1 cell} ObjectiveEvaluationTimeTrace: [30×1 double] IterationTimeTrace: [30×1 double] ErrorTrace: [30×1 double] FeasibilityTrace: [30×1 logical] FeasibilityProbabilityTrace: [30×1 double] IndexOfMinimumTrace: [30×1 double] ObjectiveMinimumTrace: [30×1 double] EstimatedObjectiveMinimumTrace: [30×1 double]
Tbl
- Выборочные данныеВыборочные данные, используемых для обучения модели, заданная как таблица. Каждая строка Tbl
соответствует одному наблюдению, и каждый столбец соответствует одной переменной предиктора. Опционально Tbl
может содержать один дополнительный столбец для переменной отклика. Многополюсные переменные и массивы ячеек, отличные от массивов ячеек векторов символов, не разрешены.
Если Tbl
содержит переменную отклика, и необходимо использовать все оставшиеся переменные в 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
на длинных массивах. Для получения дополнительной информации см. раздел «Длинные массивы».
'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, а затем выращивает деревья на индексах интервал вместо исходных данных.
Количество интервалов может быть меньше numBins
если предиктор имеет меньше numBins
уникальные значения.
fitrtree
не содержит категориальные предикторы.
Когда вы используете большой набор обучающих данных, эта опция binning ускоряет обучение, но может привести к потенциальному снижению точности. Можно попробовать '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]. Скорость обучения аналогична стандартной ТЕЛЕЖКА. |
'interaction-curvature' | Тест взаимодействия - выбирает разделенный предиктор, который минимизирует p-значение хи-квадратных тестов независимости между каждым предиктором и ответом (то есть проводит тесты кривизны), и который минимизирует p-значение хи-квадратного теста независимости между каждой парой предикторов и ответом [2]. Скорость обучения может быть медленнее, чем стандартная ТЕЛЕЖКА. |
Для 'curvature'
и 'interaction-curvature'
, если все тесты дают p -значений больше 0,05, тоfitrtree
останавливает разделение узлов.
Совет
Стандартная ТЕЛЕЖКА имеет тенденцию выбирать разделенные предикторы, содержащие много различных значений, например, непрерывных переменных, по сравнению с теми, которые содержат несколько различных значений, например, категориальные переменные [3]. Рассмотрите установку критерия кривизны или взаимодействия, если любое из следующих значений верно:
Если существуют предикторы, которые имеют относительно меньше различных значений, чем другие предикторы, например, если набор данных предиктора неоднороден.
Если анализ предикторной важности является вашей целью. Для получения дополнительной информации об оценке предикторной важности см. predictorImportance
и Введение в выбор признаков.
Деревья, выращенные с использованием стандартной ТЕЛЕЖКА, не чувствительны к взаимодействиям переменных предиктора. Кроме того, такие деревья с меньшей вероятностью идентифицируют важные переменные в присутствии многих нерелевантных предикторов, чем применение теста взаимодействия. Поэтому, чтобы принять во внимание взаимодействия предикторов и идентифицировать переменные важности в присутствии многих нерелевантных переменных, задайте тест взаимодействия.
Скорость предсказания не зависит от значения '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 реакций, вычисленных перед ростом дерева решений.
wi - вес i наблюдений, учитывая, что веса всех наблюдений равны единице (), и
- взвешенное среднее значение всех ответов.
Дополнительные сведения о разделении узлов см. в разделе «Правила разделения узлов».
Пример: 'QuadraticErrorTolerance',1e-4
'Reproducible'
- Флаг для обеспечения воспроизводимостиfalse
(логический 0
) (по умолчанию) | true
(логический 1
)Флаг для обеспечения воспроизводимости во время повторных запусков обучения модели, заданный как разделенная разделенными запятой парами, состоящая из 'Reproducible'
и любой из них false
или true
.
Если 'NumVariablesToSample'
не 'all'
затем программа выбирает предикторы случайным образом для каждого разделения. Чтобы воспроизвести случайные выборки, вы должны задать 'Reproducible',true
и установите seed генератора случайных чисел при помощи 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
находит все суррогатные разделения в каждом узле ветви. The '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», заданная как разделенная разделенными запятой парами, состоящая из 'Holdout'
и скалярное значение в области значений [0,1]
. Holdout проверяет указанную долю данных и использует остальную часть данных для обучения.
Если вы используете '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'
. В противном случае программное обеспечение может не выбрать некоторые предикторы, недооценив их важность.
Чтобы воспроизвести случайные выборки, необходимо задать seed генератора случайных чисел при помощи 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
оптимизирует по этому гиперпараметру.
Установите параметры nondefault путем передачи вектора optimizableVariable
объекты, которые имеют значения nondefault. Для примера,
load carsmall params = hyperparameters('fitrtree',[Horsepower,Weight],MPG); params(1).Range = [1,30];
Передайте params
как значение OptimizeHyperparameters
.
По умолчанию итеративное отображение появляется в командной строке, и графики появляются согласно количеству гиперпараметров в оптимизации. Для оптимизации и графиков целевой функцией является журнал ( 1 + потери перекрестной валидации) для регрессии и коэффициент неправильной классификации для классификации. Чтобы управлять итеративным отображением, установите Verbose
поле 'HyperparameterOptimizationOptions'
аргумент пары "имя-значение". Чтобы управлять графиками, установите ShowPlots
поле 'HyperparameterOptimizationOptions'
аргумент пары "имя-значение".
Для получения примера см. раздел «Оптимизация дерева регрессии».
Пример: 'auto'
'HyperparameterOptimizationOptions'
- Опции для оптимизацииОпции оптимизации, заданные как разделенная разделенными запятой парами, состоящая из 'HyperparameterOptimizationOptions'
и структуру. Этот аргумент изменяет эффект OptimizeHyperparameters
аргумент пары "имя-значение". Все поля в структуре являются необязательными.
Имя поля | Значения | Дефолт |
---|---|---|
Optimizer |
| 'bayesopt' |
AcquisitionFunctionName |
Функции сбора данных, имена которых включают | 'expected-improvement-per-second-plus' |
MaxObjectiveEvaluations | Максимальное количество вычислений целевой функции. | 30 для 'bayesopt' или 'randomsearch' , и вся сетка для 'gridsearch' |
MaxTime | Временной предел, заданный как положительный действительный. Предел времени в секундах, что измеряется | Inf |
NumGridDivisions | Для 'gridsearch' , количество значений в каждой размерности. Значение может быть вектором положительных целых чисел, дающих количество значений для каждой размерности, или скаляром, который применяется ко всем размерностям. Это поле игнорируется для категориальных переменных. | 10 |
ShowPlots | Логическое значение, указывающее, показывать ли графики. Если true , это поле строит график наилучшего значения целевой функции относительно числа итерации. Если существует один или два параметра оптимизации и если Optimizer является 'bayesopt' , затем ShowPlots также строит график модели целевой функции относительно параметров. | true |
SaveIntermediateResults | Логическое значение, указывающее, сохранять ли результаты при Optimizer является 'bayesopt' . Если true , это поле перезаписывает переменную рабочей области с именем 'BayesoptResults' при каждой итерации. Переменная является BayesianOptimization объект. | false |
Verbose | Отображение в командной строке.
Для получения дополнительной информации смотрите | 1 |
UseParallel | Логическое значение, указывающее, запускать ли байесовскую оптимизацию параллельно, что требует Parallel Computing Toolbox™. Из-за непродуктивности параллельной синхронизации параллельная байесовская оптимизация не обязательно приводит к воспроизводимым результатам. Для получения дополнительной информации см. «Параллельная байесовская оптимизация». | false |
Repartition | Логическое значение, указывающее, следует ли повторять перекрестную валидацию при каждой итерации. Если
| false |
Используйте не более одного из следующих трех имен полей. | ||
CVPartition | A cvpartition объект, созданный cvpartition . | 'Kfold',5 если вы не задаете какое-либо поле перекрестной проверки |
Holdout | Скаляр в области значений (0,1) представляющий фракцию удержания. | |
Kfold | Целое число, больше 1. |
Пример: 'HyperparameterOptimizationOptions',struct('MaxObjectiveEvaluations',60)
Типы данных: struct
tree
- Дерево регрессииРегрессионное дерево, возвращенное как объект регрессионного дерева. Использование 'Crossval'
, 'KFold'
, 'Holdout'
, 'Leaveout'
, или 'CVPartition'
опции приводят к дереву классов RegressionPartitionedModel
. Вы не можете использовать секционированное дерево для предсказания, поэтому этот вид дерева не имеет predict
способ.
В противном случае tree
является классом RegressionTree
, и вы можете использовать predict
способ изготовления предсказаний.
curvature test является статистическим тестом, оценивающим нулевую гипотезу о том, что две переменные не связаны.
Тест кривизны между переменной предиктора x и y проводится с использованием этого процесса.
Если x непрерывна, разбейте его на квартили. Создайте номинальную переменную, которая закрывает наблюдения в соответствии с тем, какой раздел раздела они занимают. Если есть отсутствующие значения, то создайте для них дополнительный интервал.
Для каждого уровня в секционированном предикторе j = 1... J и классе в отклике k = 1,..., K, вычислите взвешенную долю наблюдений в классе k
wi - вес i наблюдений, I - функция индикации, а n - размер выборки. Если все наблюдения имеют одинаковый вес, то , где njk - количество наблюдений в j уровня предиктора, которые находятся в k классов.
Вычислите тестовую статистику
, то есть предельная вероятность наблюдения предиктора на уровне j. , это предельная вероятность наблюдения за k класса. Если n достаточно велик, то t распределяется как χ2 с (K - 1) (J - 1) степенями свободы.
Если p-значение для теста меньше 0,05, отклоните нулевую гипотезу об отсутствии связи между x и y.
При определении лучшего предиктора разделения в каждом узле стандартный алгоритм ТЕЛЕЖКА предпочитает выбирать непрерывные предикторы, которые имеют много уровней. Иногда такой выбор может быть ложным и может также замаскировать более важные предикторы, которые имеют меньше уровней, такие как категориальные предикторы.
Тест кривизны может быть применен вместо стандартной ТЕЛЕЖКА, чтобы определить лучший разделенный предиктор в каждом узле. В этом случае лучшая переменная предиктора разделения является такой, которая минимизирует значимые p значения (те, что меньше 0,05) тестов кривизны между каждым предиктором и переменной отклика. Такой выбор является устойчивым к количеству уровней в отдельных предикторах.
Для получения дополнительной информации о том, как тест кривизны применяется к растущим деревьям регрессии, смотрите Правила разделения узлов и [3].
interaction test является статистическим тестом, который оценивает нулевую гипотезу об отсутствии взаимодействия между парой переменных предиктора и переменной отклика.
Тест взаимодействия, оценивающий связь между переменными предиктора x 1 и x 2 относительно y, проводится с использованием этого процесса.
Если x 1 или x 2 непрерывна, разбейте эту переменную на ее квартили. Создайте номинальную переменную, которая закрывает наблюдения в соответствии с тем, какой раздел раздела они занимают. Если есть отсутствующие значения, то создайте для них дополнительный интервал.
Создайте номинальную z с J = J 1 J 2 уровнями, которая присваивает индекс i наблюдения, согласно которым уровни x 1 и x 2 ему принадлежат. Удалите любые уровни z, которые не соответствуют никаким наблюдениям.
Проведите тест кривизны между z и y.
При выращивании деревьев решений, если существуют важные взаимодействия между парами предикторов, но в данных также есть много других менее важных предикторов, то стандартная ТЕЛЕЖКА, как правило, пропускает важные взаимодействия. Однако проведение тестов кривизны и взаимодействия для выбора предиктора может улучшить обнаружение важных взаимодействий, что может привести к более точным деревьям решений.
Для получения дополнительной информации о том, как тест взаимодействия применяется к растущим деревьям решений, смотрите Curvature Test, Node Splitting Rules и [2].
predictive measure of association является значением, которое указывает на сходство между правилами принятия решений, которые разделяют наблюдения. Среди всех возможных разделений решений, которые сравниваются с оптимальным разделением (найденным путем роста дерева), лучшее разделение суррогатных решений приводит к максимальной прогнозирующей мере ассоциации. Второе лучшее суррогатное разделение имеет вторую по величине прогнозирующую меру ассоциации.
Предположим xj, и xk переменные предсказателя j и k, соответственно, и <reservedrangesplaceholder6> ≠ <reservedrangesplaceholder5>. В узле t прогнозирующая мера ассоциации между оптимальным разделением xj < u и суррогатным разделением xk < v,
PL - это доля наблюдений в узле t, такая что xj < u. L индекса обозначает левый дочерний элемент узла t.
PR - пропорция наблюдений в узле t, такой что <reservedrangesplaceholder3> ≥ <reservedrangesplaceholder2>. R индекса обозначает правый дочерний элемент узла t.
- доля наблюдений в узле t, такая что xj < u и xk < v.
пропорция наблюдений в узле t, такой что <reservedrangesplaceholder3> ≥ <reservedrangesplaceholder2> и <reservedrangesplaceholder1> ≥ <reservedrangesplaceholder0>.
Наблюдения с отсутствующими значениями для xj или xk не способствуют вычислению пропорции.
λjk является значением в (- ∞, 1]. Если λjk > 0, то xk < v является стоящим суррогатным разделением для xj < u.
surrogate decision split является альтернативой оптимальному разделению решений в данном узле в дереве решений. Оптимальный раскол находит выращивание дерева; суррогатное разделение использует аналогичную или коррелированную переменную предиктора и критерий разделения.
Когда значение оптимального предиктора разделения для наблюдения отсутствует, наблюдение отправляется в левый или правый дочерний узел, используя лучший суррогатный предиктор. Когда значение лучшего суррогатного сплит предиктора для наблюдения также отсутствует, наблюдение отправляется в левый или правый дочерний узел с помощью второго лучшего суррогатного предиктора и так далее. Разделения кандидатов сортируются в порядке убывания по их прогнозирующей мере ассоциации.
По умолчанию Prune
является 'on'
. Однако эта спецификация не обрезает дерево регрессии. Чтобы обрезать обученное дерево регрессии, передайте дерево регрессии в prune
.
После обучения модели можно сгенерировать код C/C + +, который предсказывает ответы для новых данных. Для генерации кода C/C + + требуется MATLAB Coder™. Для получения дополнительной информации смотрите Введение в генерацию кода .
fitrtree
использует эти процессы, чтобы определить, как разделить t узла.
Для стандартной ТЕЛЕЖКИ (то есть, если PredictorSelection
является 'allpairs'
) и для всех предикторов xi, i = 1,..., p:
fitrtree
вычисляет средневзвешенную квадратичную невязку (MSE) ответов в узле t используя
wj - вес j наблюдения, а T - набор всех индексов наблюдения в узле t. Если вы не задаете Weights
, затем wj = 1/ n, где n - размер выборки.
fitrtree
оценивает вероятность того, что наблюдение находится в узле t использованием
fitrtree
сортирует xi в порядке возрастания. Каждый элемент отсортированного предиктора является кандидатом на разделение или точкой разреза. fitrtree
регистрирует все индексы, соответствующие отсутствующим значениям в TU set, который является набором неявных значений.
fitrtree
определяет лучший способ разделения узловых t с помощью xi путем максимизации сокращения MSE (и I) по всем кандидатам разделения. То есть для всех разделяющих кандидатов в xi:
fitrtree
разделяет наблюдения в узле t на левый и правый дочерние узлы (tL и tR, соответственно).
fitrtree
вычисляет, а I. Предположим, что для конкретного кандидата на разделение tL и tR содержат индексы наблюдения в наборах TL и TR, соответственно.
Если xi не содержит никаких отсутствующих значений, то уменьшение MSE для текущего кандидата на разделение является
Если xi содержит отсутствующие значения, то, принимая, что наблюдения отсутствуют случайным образом, сокращение MSE является
T - TU - набор всех индексов наблюдения в t узлов, которые не отсутствуют.
Если вы используете суррогатные разделения решений, то:
fitrtree
вычисляет прогнозирующие меры ассоциации между xj разделения решения <u и всеми возможными разделениями решения xk <v, <reservedrangesplaceholder1> ≠ <reservedrangesplaceholder0>.
fitrtree
сортирует возможные альтернативные разделения решений в порядке убывания по их прогнозирующей мере ассоциации с оптимальным разделением. Суррогатное разделение - это разделение решений, дающее наибольшую меру.
fitrtree
определяет назначения дочерних узлов для наблюдений с отсутствующим значением для xi с использованием суррогатного разделения. Если суррогатный предиктор также содержит отсутствующее значение, то fitrtree
использует разделение решения со второй по величине мерой и так далее, пока нет других суррогатов. Возможно для fitrtree
чтобы разделить два различных наблюдения в узле t используя два разных суррогатных разделения. Для примера предположим, что предикторы x 1 и x 2 являются лучшими и вторыми лучшими суррогатами, соответственно, для xi предиктора, i ∉ {1,2}, в узле t. Если m наблюдения предиктора xi отсутствует (то есть xmi отсутствует), но x m 1 не отсутствует, то x 1 является суррогатным предиктором для xmi наблюдений. Если наблюдения x (m + 1), i и x (m + 1), 1 отсутствуют, но x (m + 1), 2 не пропущено, то x 2 является суррогатным предиктором для наблюдения m + 1.
fitrtree
использует соответствующую формулу сокращения MSE. То есть, если fitrtree
не может назначить все отсутствующие наблюдения в узле t дочерним узлам с помощью суррогатных разделений, тогда сокращение MSE является IU. В противном случае ,fitrtree
Для I MSE используется
fitrtree
выбирает кандидата, который приводит к наибольшему сокращению MSE.
fitrtree
разделяет переменную предиктора в точке разреза, которая максимизирует уменьшение MSE.
Для теста кривизны (то есть, если PredictorSelection
является 'curvature'
):
fitrtree
вычисляет невязки для всех наблюдений в узле t. , который является взвешенным средним значением ответов в узле t. Веса являются весами наблюдений в Weights
.
fitrtree
присваивает наблюдения одному из двух интервалов согласно знаку соответствующих невязок. Позвольте zt быть номинальной переменной, которая содержит назначения интервала для наблюдений в узле t.
fitrtree
проводит тесты кривизны между каждым предиктором и zt. Для деревьев регрессии K = 2.
Если все p -значения не менее 0,05, тоfitrtree
не разделяет t узла.
Если существует минимальное p -значение, тоfitrtree
выбирает соответствующий предиктор для разделения t узла.
Если более одного p -значение меньше нуля из-за недолива, тоfitrtree
применяет стандартную ТЕЛЕЖКА к соответствующим предикторам, чтобы выбрать разделенный предиктор.
Если fitrtree
выбирает предиктор разделения, затем использует стандартную ТЕЛЕЖКА для выбора точки разреза (см. шаг 4 в стандартном процессе ТЕЛЕЖКА).
Для теста взаимодействия (то есть, если PredictorSelection
является 'interaction-curvature'
):
Для наблюдений в узле t, fitrtree
проводит тесты кривизны между каждым предиктором и тестами отклика и взаимодействия между каждой парой предикторов и откликом.
Если все p -значения не менее 0,05, тоfitrtree
не разделяет t узла.
Если существует минимальное p -значение и это результат теста кривизны, тоfitrtree
выбирает соответствующий предиктор для разделения t узла.
Если существует минимальное p -значение, и это результат теста взаимодействия, тоfitrtree
выбирает предиктор разделения, используя стандартную ТЕЛЕЖКА на соответствующей паре предикторов.
Если более одного p -значение меньше нуля из-за недолива, тоfitrtree
применяет стандартную ТЕЛЕЖКА к соответствующим предикторам, чтобы выбрать разделенный предиктор.
Если fitrtree
выбирает предиктор разделения, затем использует стандартную ТЕЛЕЖКА для выбора точки разреза (см. шаг 4 в стандартном процессе ТЕЛЕЖКА).
Если MergeLeaves
является 'on'
и PruneCriterion
является 'mse'
(которые являются значениями по умолчанию для этих аргументов пары "имя-значение"), тогда программа применяет обрезку только к листьям и при помощи MSE. Эта спецификация представляет собой слияние листьев, поступающих от того же родительского узла, чей MSE является самое большее суммой MSE двух его листьев.
Для размещения MaxNumSplits
, fitrtree
разделяет все узлы в текущей layer, а затем подсчитывает количество узлов ветви. Слой является набором узлов, равноудаленных от корневого узла. Если количество узлов ветви превышает MaxNumSplits
, fitrtree
следовать этой процедуре:
Определите, сколько узлов ветви в текущем слое должно быть непригодно, чтобы было самое большее MaxNumSplits
узлы ветви.
Сортировка узлов ветви по усилениям примесей.
Отключите количество наименее успешных ветвей.
Верните дерево решений, выращенное до сих пор.
Эта процедура создает максимально сбалансированные деревья.
Программа разделяет узлы ветви слой за слоем, пока не произойдет по крайней мере одно из следующих событий:
Есть MaxNumSplits
узлы ветви.
Предлагаемое разделение заставляет количество наблюдений по меньшей мере в одном узле ветви быть меньше MinParentSize
.
Предлагаемое разделение заставляет количество наблюдений по меньшей мере в одном листовом узле быть меньше MinLeafSize
.
Алгоритм не может найти хорошее разделение внутри слоя (т.е. критерий обрезки (см PruneCriterion
), не улучшается для всех предлагаемых расщеплений в слое). Особый случай, когда все узлы являются чистыми (т.е. все наблюдения в узле имеют один и тот же класс).
Для значений 'curvature'
или 'interaction-curvature'
от PredictorSelection
все тесты дают p значений более 0,05.
MaxNumSplits
и MinLeafSize
не влияет на разделение значений по умолчанию. Поэтому, если вы задаете 'MaxNumSplits'
, разделение может остановиться из-за значения MinParentSize
, до MaxNumSplits
имеют место расщепления.
Для двухъядерных систем и выше, fitrtree
параллелизирует деревья решений для обучения с помощью Intel® Многопоточные базовые блоки (TBB). Для получения дополнительной информации о Intel TBB смотрите https://software.intel.com/en-us/intel-tbb.
[1] Breiman, L., J. Friedman, R. Olshen, and C. Stone. Деревья классификации и регрессии. Бока Ратон, FL: CRC Press, 1984.
[2] Loh, W.Y. «Regression Trees with Unbiased Variable Selection and Interaction Detection». Statistica Sinica, Vol. 12, 2002, pp. 361-386.
[3] Loh, W.Y. and Y.S. Shih. «Разделение методов выбора для деревьев классификации». Statistica Sinica, Vol. 7, 1997, pp. 815-840.
Указания и ограничения по применению:
Поддерживаемые синтаксисы:
tree = fitrtree(Tbl,Y)
tree = fitrtree(X,Y)
tree = fitrtree(___,Name,Value)
[tree,FitInfo,HyperparameterOptimizationResults] = fitrtree(___,Name,Value)
— fitrtree
возвращает дополнительные выходные аргументы FitInfo
и HyperparameterOptimizationResults
когда вы задаете 'OptimizeHyperparameters'
аргумент пары "имя-значение".
tree
является CompactRegressionTree
объект; поэтому он не включает данные, используемые при обучении регрессионого дерева.
The FitInfo
выходной аргумент является пустым массивом структур, зарезервированным в настоящее время для возможного будущего использования.
The HyperparameterOptimizationResults
выходной аргумент является BayesianOptimization
объект или таблица гиперпараметров со связанными значениями, которые описывают оптимизацию гиперпараметров перекрестной валидации.
'HyperparameterOptimizationResults'
не пуст, когда 'OptimizeHyperparameters'
аргумент пары "имя-значение" не пуст в то время, когда вы создаете модель. Значения в 'HyperparameterOptimizationResults'
зависят от значения, заданного для 'HyperparameterOptimizationOptions'
аргумент пары "имя-значение" при создании модели.
Если вы задаете 'bayesopt'
(по умолчанию), затем HyperparameterOptimizationResults
является объектом класса BayesianOptimization
.
Если вы задаете 'gridsearch'
или 'randomsearch'
, затем HyperparameterOptimizationResults
- таблица используемых гиперпараметров, наблюдаемых значений целевой функции (потери перекрестной валидации) и ранга наблюдений от самого низкого (лучшего) до самого высокого (худшего).
Поддерживаемые аргументы пары "имя-значение":
'CategoricalPredictors'
'HyperparameterOptimizationOptions'
- Для перекрестной валидации tall optimization поддерживает только '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'
Этот дополнительный аргумент пары "имя-значение" характерен для длинных массивов:
'MaxDepth'
- положительное целое число, задающее максимальную глубину выходного дерева. Задайте значение для этого аргумента, чтобы вернуть дерево, которое имеет меньше уровней и требует меньше проходов через длинный массив для вычисления. Обычно алгоритм fitrtree
принимает один проход через данные и дополнительный проход для каждого уровня дерева. Функция по умолчанию не задает максимальную глубину дерева.
Для получения дополнительной информации см. Раздел «Длинные массивы»
Чтобы выполнить параллельную оптимизацию гипероптимизации параметров управления, используйте 'HyperparameterOptimizationOptions', struct('UseParallel',true)
аргумент имя-значение в вызове этой функции.
Для получения дополнительной информации об оптимизации параллельной гипероптимизации параметров управления смотрите Parallel Bayesian Optimization.
Общие сведения о параллельных вычислениях см. в разделе Запуск функций MATLAB с поддержкой автоматических параллелей (Parallel Computing Toolbox).
predict
| prune
| RegressionPartitionedModel
| RegressionTree
| surrogateAssociation
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.