TreeBagger

Класс: TreeBagger

Создайте мешок деревьев решений

Отдельные деревья решений имеют тенденцию сверхсоответствовать. Агрегированный начальной загрузкой (bagged) деревья решений комбинируют результаты многих деревьев решений, который уменьшает эффекты сверхподбора кривой и улучшает обобщение. TreeBagger выращивает деревья решений в ансамбле, использующем выборки начальной загрузки данных. Кроме того, TreeBagger выбирает случайное подмножество предикторов, чтобы использовать в каждом разделении решения в качестве в случайном лесном алгоритме [1].

По умолчанию, деревья классификации мешков TreeBagger. К деревьям регрессии сумки вместо этого, задайте 'Method','regression'.

Для проблем регрессии TreeBagger поддерживает среднее значение и регрессию квантиля (то есть, лес регрессии квантиля [5]).

Синтаксис

Mdl = TreeBagger(NumTrees,Tbl,ResponseVarName)
Mdl = TreeBagger(NumTrees,Tbl,formula)
Mdl = TreeBagger(NumTrees,Tbl,Y)
B = TreeBagger(NumTrees,X,Y)
B = TreeBagger(NumTrees,X,Y,Name,Value)

Описание

Mdl = TreeBagger(NumTrees,Tbl,ResponseVarName) возвращается ансамбль NumTrees висел как мешок, деревья классификации обучили использование выборочных данных в таблице Tbl. ResponseVarName является именем переменной отклика в Tbl.

Mdl = TreeBagger(NumTrees,Tbl,formula) возвращает ансамбль сложенных в мешок деревьев классификации, обученных с помощью выборочных данных в таблице Tbl. formula является объяснительной моделью ответа, и подмножество переменных прогноза в Tbl раньше соответствовало Mdl. Задайте Formula с помощью обозначения Уилкинсона. Для получения дополнительной информации смотрите Обозначение Уилкинсона.

Mdl = TreeBagger(NumTrees,Tbl,Y) возвращает ансамбль деревьев классификации с помощью переменных прогноза в таблице Tbl и меток класса в векторном Y.

Y является массивом данных об ответе. Элементы Y соответствуют строкам Tbl. Для классификации Y является набором истинных меток класса. Метки могут быть любой группирующей переменной, то есть, числовым или логическим вектором, символьной матрицей, массивом строк, массивом ячеек из символьных векторов или категориальным вектором. TreeBagger преобразовывает метки в массив ячеек из символьных векторов. Для регрессии Y является числовым вектором. Чтобы вырастить деревья регрессии, необходимо задать пару "имя-значение" 'Method','regression'.

B = TreeBagger(NumTrees,X,Y) создает ансамбль B деревьев решений NumTrees для предсказания ответа Y как функция предикторов в числовой матрице данных тренировки, X. Каждая строка в X представляет наблюдение, и каждый столбец представляет предиктор или функцию.

B = TreeBagger(NumTrees,X,Y,Name,Value) задает дополнительные пары "имя-значение" параметра:

'InBagFraction'Часть входных данных к выборке с заменой от входных данных для роста каждого нового дерева. Значение по умолчанию равняется 1.
'Cost'

Квадратная матрица C, где C(i,j) является стоимостью классификации точки в класс j, если его истинным классом является i (т.е. строки соответствуют истинному классу и столбцам, соответствует предсказанному классу). Порядок строк и столбцов Cost соответствует порядку классов в свойстве ClassNames обученной модели TreeBagger B.

Также cost может быть структурой S, имеющий два поля:

  • S.ClassNames, содержащий названия группы как категориальная переменная, символьный массив, массив строк или массив ячеек из символьных векторов

  • S.ClassificationCosts, содержащий матрицу стоимости C

Значением по умолчанию является   C(i,j) = 1 если   i ~= j и   C(i,j) = 0 если   i = j.

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

