Ансамбль, изучающий шаблон
возвращает шаблон приобретения знаний ансамблем, который задает, чтобы использовать метод агрегации ансамбля t
= templateEnsemble(Method
,NLearn
,Learners
)Method
, NLearn
изучение циклов и слабых учеников Learners
.
Все другие опции шаблона (t
) характерный для ансамбля, учащегося, кажутся пустыми, но программное обеспечение использует их соответствующие значения по умолчанию во время обучения.
возвращает шаблон ансамбля с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение".t
= templateEnsemble(Method
,NLearn
,Learners
,Name,Value
)
Например, можно задать количество предикторов в каждом случайном ученике подпространства, скорости обучения для уменьшения или целевой ошибке классификации для RobustBoost
.
Если вы отображаете 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
, затем
= 2*10 s
M
= 20
. Следовательно, программное обеспечение обучает каждого ученика, использующего 20 наблюдений от класса A и 20 наблюдений от класса B. Если вы устанавливаете
'RatioToSmallest',[2 2]
, затем вы получите тот же результат.
Если вы устанавливаете 'RatioToSmallest',[2,1]
, затем
= 2*10 s1
M
= 20
и
= 1*10 s2
M
= 10
. Следовательно, программное обеспечение обучает каждого ученика, использующего 20 наблюдений от класса A и 10 наблюдений от класса B.
Для ансамблей деревьев решений, и для двухъядерных систем и выше, fitcensemble
и fitrensemble
параллелизируйте обучение с помощью Intel® Threading Building Blocks (TBB). Для получения дополнительной информации на Intel TBB, см. https://software.intel.com/en-us/intel-tbb.
ClassificationECOC
| ClassificationEnsemble
| fitcecoc
| fitcensemble
| fitrensemble
| templateDiscriminant
| templateKNN
| templateTree