templateEnsemble

Шаблон обучения ансамбля

Описание

пример

t = templateEnsemble(Method,NLearn,Learners) возвращает шаблон обучения ансамбля, который задает использование метода агрегации ансамбля Method, NLearn циклы обучения и слабые учащиеся Learners.

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

пример

t = templateEnsemble(Method,NLearn,Learners,Name,Value) возвращает шаблон ансамбля с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение".

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

Если вы отображаете t в Командном окне, затем все опции появляются пустыми ([]), кроме тех опций, которые вы задаете используя аргументы пары "имя-значение". Во время обучения программа использует значения по умолчанию для пустых опций.

Примеры

свернуть все

Использование templateEnsemble для задания шаблона обучения ансамбля. Необходимо указать метод ансамбля, количество циклов обучения и тип слабых учащихся. В данном примере задайте метод AdaBoostM1, 100 учащихся и слабых учащихся классификационного дерева.

t = templateEnsemble('AdaBoostM1',100,'tree')
t = 
Fit template for classification AdaBoostM1.

                Type: 'classification'
              Method: 'AdaBoostM1'
    LearnerTemplates: 'Tree'
              NLearn: 100
           LearnRate: []

Все свойства объекта шаблона пусты, кроме Method, Type, LearnerTemplates, и NLearn. После обучения программа заполняет пустые свойства соответствующими значениями по умолчанию. Например, программное обеспечение заполняет LearnRate свойство с 1.

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

Создайте шаблон ансамбля для использования в fitcecoc.

Загрузите набор данных аритмии.

load arrhythmia
tabulate(categorical(Y));
  Value    Count   Percent
      1      245     54.20%
      2       44      9.73%
      3       15      3.32%
      4       15      3.32%
      5       13      2.88%
      6       25      5.53%
      7        3      0.66%
      8        2      0.44%
      9        9      1.99%
     10       50     11.06%
     14        4      0.88%
     15        5      1.11%
     16       22      4.87%
rng(1); % For reproducibility

Некоторые классы имеют небольшие относительные частоты в данных.

Создайте шаблон для AdaBoostM1 ансамбля классификационных деревьев и укажите использовать 100 учащихся и усадку 0,1. По умолчанию бустинг увеличивает пни (т.е. один узел, имеющий набор листьев). Поскольку существуют классы с малыми частотами, деревья должны быть достаточно листовыми, чтобы быть чувствительными к классам меньшинств. Задайте минимальное количество наблюдений узла листа равное 3.

tTree = templateTree('MinLeafSize',20);
t = templateEnsemble('AdaBoostM1',100,tTree,'LearnRate',0.1);

Все свойства объектов шаблона пусты, кроме Method и Type, и соответствующие свойства аргумента пары "имя-значение" значений в вызовах функции. Когда ты проходишь t для функции обучения программа заполняет пустые свойства соответствующими значениями по умолчанию.

Задайте t в качестве двоичного ученика для многоклассовой модели ECOC. Обучите, используя проект кодирования по умолчанию один от одного.

Mdl = fitcecoc(X,Y,'Learners',t);
  • Mdl является ClassificationECOC многоклассовая модель.

  • Mdl.BinaryLearners - массив ячеек 78 на 1 из CompactClassificationEnsemble модели.

  • Mdl.BinaryLearners{j}.Trained - массив ячеек 100 на 1 CompactClassificationTree модели, для j = 1,...,78.

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

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

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

Отображение ошибки неправильной классификации в выборке (повторная замена).

L = resubLoss(Mdl,'LossFun','classiferror')
L = 0.0819

Обучите классификатор ECOC один от всех с помощью GentleBoost ансамбль деревьев решений с суррогатными сплитами. Чтобы ускорить обучение, числовые предикторы интервал и используйте параллельные вычисления. Раскладывание действительно только при fitcecoc использует ученика дерева. После обучения оцените ошибку классификации, используя 10-кратную перекрестную валидацию. Обратите внимание, что для параллельных вычислений требуется Parallel Computing Toolbox™.

Загрузка выборочных данных

Загрузите и осмотрите arrhythmia набор данных.

load arrhythmia
[n,p] = size(X)
n = 452
p = 279
isLabels = unique(Y);
nLabels = numel(isLabels)
nLabels = 13
tabulate(categorical(Y))
  Value    Count   Percent
      1      245     54.20%
      2       44      9.73%
      3       15      3.32%
      4       15      3.32%
      5       13      2.88%
      6       25      5.53%
      7        3      0.66%
      8        2      0.44%
      9        9      1.99%
     10       50     11.06%
     14        4      0.88%
     15        5      1.11%
     16       22      4.87%