'SampleWithReplacement''on' к выборке с заменой или 'off' к выборке без замены. Если вы выбираете без замены, необходимо установить 'InBagFraction' на значение меньше чем один. Значением по умолчанию является 'on'.
'OOBPrediction''on', чтобы сохранить информацию о том, что наблюдения вне сумки для каждого дерева. Эта информация может использоваться oobPrediction, чтобы вычислить предсказанные вероятности класса для каждого дерева в ансамбле. Значением по умолчанию является 'off'.
'OOBPredictorImportance''on', чтобы сохранить оценки из сумки важности функции в ансамбле. Значением по умолчанию является 'off'. Определение 'on' также устанавливает значение 'OOBPrediction' к 'on'. Если анализ важности предиктора является вашей целью, то также задают 'PredictorSelection','curvature' или 'PredictorSelection','interaction-curvature'. Для получения дополнительной информации смотрите fitctree или fitrtree.
'Method'Или 'classification' или 'regression'. Регрессия требует числового Y.
'NumPredictorsToSample'Количество переменных, чтобы выбрать наугад для каждого разделения решения. Значением по умолчанию является квадратный корень из количества переменных для классификации и одной трети количества переменных для регрессии. Допустимыми значениями является 'all' или положительное целое число. Установка этого аргумента к любому допустимому значению, но 'all' вызывает Breiman's случайный лесной алгоритм [1].
'NumPrint'Количество учебных циклов (выращенные деревья), после которого TreeBagger отображает диагностическое сообщение, показывающее учебный прогресс. Значением по умолчанию не являются никакие диагностические сообщения.
'MinLeafSize'Минимальное количество наблюдений на древовидный лист. Значение по умолчанию 1 для классификации и 5 для регрессии.
'Options'

Структура, которая задает опции, которые управляют вычислением при росте ансамбля деревьев решений. Одна опция запрашивает, чтобы вычисление деревьев решений на нескольких загрузилось, реплицирует, использует несколько процессоров, если Parallel Computing Toolbox™ доступен. Две опции указывают, что потоки случайных чисел, чтобы использовать в выборе начальной загрузки реплицируют. Можно создать этот аргумент с вызовом statset. Можно получить значения отдельных полей с вызовом statget. Применимые параметры statset:

  • 'UseParallel' Если true и если parpool Parallel Computing Toolbox открыт, вычислите деревья решений, продвинутые, отдельная начальная загрузка реплицирует параллельно. Если Parallel Computing Toolbox не установлен, или parpool не открыт, вычисление происходит в последовательном режиме. Значением по умолчанию является false или последовательное вычисление.

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

  • 'UseSubstreams' — Если выбор true каждая начальная загрузка реплицирует использование отдельного Подпотока генератора случайных чисел (иначе Поток). Эта опция доступна только с типами RandStream, которые поддерживают Подпотоки: 'mlfg6331_64' или 'mrg32k3a'. Значением по умолчанию является false, не используйте различный Подпоток, чтобы вычислить каждую начальную загрузку, реплицируют.

  • Объектный массив Streams — A RandStream или массив ячеек таких объектов. Если вы не задаете Streams, TreeBagger использует поток по умолчанию или потоки. Если вы принимаете решение задать Streams, используйте отдельный объект кроме случая

    • UseParallel является true

    • UseSubstreams является false

    В этом случае используйте массив ячеек тот же размер в качестве Параллельного пула.

'Prior'

Априорные вероятности для каждого класса. Задайте как один из:

  • Вектор символов или скаляр строки:

    • 'Empirical' определяет вероятности класса от частот класса в Y. Если вы передаете веса наблюдения, они используются, чтобы вычислить вероятности класса. Это значение по умолчанию.

    • 'Uniform' устанавливает все равные вероятности класса.

  • Вектор (одно скалярное значение для каждого класса). Порядок элементов Prior соответствует порядку классов в свойстве ClassNames обученной модели TreeBagger B.

  • Структура S с двумя полями:

    • S.ClassNames, содержащий имена классов как категориальная переменная, символьный массив, массив строк или массив ячеек из символьных векторов

    • S.ClassProbs, содержащий вектор соответствующих вероятностей

Если вы устанавливаете значения и для Weights и для Prior, веса повторно нормированы, чтобы составить в целом значение априорной вероятности в соответствующем классе.

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

'PredictorNames'

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

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

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

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

'CategoricalPredictors'

Категориальный список предикторов, заданный как пара, разделенная запятой, состоящая из 'CategoricalPredictors' и одно из следующих.

  • Числовой вектор с индексами от 1 до p, где p является количеством столбцов X.

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

  • Массив строк или массив ячеек из символьных векторов, где каждый элемент в массиве является именем переменной прогноза. Имена должны совпадать с записями в значениях PredictorNames.

  • Символьная матрица, где каждая строка матрицы является именем переменной прогноза. Имена должны совпадать с записями в значениях PredictorNames. Заполните имена дополнительными пробелами, таким образом, каждая строка символьной матрицы имеет ту же длину.

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

'ChunkSize'

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

Примечание

Эта опция только применяется при использовании TreeBagger на длинные массивы. Смотрите Расширенные Возможности для получения дополнительной информации.

