Подбор ансамбля учащихся для классификации и регрессии
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. Следуя предыдущему примеру, этот код определяет порядок классов от нижнего до наиболее представленного в classNamesLH.
Ycat = categorical(Y); classNames = categories(Ycat); freq = countcats(Ycat); [~,idx] = sort(freq); classNamesLH = classNames(idx);
Подробные сведения о алгоритмах ансамблевого агрегирования см. в разделе Алгоритмы ансамблевого агрегирования.
При указании Method быть алгоритмом повышения и Learners чтобы быть деревьями принятия решений, программное обеспечение по умолчанию растет. Stump принятия решения - это один корневой узел, соединенный с двумя конечными, конечными узлами. Можно скорректировать глубину дерева, указав MaxNumSplits, MinLeafSize, и MinParentSize аргументы пары имя-значение с использованием templateTree.
fitensemble генерирует образцы в мешке путем избыточной выборки классов с большими затратами на неправильную классификацию и недостаточной выборки классов с небольшими затратами на неправильную классификацию. Следовательно, образцы вне мешка имеют меньше наблюдений из классов с большими затратами на неправильную классификацию и больше наблюдений из классов с небольшими затратами на неправильную классификацию. Если вы обучаете классификационный ансамбль, используя небольшой набор данных и сильно искаженную матрицу затрат, то количество наблюдений вне пакета на класс может быть низким. Следовательно, оценочная ошибка вне пакета может иметь большую дисперсию и может быть трудно интерпретировать. Такое же явление может иметь место для классов с большими предшествующими вероятностями.
Для метода ансамблевой агрегации RUSBoost (Method), аргумент пары имя-значение RatioToSmallest задает пропорцию выборки для каждого класса по отношению к самому низко представленному классу. Например, предположим, что в данных обучения есть два класса: A и B. A имеют 100 наблюдений и B имеют 10 наблюдений. Кроме того, предположим, что класс с самым низким представлением имеет m наблюдения в данных обучения.
Если установить 'RatioToSmallest',2, то = s*m2*10 = 20. Следовательно, fitensemble обучает каждого учащегося с использованием 20 наблюдений из класса A и 20 наблюдений из класса B. Если установить 'RatioToSmallest',[2 2], тогда вы получите тот же результат.
Если установить 'RatioToSmallest',[2,1], то = s1*m2*10 = 20 и = s2*m1*10 = 10. Следовательно, fitensemble обучает каждого учащегося, используя 20 наблюдений из класса А и 10 наблюдений из класса В.
Для ансамблей деревьев принятия решений, двухъядерных систем и выше, fitensemble параллелизирует обучение с использованием стандартных блоков Intel ® Threading Building Blocks (TBB). Подробные сведения о TBB Intel см. в разделе https://software.intel.com/en-us/intel-tbb.
[1] Брейман, Л. «Предикторы пакетирования». Машинное обучение. Том 26, стр. 123-140, 1996.
[2] Брейман, Л. «Случайные леса». Машинное обучение. Том 45, стр. 5-32, 2001.
[3] Фрейнд, Y. «Более надежный алгоритм повышения». arXiv:0905.2138v1, 2009.
[4] Фрейнд, Ю. и Р. Э. Шапайр. «Теоретическое обобщение онлайн-обучения и приложения для повышения». J. of 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] Хо, Т. К. «Метод случайного подпространства для построения решающих лесов». IEEE Transactions on Pattern Analysis and Machine Intelligence, том 20, № 8, стр. 832-844, 1998.
[9] Шапайр, Р. Э., Я. Фройнд, П. Бартлетт и В. С. Ли. «Повышение маржи: новое объяснение эффективности методов голосования». Летописи статистики, т. 26, № 5, стр. 1651 - 1686, 1998.
[10] Зайфферт, К., Т. Хошгофтаар, Ж. Хульсе и А. Наполитано. 19-я Международная конференция по распознаванию образов, стр. 1-4, 2008.
[11] Вармут, М., Дж. Ляо и Г. Ратш. «Полностью корректирующие алгоритмы повышения, которые максимизируют запас». Proc. 23-я Int 'l. Conf. on Machine Learning, ACM, Нью-Йорк, стр. 1001-1008, 2006.
ClassificationBaggedEnsemble | ClassificationEnsemble | ClassificationPartitionedEnsemble | RegressionBaggedEnsemble | RegressionEnsemble | RegressionPartitionedEnsemble | templateDiscriminant | templateKNN | templateTree