exponenta event banner

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 ансамбль деревьев решений с суррогатными расколами. Чтобы ускорить обучение, используйте числовые предикторы и параллельные вычисления. Binning допустим только тогда, когда fitcecoc использует учащегося дерева. После обучения оцените ошибку классификации, используя 10-кратную перекрестную проверку. Обратите внимание, что параллельные вычисления требуют 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 «один против всех» с использованием ансамблей деревьев решений в качестве двоичных учеников. Для ускорения обучения используйте binning и параллельные вычисления.

  • Биннинг ('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' (требуется оптимизация Toolbox™)

    • 'LPBoost' (требуется панель инструментов оптимизации)

    • 'TotalBoost' (требуется панель инструментов оптимизации)

    • 'RUSBoost'

    • 'Subspace'

    • 'Bag'

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

    • 'AdaBoostM2'

    • 'LPBoost' (требуется панель инструментов оптимизации)

    • 'TotalBoost' (требуется панель инструментов оптимизации)

    • '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 аргумент пары имя-значение фитинговой функции (см. Советы).

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

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

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

Параметры метода LPBoost и TotalBoost

свернуть все

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

Совет

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

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

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

Параметры метода Boost

свернуть все

Ошибка классификации цели, указанная как пара, разделенная запятыми, состоящая из '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. Следуя предыдущему примеру, этот код определяет порядок классов от нижнего до наиболее представленного в classNamesLH.

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

Алгоритмы

  • Подробные сведения о алгоритмах агрегации ансамбля см. в разделе Алгоритмы ансамбля.

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

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

  • Для метода агрегации ансамблей RUSBoost (Method), аргумент пары имя-значение RatioToSmallest задает пропорцию выборки для каждого класса по отношению к самому низко представленному классу. Например, предположим, что в данных обучения есть 2 класса, А и В А имеют 100 наблюдений и В имеют 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 наблюдений из класса А и 10 наблюдений из класса В.

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

Представлен в R2014b