В дополнение к дополнительным аргументам выше, TreeBagger принимает эти дополнительные аргументы fitctree и fitrtree.

Примеры

развернуть все

Загрузите ирисовый набор данных Фишера.

load fisheriris

Обучите ансамбль сложенных в мешок деревьев классификации с помощью целого набора данных. Задайте 50 слабые ученики. Сохраните, какие наблюдения вне сумки для каждого дерева.

rng(1); % For reproducibility
Mdl = TreeBagger(50,meas,species,'OOBPrediction','On',...
    'Method','classification')
Mdl = 
  TreeBagger
Ensemble with 50 bagged decision trees:
                    Training X:              [150x4]
                    Training Y:              [150x1]
                        Method:       classification
                 NumPredictors:                    4
         NumPredictorsToSample:                    2
                   MinLeafSize:                    1
                 InBagFraction:                    1
         SampleWithReplacement:                    1
          ComputeOOBPrediction:                    1
 ComputeOOBPredictorImportance:                    0
                     Proximity:                   []
                    ClassNames:        'setosa'    'versicolor'     'virginica'

  Properties, Methods

Mdl является ансамблем TreeBagger.

Mdl.Trees хранит 50 на 1 вектор ячейки обученных деревьев классификации (объекты модели CompactClassificationTree), которые составляют ансамбль.

Постройте график первого обученного дерева классификации.

view(Mdl.Trees{1},'Mode','graph')

По умолчанию TreeBagger выращивает глубокие деревья.

Mdl.OOBIndices хранит индексы из сумки как матрицу логических значений.

Постройте ошибку из сумки по количеству выращенных деревьев классификации.

figure;
oobErrorBaggedEnsemble = oobError(Mdl);
plot(oobErrorBaggedEnsemble)
xlabel 'Number of grown trees';
ylabel 'Out-of-bag classification error';

Ошибка из сумки уменьшается с количеством выращенных деревьев.

Чтобы маркировать наблюдения из сумки, передайте Mdl oobPredict.

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

load carsmall

Обучите ансамбль сложенных в мешок деревьев регрессии с помощью целого набора данных. Задайте 100 слабых учеников.

rng(1); % For reproducibility
Mdl = TreeBagger(100,Displacement,MPG,'Method','regression');

Mdl является ансамблем TreeBagger.

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

Для десяти равномерно распределенных объемов двигателя между минимальным и максимальным смещением в выборке предскажите условные средние ответы и условные квартили.

predX = linspace(min(Displacement),max(Displacement),10)';
mpgMean = predict(Mdl,predX);
mpgQuartiles = quantilePredict(Mdl,predX,'Quantile',[0.25,0.5,0.75]);

Постройте наблюдения, и оценил средние ответы и квартили в той же фигуре.

figure;
plot(Displacement,MPG,'o');
hold on
plot(predX,mpgMean);
plot(predX,mpgQuartiles);
ylabel('Fuel economy');
xlabel('Engine displacement');
legend('Data','Mean Response','First quartile','Median','Third quartile');

Загрузите набор данных 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);
rng('default'); % For reproducibility

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

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

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

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

Mdl = TreeBagger(200,X,'MPG','Method','regression','Surrogate','on',...
    'PredictorSelection','curvature','OOBPredictorImportance','on');

TreeBagger хранит оценки важности предиктора в свойстве OOBPermutedPredictorDeltaError. Сравните оценки с помощью гистограммы.

imp = Mdl.OOBPermutedPredictorDeltaError;

figure;
bar(imp);
title('Curvature Test');
ylabel('Predictor importance estimates');
xlabel('Predictors');
h = gca;
h.XTickLabel = Mdl.PredictorNames;
h.XTickLabelRotation = 45;
h.TickLabelInterpreter = 'none';

В этом случае Model_Year является самым важным предиктором, сопровождаемым Weight.

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

MdlCART = TreeBagger(200,X,'MPG','Method','regression','Surrogate','on',...
    'OOBPredictorImportance','on');

impCART = MdlCART.OOBPermutedPredictorDeltaError;

figure;
bar(impCART);
title('Standard CART');
ylabel('Predictor importance estimates');
xlabel('Predictors');
h = gca;
h.XTickLabel = Mdl.PredictorNames;
h.XTickLabelRotation = 45;
h.TickLabelInterpreter = 'none';

В этом случае Weight, непрерывный предиктор, является самым важным. Следующее два большей частью предиктора важности является Model_Year, сопровождаемый тесно Horsepower, который является непрерывным предиктором.

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