Набор данных содержит 279 предикторы и размер выборки 452 относительно небольшая. Из 16 различных меток только 13 представлены в ответе (Y). Каждая метка описывает различные степени аритмии, и 54,20% наблюдений находятся в классе 1.

Обучите классификатор один от всех ECOC

Создайте шаблон ансамбля. Необходимо задать как минимум три аргумента: метод, количество учащихся и тип обучающегося. В данном примере задайте 'GentleBoost' для метода, 100 для количества учащихся и шаблона дерева решений, который использует суррогатные разделения, потому что отсутствуют наблюдения.

tTree = templateTree('surrogate','on');
tEnsemble = templateEnsemble('GentleBoost',100,tTree);

tEnsemble является объектом шаблона. Большинство его свойств пусты, но программа заполняет их значениями по умолчанию во время обучения.

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

  • Раскладывание ('NumBins',50) - Когда у вас есть большой набор обучающих данных, вы можете ускорить обучение (потенциальное снижение точности), используя 'NumBins' аргумент пары "имя-значение". Этот аргумент действителен только при fitcecoc использует ученика дерева. Если вы задаете 'NumBins' Значение программное обеспечение помещает каждый числовой предиктор в заданное количество уравнительных интервалов, а затем выращивает деревья индексов интервала вместо исходных данных. Можно попробовать 'NumBins',50 сначала, а затем смените 'NumBins' значение в зависимости от точности и скорости обучения.

  • Параллельные вычисления ('Options',statset('UseParallel',true)) - С лицензией Parallel Computing Toolbox можно ускорить расчеты с помощью параллельных вычислений, которые отправляют каждого двоичного ученика работнику пула. Количество работников зависит от вашего системного строения. Когда вы используете деревья принятия решений для двоичных учащихся, fitcecoc параллелизирует обучение с использованием Intel ® Threading Building Blocks (TBB) для двухъядерных систем и выше. Поэтому установка 'UseParallel' опция не полезна на одном компьютере. Используйте эту опцию в кластере.

Кроме того, задайте, что предыдущие вероятности 1/K, где K = 13 - количество различных классов.

options = statset('UseParallel',true);
Mdl = fitcecoc(X,Y,'Coding','onevsall','Learners',tEnsemble,...
                'Prior','uniform','NumBins',50,'Options',options);
Starting parallel pool (parpool) using the 'local' profile ...
Connected to the parallel pool (number of workers: 6).

Mdl является ClassificationECOC модель.

Перекрестная валидация

Перекрестная проверка классификатора ECOC с помощью 10-кратной перекрестной проверки.

CVMdl = crossval(Mdl,'Options',options);
Warning: One or more folds do not contain points from all the groups.

CVMdl является ClassificationPartitionedECOC модель. Предупреждение указывает, что некоторые классы не представлены, в то время как программное обеспечение обучает по крайней мере одну складку. Поэтому эти складки не могут предсказать метки для отсутствующих классов. Результаты складки можно просмотреть с помощью индексации камер и записи через точку. Для примера получите доступ к результатам первой складки путем ввода CVMdl.Trained{1}.

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

oofLabel = kfoldPredict(CVMdl,'Options',options);
ConfMat = confusionchart(Y,oofLabel,'RowSummary','total-normalized');
ConfMat.InnerPosition = [0.10 0.12 0.85 0.85];

Воспроизведение связанных данных

Воспроизведите привязанные данные предиктора при помощи BinEdges свойство обученной модели и discretize функция.

X = Mdl.X; % Predictor data
Xbinned = zeros(size(X));
edges = Mdl.BinEdges;
% Find indices of binned predictors.
idxNumeric = find(~cellfun(@isempty,edges));
if iscolumn(idxNumeric)
    idxNumeric = idxNumeric';
end
for j = idxNumeric 
    x = X(:,j);
    % Convert x to array if x is a table.
    if istable(x)
        x = table2array(x);
    end
    % Group x into bins by using the discretize function.
    xbinned = discretize(x,[-inf; edges{j}; inf]);
    Xbinned(:,j) = xbinned;
end

Xbinned содержит индексы интервала в диапазоне от 1 до количества интервалов для числовых предикторов. Xbinned значения 0 для категориальных предикторов. Если X содержит NaNs, затем соответствующее Xbinned значения NaNс.

