Я часто участвую в соревнованиях Kaggle, и именно там я впервые узнал об этом увлекательном семействе моделей машинного обучения, хотя их полезность не ограничивается получением высоких результатов в онлайн-соревнованиях по машинному обучению, на этом модели Ensemble работают с большим успехом. с реальными данными.

Методы ансамбля можно разделить на две категории: бэггинг и бустинг. В Бэггинге мы создаем несколько обучающих наборов для нашей модели путем повторной выборки с заменой, что означает, что обучающее наблюдение можно найти в нескольких наборах, и в целом эта процедура приводит к уменьшению дисперсии нашей модели (меньше сложности). При повышении мы объединяем несколько слабых учеников с помощью взвешенного взвешивания или другого подходящего метода, чтобы получить сильного ученика, поскольку, как правило, сильного ученика трудно обучить самостоятельно. Здесь модели обучаются последовательно, и каждая модель использует информацию от предыдущего ученика и фокусируется на наблюдениях, с которыми предыдущий ученик показал себя плохо.

Адаптивное повышение:

Один из самых примитивных типов моделей машинного обучения, принадлежащий к этому семейству моделей. Адаптивное ускорение влечет за собой обучение слабых учеников на протяжении всей обучающей выборки, и на каждой итерации обучения мы продолжаем изменять веса наблюдения в зависимости от того, как предыдущий ученик работал на их. Предположим, что в задаче классификации наблюдение не классифицируется в конкретной итерации, поэтому, следовательно, мы присвоим этому наблюдению более высокий вес по сравнению с другими наблюдениями, чтобы следующий учащийся больше сосредоточился на этом наблюдении даже ценой промаха при классификации других наблюдений ( также тот, который ранее был правильно классифицирован). Пожалуйста, посмотрите ниже на рисунок, взятый из книги [1] Python Machine Learning — Raschka Vahid Mirjalili, который иллюстрирует, как работает adaboost.

Здесь 4 ученика объединены, чтобы сделать «комбинированного» сильного ученика для классификации наблюдений в два целевых класса, представленных двумя разными цветами и пунктирными линиями, разделяющими результаты классификации каждого ученика, а их относительный размер означает веса. Первый промах классификатора классифицирует два образца из «синего» класса, после чего этим двум образцам присваивается более высокий вес для второго ученика, который, в свою очередь, классифицирует их правильно за счет промаха при классификации трех других образцов из «синего» класса, которые получают более высокие веса для 3-й ученик. Все эти 3 ученика объединяются, чтобы сделать 4-го ученика, используя взвешенное большинство голосов, которое присваивает всем образцам правильный класс.

При объединении «m» учащихся класс выборки задается выражением [2]:

  • α: веса, заданные adaboost
  • G: результаты m-го ученика
  • Знак: дает знак выражения внутри либо -1, либо +1.

Случайный Форрест:

Это алгоритм машинного обучения, который работает лучше, чем стандартная упаковка, когда мы строим несколько последовательных деревьев решений, но каждое в ограниченном пространстве функций. Здесь для каждого дерева решений мы случайным образом выбираем подмножество всех функций, отсюда и название «случайный». Здесь мы можем выбрать функции для каждого дерева на основе нашего выбора, если m — общее количество функций, то у нас есть возможность выбрать m/2, m/5, кубический корень из m, квадратный корень из m и т. д. Агрегирование результатов всех учащихся осуществляется путем голосования, если это проблема классификации, или усреднения результатов, если это проблема регрессии. На приведенном ниже рисунке [3] показано, как случайный Форрест работает в задаче регрессии и как результат вычисляется путем усреднения результатов всех деревьев.

Приложения:

Помимо ситуаций, когда практически невозможно обучить «сильных» учеников, методы ансамбля имеют множество других применений. Методы ансамбля, особенно деревья решений с градиентным усилением, эффективны при работе с большими наборами данных, даже если они содержат много пропущенных значений. Оба условия верны для реальных данных об акциях, и я лично использовал ансамблевый алгоритм (алгоритм XgBoost) для создания ансамбля деревьев решений для «Two Sigma Kaggle Challenge 2018», целью которого было прогнозирование цен на акции с использованием 10-летних реальных исторических данных. Цены. В этих данных было около 5 миллионов пропущенных значений, а общее количество строк превышало 9 миллионов. Даже с этими недостатками XgBoost показал себя превосходно, дав мне оценку R2 на 0,6 больше, чем стандартные алгоритмы машинного обучения без ансамбля, такие как LDA, QDA, логистическая регрессия. Вкратце цель алгоритма Gradient Boosted Decision Trees (XgBoost) состоит в том, чтобы найти параметры, которые минимизируют «целевую» функцию, которая в этом сценарии представляла собой квадрат потерь между фактическим значением и прогнозируемым значением. Рисунок ниже из книги Криса Альбиона по машинному обучению [4] иллюстрирует вышеизложенное и показывает, что найти минимум функции непросто, поскольку мы можем получить локальный минимум вместо глобального минимума.

Помимо вышеперечисленных проблем, данные о реальных запасах показывают сезонные тенденции, и, поскольку они являются многочисленными выбросами, оба являются факторами, влияющими на глобальный экономический рынок. Наш глобальный рынок в данный момент времени переживает внезапную фазу COVID-19, и потребуется время, чтобы восстановиться, что приведет к необычным результатам акций. Аналогичным образом глобальные факторы повлияли на данные об акциях в вызове Kaggle, и одним из них был крах пузыря на рынке жилья в 2008 году, который сильно повлиял на цены акций в обучающих данных. Несколько деревьев в ансамблевом методе помогают обнаруживать сезонные тенденции в данных и лучше учитывать выбросы, когда прогноз делается на тестовом наборе дат. Точно так же такие ансамблевые методы работают намного лучше, чем другие альтернативы в алгоритмах обучения с учителем, когда имеют дело с данными с высокой размерностью (количеством признаков) и большими наблюдениями, даже когда имеется множество нулевых значений, как это часто бывает с реальными данными. Другие соответствующие приложения включают прогнозирование доходов магазина как для офлайн-магазинов, так и для веб-сайтов электронной коммерции. Я постараюсь осветить проблему прогнозирования запасов и прогнозирования продаж в дополнительных блогах.

Я пишу эти блоги о вещах, которые я нахожу интересными в мире ML, и чтобы отдать должное сообществу, которое дало мне так много, когда я начал свое путешествие здесь, но, как и почти все в этой области, я все еще учусь, и я был бы рад любым предложениям/отзывам. Ты можешь иметь.

Ссылки:

[1] Рашка, Себастьян и Вахид Мирджалили. Машинное обучение Python: машинное обучение и глубокое обучение с помощью Python, Scikit-Learn и TensorFlow 2. Бирмингем; Мумбаи: Packt, 2019. Дж. Бреклинг, изд. Анализ временных рядов направлений: приложения к скорости и направлению ветра, сер. Конспект лекций по статистике. Берлин, Германия: Springer, 1989, вып. 61.

[2] Учебное пособие по AdaBoost. Учебник по AdaBoost · Крис Маккормик, 13 декабря 2013 г. https://mccormickml.com/2013/12/13/adaboost-tutorial/. Р. Э. Сорас, В. С. Рейнхардт и С. А. Вон, Высокоскоростной цифро-частотный преобразователь, патент США 5 668 842, 16 сентября 1997 г.

[3] Маккандлесс, Тайлер С. и Сью Эллен Хаупт. Парадокс преобразования энергии ветра в супертурбине: использование машинного обучения для уменьшения ошибок, вызванных неравенством Дженсена. Наука об энергии ветра 4, вып. 2 (апрель 2019 г.): 343–53. https://doi.org/10.5194/wes-4-343-2019.

[4] Албон, Крис. Машинное обучение с кулинарной книгой Python: практические решения от предварительной обработки до глубокого обучения. Севастополь, Калифорния: OReilly Media, 2018.