templateEnsemble

Ансамбль, изучающий шаблон

Синтаксис

t = templateEnsemble(Method,NLearn,Learners)
t = templateEnsemble(Method,NLearn,Learners,Name,Value)

Описание

пример

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

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')

Отобразите в выборке (перезамена) misclassification ошибка.

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

Обучите one-all 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.

Обучите One-All ECOC классификатор

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

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

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

Обучите one-all 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 содержит NaN s, то соответствующими значениями Xbinned является NaN s.

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

свернуть все

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

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

    • 'AdaBoostM1'

    • 'LogitBoost'

    • 'GentleBoost'

    • 'RobustBoost' (требует Optimization 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' для проблем регрессии и классификации.

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

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

свернуть все

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

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

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

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

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

свернуть все

Темп обучения для уменьшения, заданного как пара, разделенная запятой, состоящая из числового скаляра в интервале (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 подходящей функции (см. Советы).

Значением по умолчанию является ones(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

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

свернуть все

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

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

Советы

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

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

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

  • В проблемах классификации (то есть, Type является 'classification'):

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

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

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

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

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

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

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

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

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

Алгоритмы

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

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

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

  • Для метода агрегации ансамбля 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® Threading Building Blocks (TBB). Для получения дополнительной информации на Intel TBB, см. https://software.intel.com/en-us/intel-tbb.

Введенный в R2014b