Подгонка ансамбля учащихся для классификации и регрессии
fitensemble
может усиливать или суммировать учащихся дерева принятия решений или классификаторы дискриминантного анализа. Функция может также обучать случайные подпространственные ансамбли классификаторов KNN или дискриминантного анализа.
Для более простых интерфейсов, которые соответствуют ансамблям классификации и регрессии, вместо этого используйте fitcensemble
и fitrensemble
, соответственно. Также, fitcensemble
и fitrensemble
обеспечивают опции для байесовской оптимизации.
возвращает обученный объект модели ансамбля, который содержит результаты подбора кривой ансамбля 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'
и:
Стоимость неправильной классификации (Cost
) является сильно несбалансированным, тогда для выборок в мешке, программное обеспечение переизбирает уникальные наблюдения от класса, который имеет большой штраф.
Предшествующие вероятности класса (Prior
) сильно искажены, программное обеспечение переизбирает уникальные наблюдения из класса, который имеет большую предшествующую вероятность.
Для меньших размеров выборки эти комбинации могут привести к низкой относительной частоте наблюдений вне мешка от класса, который имеет большую штраф или предшествующую вероятность. Следовательно, оцененная ошибка вне сумки является сильно переменной, и ее может быть трудно интерпретировать. Чтобы избежать больших предполагаемых отклонений ошибок вне сумки, особенно для небольших размеров выборки, установите более сбалансированную матрицу затрат на неправильную классификацию с помощью Cost
или менее искаженный предыдущий вектор вероятностей с использованием Prior
.
Поскольку порядок некоторых входных и выходных аргументов соответствует отдельным классам в обучающих данных, рекомендуется задать порядок классов, используя ClassNames
аргумент пары "имя-значение".
Чтобы быстро определить порядок классов, удалите из обучающих данных все наблюдения, которые не классифицированы (то есть имеют отсутствующую метку), получите и отобразите массив всех различных классов, а затем укажите массив для ClassNames
. Для примера предположим, что переменная отклика (Y
) - массив ячеек с метками. Этот код задает порядок классов в переменной classNames
.
Ycat = categorical(Y); classNames = categories(Ycat)
categorical
присваивает <undefined>
к неклассифицированным наблюдениям и categories
исключает <undefined>
с его выхода. Поэтому, если вы используете этот код для массивов ячеек меток или аналогичный код для категориальных массивов, то вы не должны удалять наблюдения с отсутствующими метками, чтобы получить список различных классов.Чтобы указать, что порядок классов от самой низкой представленной метки до наиболее представленной, затем быстро определите порядок классов (как в предыдущей пуле), но расположите классы в списке по частоте перед передачей списка в ClassNames
. Следующий из предыдущего примера, этот код задает порядок классов от lowest- до наиболее представленных в classNamesLH
.
Ycat = categorical(Y); classNames = categories(Ycat); freq = countcats(Ycat); [~,idx] = sort(freq); classNamesLH = classNames(idx);
Для получения дополнительной информации об ансамбле-алгоритмах агрегации смотрите Ensemble Algorithms.
Если вы задаете Method
быть алгоритмом и Learners
ускорения чтобы быть деревьями решений, программное обеспечение растет stumps по умолчанию. Пень принятия решения является одним корневым узлом, соединенным с двумя терминальными, листовыми узлами. Можно настроить глубину дерева, задав
MaxNumSplits
, MinLeafSize
, и MinParentSize
Аргументы пары "имя-значение" с использованием templateTree
.
fitensemble
генерирует выборки в мешке путем избыточной дискретизации классов с большими расходами на неправильную классификацию и классов недостаточной дискретизации с небольшими расходами на неправильную классификацию. Следовательно, выборки вне мешка имеют меньше наблюдений от классов с большими расходами на неправильную классификацию и больше наблюдений от классов с небольшими затратами на неправильную классификацию. Если вы обучаете классификационный ансамбль с помощью небольшого набора данных и сильно искаженной матрицы затрат, то количество наблюдений вне мешка на класс может быть низким. Поэтому предполагаемая ошибка вне сумки может иметь большое отклонение и может быть трудной для интерпретации. То же явление может произойти и для классов с большими априорными вероятностями.
Для ансамбля-агрегирующего метода 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® Многопоточные базовые блоки (TBB). Для получения дополнительной информации о Intel TBB смотрите https://software.intel.com/en-us/intel-tbb.
[1] Breiman, L. «Bagging Predictors». Машинное обучение. Том 26, стр. 123-140, 1996.
[2] Breiman, L. «Random Forests». Машинное обучение. Том 45, стр. 5-32, 2001.
[3] Freund, Y. «Более надежный алгоритм усиления». arXiv:0905.2138v1, 2009.
[4] Freund, Y. and R. E. Schapire. Теоретически решающее обобщение онлайн-обучения и приложение к бустингу. J. Computer and System Sciences, Vol. 55, pp. 119-139, 1997.
[5] Фридман, Дж. «Жадное приближение функций: градиентная бустерная машина». Анналы статистики, том 29, № 5, стр. 1189 - 1232, 2001.
[6] Фридман, Дж., Т. Хасти и Р. Тибширани. «Аддитивная логистическая регрессия: статистический взгляд на увеличение». Анналы статистики, том 28, № 2, стр. 337 - 407, 2000.
[7] Хасти, Т., Р. Тибширани и Дж. Фридман. Раздел «Элементы статистического обучения», Спрингер, Нью-Йорк, 2008 год.
[8] Ho, T. K. «Метод случайного подпространства для построения лесов для принятия решений». Транзакции IEEE по анализу шаблонов и машинной разведке, том 20, № 8, стр. 832-844, 1998.
[9] Schapire, R. E., Y. Freund, P. Bartlett, and W.S. Lee. «Увеличение разницы: новое объяснение эффективности методов голосования». Анналы статистики, том 26, № 5, стр. 1651 - 1686, 1998.
[10] Seiffert, C., T. Khoshgoftaar, J. Hulse, and A. Napolitano. «RUSBoost: повышение эффективности классификации при искажении обучающих данных». 19-я Международная конференция по распознаванию шаблона, стр. 1-4, 2008.
[11] Warmuth, M., J. Liao, and G. Ratsch. «Полностью корректирующие алгоритмы повышения, которые максимизируют запас». Proc. 23-й Int 'l. Конф. по машинному обучению, ACM, Нью-Йорк, стр. 1001-1008, 2006.
ClassificationBaggedEnsemble
| ClassificationEnsemble
| ClassificationPartitionedEnsemble
| RegressionBaggedEnsemble
| RegressionEnsemble
| RegressionPartitionedEnsemble
| templateDiscriminant
| templateKNN
| templateTree