Подходящий ансамбль учеников для классификации и регрессии
fitensemble
может повысить или ученики дерева решений сумки или классификаторы дискриминантного анализа. Функция может также обучить случайные ансамбли подпространства классификаторов дискриминантного анализа или KNN.
Для более простые интерфейсы, которые соответствуют классификации и ансамблям регрессии, вместо этого используйте fitcensemble
и fitrensemble
, соответственно. Кроме того, fitcensemble
и fitrensemble
предоставляют возможности для Байесовой оптимизации.
Mdl = fitensemble(Tbl,ResponseVarName,Method,NLearn,Learners)
Mdl = fitensemble(Tbl,formula,Method,NLearn,Learners)
Mdl = fitensemble(Tbl,Y,Method,NLearn,Learners)
Mdl = fitensemble(X,Y,Method,NLearn,Learners)
Mdl = fitensemble(___,Name,Value)
возвращает обученный объект модели ансамбля, который содержит результаты подбора кривой ансамблю классификации Mdl
= fitensemble(Tbl
,ResponseVarName
,Method
,NLearn
,Learners
)NLearn
или учеников регрессии (Learners
) ко всем переменным в таблице Tbl
. ResponseVarName
является именем переменной отклика в Tbl
. Method
является методом агрегации ансамбля.
обучает ансамбль, использующий дополнительные опции, заданные одним или несколькими аргументами пары Mdl
= fitensemble(___,Name,Value
)Name,Value
и любым из предыдущих синтаксисов. Например, можно задать порядок класса, чтобы реализовать 10-кратную перекрестную проверку или темп обучения.
NLearn
может отличаться от нескольких дюжин до нескольких тысяч. Обычно, ансамбль с хорошей предсказательной силой требует от нескольких сотен до нескольких тысяч слабых учеников. Однако вы не должны обучать ансамбль который много циклов целиком. Можно запустить путем роста нескольких дюжин учеников, осмотреть производительность ансамбля и затем, при необходимости, обучить более слабых учеников, использующих resume
для проблем классификации или resume
для проблем регрессии.
Производительность ансамбля зависит от установки ансамбля и установки слабых учеников. Таким образом, если вы задаете слабых учеников с параметрами по умолчанию, затем ансамбль может выполнить плохо. Поэтому как настройки ансамбля, это - хорошая практика, чтобы настроить параметры слабых шаблонов использования учеников и выбрать значения, которые минимизируют ошибку обобщения.
Если вы задаете, чтобы передискретизировать использование Resample
, то это - хорошая практика, чтобы передискретизировать к целому набору данных. Таким образом, используйте настройку по умолчанию 1
для FResample
.
В проблемах классификации (то есть, Type
является 'classification'
):
Если методом агрегации ансамбля (Method
) является 'bag'
и:
Стоимость misclassification (Cost
) является очень неустойчивой, затем, для выборок в сумке, программное обеспечение сверхдискретизировало уникальные наблюдения от класса, который имеет большой штраф.
Априорные вероятности класса (Prior
) высоко скашиваются, программное обеспечение сверхдискретизировало уникальные наблюдения от класса, который имеет большую априорную вероятность.
Для меньших объемов выборки эти комбинации могут привести к низкой относительной частоте наблюдений из сумки от класса, который имеет большой штраф или априорную вероятность. Следовательно, предполагаемая ошибка из сумки является очень переменной, и может быть трудно интерпретировать. Чтобы избежать больших предполагаемых ошибочных отклонений из сумки, особенно для размеров небольшой выборки, устанавливают более сбалансированную матрицу стоимости 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
.
fitensemble
генерирует выборки в сумке путем сверхдискретизации классов с большими затратами misclassification и субдискретизации классов с маленькими затратами misclassification. Следовательно, выборки из сумки имеют меньше наблюдений от классов с большими затратами misclassification и больше наблюдений от классов с маленькими затратами misclassification. Если вы обучаете ансамбль классификации, использующий небольшой набор данных и очень скошенную матрицу стоимости, то количество наблюдений из сумки в классе может быть низким. Поэтому предполагаемая ошибка из сумки может иметь большое отклонение и может быть трудной интерпретировать. То же явление может произойти для классов с большими априорными вероятностями.
Для метода агрегации ансамбля RUSBoost (Method
) аргумент пары "имя-значение" RatioToSmallest
задает пропорцию выборки для каждого класса относительно представленного самым низким образом класса. Например, предположите, что существует два класса в данных тренировки: A и B. A имеет 100 наблюдений, и B имеют 10 наблюдений. и что представленный самым низким образом класс имеет наблюдения m
в данных тренировки.
Если вы устанавливаете 'RatioToSmallest',2
, то
= s*m
2*10
= 20
. Следовательно, fitensemble
обучает каждого ученика, использующего 20 наблюдений от класса A и 20 наблюдений от класса B. Если вы устанавливаете 'RatioToSmallest',[2 2]
, то вы получаете тот же результат.
Если вы устанавливаете 'RatioToSmallest',[2,1]
, то
= s1*m
2*10
= 20
и
= s2*m
1*10
= 10
. Следовательно, fitensemble
обучает каждого ученика, использующего 20 наблюдений от класса A и 10 наблюдений от класса B.
Для ансамблей деревьев решений, и для двухъядерных систем и выше, fitensemble
параллелизирует обучение с помощью Intel® Threading Building Blocks (TBB). Для получения дополнительной информации на Intel TBB, см. https://software.intel.com/en-us/intel-tbb.
[1] Бреимен, L. “Укладывание в мешки Предикторов”. Машинное обучение. Издание 26, стр 123–140, 1996.
[2] Бреимен, L. “Случайные Леса”. Машинное обучение. Издание 45, стр 5–32, 2001.
[3] Freund, Y. “Более устойчивый повышающий алгоритм”. arXiv:0905.2138v1, 2009.
[4] Freund, Y. и Р. Э. Шапайр. “Теоретическое Решением Обобщение Дистанционного обучения и Приложения к Повышению”. J. Компьютерных и Системных Наук, Издания 55, стр 119–139, 1997.
[5] Фридман, J. “Жадное приближение функций: машина повышения градиента”. Летопись Статистики, Издания 29, № 5, стр 1189–1232, 2001.
[6] Фридман, J., Т. Хэсти и Р. Тибширэни. “Аддитивная логистическая регрессия: статистическое представление повышения”. Летопись Статистики, Издания 28, № 2, стр 337–407, 2000.
[7] Hastie, T., Р. Тибширэни и Дж. Фридман. Выпуск раздела Elements of Statistical Learning, Спрингер, Нью-Йорк, 2008.
[8] Хо, T. K. “Случайный метод подпространства для построения лесов решения”. Транзакции IEEE согласно Анализу Шаблона и Искусственному интеллекту, Изданию 20, № 8, стр 832–844, 1998.
[9] Schapire, R. E. И. Фреунд, П. Бартлетт и В.С. Ли. “Повышение поля: новое объяснение эффективности голосующих методов”. Летопись Статистики, Издания 26, № 5, стр 1651–1686, 1998.
[10] Seiffert, C., Т. Хошгофтаар, Дж. Хулс и А. Наполитано. “RUSBoost: Улучшание производительности классификации, когда данные тренировки скашивается”. 19-я Международная конференция по вопросам Распознавания образов, стр 1–4, 2008.
[11] Warmuth, M., Цз. Ляо и Г. Рэч. “Полностью корректирующие повышающие алгоритмы, которые максимизируют поле”. Proc. 23-й Int’l. Конференция по Машинному обучению, ACM, Нью-Йорк, стр 1001–1008, 2006.
ClassificationBaggedEnsemble
| ClassificationEnsemble
| ClassificationPartitionedEnsemble
| RegressionBaggedEnsemble
| RegressionEnsemble
| RegressionPartitionedEnsemble
| templateDiscriminant
| templateKNN
| templateTree