Входные параметры

свернуть все

Метод агрегации ансамбля, заданный как одно из имен методов в этом списке.

  • Для классификации с двумя классами:

    • 'AdaBoostM1'

    • 'LogitBoost'

    • 'GentleBoost'

    • 'RobustBoost' (Требует Toolbox™ Оптимизации)

    • 'LPBoost' (требуется Optimization Toolbox)

    • 'TotalBoost' (требуется Optimization Toolbox)

    • 'RUSBoost'

    • 'Subspace'

    • 'Bag'

  • Для классификации с тремя или более классами:

    • 'AdaBoostM2'

    • 'LPBoost' (требуется Optimization Toolbox)

    • 'TotalBoost' (требуется Optimization Toolbox)

    • 'RUSBoost'

    • 'Subspace'

    • 'Bag'

  • Для регрессии:

    • 'LSBoost'

    • 'Bag'

Если вы задаете 'Method','Bag', затем укажите тип задачи с помощью Type аргумент пары "имя-значение", поскольку можно задать 'Bag' для задач классификации и регрессии.

Для получения дополнительной информации об алгоритмах агрегации ансамбля и примерах, смотрите Алгоритмы ансамбля и Выберите применимый метод агрегации ансамбля.

Количество циклов обучения ансамбля, заданное как положительное целое или 'AllPredictorCombinations'.

  • Если вы задаете положительное целое число, то на каждом цикле обучения программное обеспечение обучает одного слабого ученика для каждого объекта шаблона в Learners. Следовательно, программное обеспечение обучает NLearn*numel(Learners) учащиеся.

  • Если вы задаете 'AllPredictorCombinations', затем установите Method на 'Subspace' и укажите одного ученика только в Learners. С помощью этих настроек программное обеспечение обучает учащихся всем возможным комбинациям взятых предикторов NPredToSample за раз. Следовательно, программное обеспечение обучает nchoosek(size(X,2),NPredToSample) учащиеся.

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

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

Слабые учащиеся для использования в ансамбле, заданные как имя слабого учащегося, объект шаблона слабого учащегося или массив ячеек объектов шаблона слабого учащегося.

Слабый учительИмя слабого учащегосяФункция создания объектов шаблонаMethod Настройки
Дискриминантный анализ'Discriminant'templateDiscriminantРекомендуемый для 'Subspace'
k ближайшие соседи'KNN'templateKNNДля 'Subspace' только
Дерево решений'Tree'templateTreeВсе методы, кроме 'Subspace'

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

Пример: Для ансамбля, состоящего из двух типов классификационных деревьев, поставляйте {t1 t2}, где t1 и t2 являются шаблонами дерева классификации.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'LearningRate',0.05,'NPrint',5 задает использование 0.05 как скорость обучения и для отображения сообщения в командной строке каждый раз, когда оно обучается 5 учащиеся.
Общие опции ансамбля

свернуть все

Частота распечатки, заданная как разделенная разделенными запятой парами, состоящая из 'NPrint' и положительное целое или 'off'.

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

  • Не задайте какую-либо опцию перекрестной проверки функции аппроксимации (для примера, CrossVal), затем программное обеспечение отображает сообщение в командную строку каждый раз, когда оно завершает обучение m слабых учащихся.

  • Опция перекрестной проверки, затем программное обеспечение отображает сообщение в командной строке каждый раз, когда оно заканчивает обучение m складывается.

Если вы задаете 'off'затем программное обеспечение не отображает сообщение, когда оно завершает обучение слабых учащихся.

Совет

При обучении ансамбля из многих слабых учащихся на большом наборе данных задайте положительное целое число для NPrint.

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

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

Управляемый тип обучения, заданный как разделенная разделенными запятой парами, состоящая из 'Type' и 'classification' или 'regression'.

  • Если Method является 'bag', тогда контролируемый тип обучения неоднозначен. Поэтому задайте Type при упаковке в мешки.

  • В противном случае значение Method определяет контролируемый тип обучения.

Пример: 'Type','classification'

Опции отбора проб для методов бустерования и упаковки в мешки

свернуть все

Доля набора обучающих данных для повторной выборки для каждого слабого учащегося, заданная как разделенная разделенными запятой парами, состоящая из 'FResample' и положительная скалярная величина в (0,1].

Как использовать 'FResample', задайте 'bag' для Method или установите Resample на 'on'.