Создайте datastore, который ссылается на местоположение папки, содержащей набор данных. Выберите подмножество переменных, чтобы работать с и обработать значения 'NA' как недостающие данные так, чтобы datastore заменил их на значения NaN. Составьте длинную таблицу, которая содержит данные в datastore.

ds = datastore('airlinesmall.csv');
ds.SelectedVariableNames = {'Month','DayofMonth','DayOfWeek',...
                            'DepTime','ArrDelay','Distance','DepDelay'};
ds.TreatAsMissing = 'NA';
tt  = tall(ds) % Tall table
Starting parallel pool (parpool) using the 'local' profile ...
Connected to the parallel pool (number of workers: 6).

tt =

  M×7 tall table

    Month    DayofMonth    DayOfWeek    DepTime    ArrDelay    Distance    DepDelay
    _____    __________    _________    _______    ________    ________    ________

     10          21            3          642          8         308          12   
     10          26            1         1021          8         296           1   
     10          23            5         2055         21         480          20   
     10          23            5         1332         13         296          12   
     10          22            4          629          4         373          -1   
     10          28            3         1446         59         308          63   
     10           8            4          928          3         447          -2   
     10          10            6          859         11         954          -1   
      :          :             :           :          :           :           :
      :          :             :           :          :           :           :

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

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

Y = tt.DepDelay > 10 % Class labels
Y =

  M×1 tall logical array

   1
   0
   1
   1
   0
   1
   0
   0
   :
   :

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

X = tt{:,1:end-1} % Predictor data
X =

  M×6 tall double matrix

          10          21           3         642           8         308
          10          26           1        1021           8         296
          10          23           5        2055          21         480
          10          23           5        1332          13         296
          10          22           4         629           4         373
          10          28           3        1446          59         308
          10           8           4         928           3         447
          10          10           6         859          11         954
          :           :            :          :           :           :
          :           :            :          :           :           :

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

W = Y+1; % Weights

Удалите строки в X, Y и W, которые содержат недостающие данные.

R = rmmissing([X Y W]); % Data with missing entries removed
X = R(:,1:end-2); 
Y = R(:,end-1); 
W = R(:,end);

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

rng('default') 
tallrng('default')
tMdl = TreeBagger(20,X,Y,'Weights',W,'Prior','Uniform')
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 8.4 sec
Evaluation completed in 8.6 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 4 sec
Evaluation completed in 11 sec
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 7.7 sec
Evaluation completed in 7.8 sec
tMdl = 
  CompactTreeBagger
Ensemble with 20 bagged decision trees:
              Method:       classification
       NumPredictors:                    6
          ClassNames: '0' '1'

  Properties, Methods

tMdl является ансамблем CompactTreeBagger с 20 сложенными в мешок деревьями решений.

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

terr = error(tMdl,X,Y,'Weights',W)
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 5.9 sec
Evaluation completed in 6 sec
terr = 20×1

    0.1422
    0.1225
    0.1113
    0.1082
    0.1036
    0.1022
    0.1001
    0.1000
    0.0982
    0.0982
      ⋮

Найдите среднее значение misclassification вероятностью для ансамбля деревьев решений.

avg_terr = mean(terr)
avg_terr = 0.1025

Советы

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

  • Свойство Trees B хранит массив ячеек B.NumTrees объекты модели CompactRegressionTree или CompactClassificationTree. Для текстового или графического дисплея древовидного t в массиве ячеек войти

    view(B.Trees{t})

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

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

    • Если анализ важности предиктора является вашей целью. TreeBagger хранит оценки важности предиктора в свойстве OOBPermutedPredictorDeltaError Mdl.

    Для получения дополнительной информации о выборе предиктора смотрите PredictorSelection для деревьев классификации или PredictorSelection для деревьев регрессии.

Алгоритмы

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

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

Альтернативная функциональность

Statistics and Machine Learning Toolbox™ предлагает три объекта для укладывания в мешки и случайного леса:

Для получения дополнительной информации о различиях между TreeBagger и уволенными ансамблями (ClassificationBaggedEnsemble и RegressionBaggedEnsemble), смотрите Сравнение TreeBagger и Уволенных Ансамблей.

Ссылки

[1] Бреимен, L. Случайные Леса. Машинное обучение 45, стр 5–32, 2001.

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

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

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

[5] Meinshausen, N. “Леса Регрессии квантиля”. Журнал Исследования Машинного обучения, Издания 7, 2006, стр 983–999.

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

Представленный в R2009a