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Ввод, 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')

Отобразите в выборке (перезамена) 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 содержит NaNs, затем соответствующий Xbinned значениями является NaNs.

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

свернуть все

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

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

    • '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 имя аргумента и 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','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, затем выборки программного обеспечения sM наблюдения от каждого класса, то есть, это использует ту же пропорцию выборки в каждом классе. Для получения дополнительной информации см. Алгоритмы.

  • Если вы задаете числовой вектор [s1S2 ..., sK], затем выборки программного обеспечения siM наблюдения от класса ii = 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

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

свернуть все

Шаблон 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, затем sM= 2*10 = 20 . Следовательно, программное обеспечение обучает каждого ученика, использующего 20 наблюдений от класса A и 20 наблюдений от класса B. Если вы устанавливаете 'RatioToSmallest',[2 2], затем вы получите тот же результат.

    • Если вы устанавливаете 'RatioToSmallest',[2,1], затем s1M= 2*10 = 20 и s2M= 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