Пример: 'FResample',0.75

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

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

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

  • Для 'off'программное обеспечение производит выборку обучающих наблюдений без замены. Если вы задаете Resample на 'on'затем программное обеспечение дискретизирует обучающие наблюдения, принимая равномерные веса. Если вы также задаете метод бустинга, то программное обеспечение повышает путем перевешивания наблюдений.

Если вы не задаете Method на 'bag' или установите Resample на 'on', Replace не имеет эффекта.

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

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

  • Если Method является методом бустинга, тогда:

    • 'Resample','on' задает для выборки обучающие наблюдения, использующие обновленные веса в качестве вероятностей полиномиальной выборки.

    • 'Resample','off'(по умолчанию) задает изменение веса наблюдений на каждой итерации обучения.

  • Если Method является 'bag', затем 'Resample' должен быть 'on'. Программа пересчитывает часть обучающих наблюдений (см FResample) с заменой или без (см. Replace).

Если вы задаете, чтобы выполнить повторную выборку с помощью Resample, тогда это хорошая практика, чтобы переопределить на целом наборе данных. То есть используйте настройку по умолчанию 1 для FResample.

AdaBoostM1, AdaBoostM2, LogitBoost, GentleBoost и опции метода LSBoost

свернуть все

Скорость обучения для усадки, заданный как разделенная разделенными запятой парами, состоящая из 'LearnRate' и числовой скаляр в интервале (0,1].

Чтобы обучить ансамбль с помощью усадки, установите LearnRate к значению меньше 1, для примера, 0.1 является популярным выбором. Обучение ансамбля с помощью усадки требует большего количества итераций обучения, но часто достигает лучшей точности.

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

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

Опции метода RUSBoost

свернуть все

Скорость обучения для усадки, заданный как разделенная разделенными запятой парами, состоящая из 'LearnRate' и числовой скаляр в интервале (0,1].

Чтобы обучить ансамбль с помощью усадки, установите LearnRate к значению меньше 1, для примера, 0.1 является популярным выбором. Обучение ансамбля с помощью усадки требует большего количества итераций обучения, но часто достигает лучшей точности.

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

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

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

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

  • Если вы задаете положительный числовой скаляр s, затем программное обеспечение производит выборку s* m наблюдения от каждого класса, то есть он использует одну и ту же пропорцию дискретизации для каждого класса. Для получения дополнительной информации см. «Алгоритмы».

  • Если вы задаете числовой вектор [s1, s2..., sK], затем программное обеспечение производит выборку si* m наблюдения из i классов, i = 1..., K. Элементы RatioToSmallest соответствуют порядку имен классов, заданных с помощью ClassNames Аргумент пары "имя-значение" функции аппроксимации (см. Советы).

Значение по умолчанию это таковые (K,1), который задает выборку m наблюдения от каждого класса.

Пример: 'RatioToSmallest',[2,1]

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

Опции методов LPBoost и TotalBoost

свернуть все

Точность запаса для управления скоростью сходимости, заданная как разделенная разделенными запятой парами, состоящая из 'MarginPrecision' и числовой скаляр в интервале [0,1]. MarginPrecision влияет на количество усиливающих итераций, необходимых для сходимости.

Совет

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

Пример: 'MarginPrecision',0.5

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

Опции метода RobustBoost

свернуть все

Целевая ошибка классификации, заданная как разделенная разделенными запятой парами, состоящая из 'RobustErrorGoal' и неотрицательный числовой скаляр. Верхняя граница от возможных значений зависит от значений RobustMarginSigma и RobustMaxMargin. Однако верхняя граница не может превысить 1.

Совет

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

Пример: 'RobustErrorGoal',0.05

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

Распределение классификационной маржи по обучающим данным, заданное как разделенная разделенными запятой парами, состоящая из 'RobustMarginSigma' и положительный числовой скаляр. Перед указанием RobustMarginSigma, проконсультируйтесь с литературой по RobustBoostдля примера [19].

Пример: 'RobustMarginSigma',0.5

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

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

Пример: 'RobustMaxMargin',1

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

Опции метода случайного подпространства

свернуть все

Количество предикторов для выборки для каждого случайного обучающего подпространства, заданное как разделенная разделенными запятой парами, состоящая из 'NPredToSample' и положительное целое число в интервале 1,..., p, где p - количество переменных предиктора (size(X,2) или size(Tbl,2)).

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

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

свернуть все

Шаблон классификации для обучения ансамбля, возвращенный как объект шаблона. Можно пройти t для, для примера, fitcecoc для определения способа создания классификатора обучения ансамбля для модели ECOC.

Если вы отображаете t в Командном окне, затем все, не заданные опции появляются пустыми ([]). Однако во время обучения программа заменяет пустые опции соответствующими значениями по умолчанию.

Совет

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

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

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

  • В задачах классификации (то есть Type является 'classification'):

    • Если метод агрегации ансамбля (Method) 'bag' и:

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

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

      Для небольших размеров выборки эти комбинации могут привести к очень низкой относительной частоте наблюдений вне мешка от класса, который имеет большую штраф или предшествующую вероятность. Следовательно, предполагаемая ошибка вне сумки является сильно переменной, и ее может быть трудно интерпретировать. Чтобы избежать больших предполагаемых отклонений ошибок вне сумки, особенно для небольших размеров выборки, установите более сбалансированную матрицу затрат на неправильную классификацию, используя Cost Аргумент пары "имя-значение" функции аппроксимации или менее искаженный предыдущий вектор вероятностей с использованием Prior Аргумент пары "имя-значение" функции аппроксимации.

    • Поскольку порядок некоторых входных и выходных аргументов соответствует отдельным классам в обучающих данных, рекомендуется задать порядок классов, используя ClassNames Аргумент пары "имя-значение" функции аппроксимации.

      • Чтобы быстро определить порядок классов, удалите все наблюдения из обучающих данных, которые не классифицированы (то есть имеют отсутствующую метку), получите и отобразите массив всех различных классов, а затем укажите массив для ClassNames. Для примера предположим, что переменная отклика (Y) - массив ячеек с метками. Этот код задает порядок классов в переменной classNames.

        Ycat = categorical(Y);
        classNames = categories(Ycat)
        categorical присваивает <undefined> к неклассифицированным наблюдениям и categories исключает <undefined> с его выхода. Поэтому, если вы используете этот код для массивов ячеек меток или аналогичный код для категориальных массивов, то вы не должны удалять наблюдения с отсутствующими метками, чтобы получить список различных классов.

      • Чтобы указать, что порядок должен быть от самой низкой представленной метки до самой представленной, затем быстро определите порядок классов (как в предыдущей пуле), но расположите классы в списке по частоте перед передачей списка в ClassNames. Следующий из предыдущего примера, этот код задает порядок классов от lowest- до наиболее представленных в classNamesLH.

        Ycat = categorical(Y);
        classNames = categories(Ycat);
        freq = countcats(Ycat);
        [~,idx] = sort(freq);
        classNamesLH = classNames(idx);

Алгоритмы

  • Для получения дополнительной информации об алгоритмах агрегации ансамблей смотрите Ensemble Algorithms.

  • Если вы задаете Method быть алгоритмом и Learners ускорения чтобы быть деревьями решений, программное обеспечение растет stumps по умолчанию. Пень принятия решения является одним корневым узлом, соединенным с двумя терминальными, листовыми узлами. Можно настроить глубину дерева, задав MaxNumSplits, MinLeafSize, и MinParentSize Аргументы пары "имя-значение" с использованием templateTree.

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

  • Для метода агрегации ансамбля RUSBoost (Method), аргумент пары "имя-значение" RatioToSmallest задает пропорцию дискретизации для каждого класса относительно самого низкопредставленного класса. Например, предположим, что в обучающих данных 2 класса, A и B. A имеют 100 наблюдений и B имеют 10 наблюдений. Кроме того, предположим, что самый низкий представленный класс имеет m наблюдения в обучающих данных.

    • Если вы задаете 'RatioToSmallest',2, затем s* m = 2*10 = 20. Следовательно, программное обеспечение обучает каждого учащегося, используя 20 наблюдений из класса A и 20 наблюдений из класса B. Если вы задаете 'RatioToSmallest',[2 2], тогда вы получите тот же результат.

    • Если вы задаете 'RatioToSmallest',[2,1], затем s1* m = 2*10 = 20 и s2* m = 1*10 = 10. Следовательно, программное обеспечение обучает каждого учащегося, используя 20 наблюдений из класса A и 10 наблюдений из класса B.

  • Для ансамблей деревьев решений, и для двухъядерных систем и выше, fitcensemble и fitrensemble параллелизируйте обучение с помощью Intel® Многопоточные базовые блоки (TBB). Для получения дополнительной информации о Intel TBB смотрите https://software.intel.com/en-us/intel-tbb.

Введенный в R2014b