В этой статье мы рассмотрим связь между Ensemble Learning и коллективным разумом, методы машинного обучения и алгоритмы, которые можно реализовать.

Ансамблевое обучение основано на том, о чем Скотт Пейдж рассказывает в своей исследовательской работе. Он говорит о важности знания обобщения и приходит к следующему выводу:

Разнообразие важнее компетентности. (Скотт Пейдж)

Противостояние специалисту в области и группе людей, обладающих базовыми знаниями по предмету, приводит к лучшим решениям и выборам, сделанным группой по сравнению со специалистом. Это основано на области коллективного разума и относится к мудрости толпы.

Толпа лямбда-индивидуумов способна формировать релевантные суждения и решать сложные задачи.

Хорошим примером этого является шахматная партия между Гарри Каспаровым и 50 000 игроками по всему миру. Все 50 000 человек играли вместе и одновременно, каждое движение толпы определялось голосованием. Цель игры не в исходе, так как Каспаров выиграл партию через 4 месяца, а в том, что толпа нормальных шахматистов смогла противостоять одному из лучших шахматистов всех времен.

Теперь, когда мы видим смысл коллективного решения и важность агрегирования знаний, давайте посмотрим, что могут с этим сделать Машины…

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

По сути, будет обучено несколько моделей, и их прогнозы будут использованы для создания уникальной модели, которая будет лучше, поскольку она использует обучение с разных точек зрения.

Различные методы ансамблевого обучения

Обучение на нескольких моделях может осуществляться по-разному. Однако первый вопрос касается самих моделей. Ансамбль Обучение может использовать одну и ту же модель несколько раз или разные модели, основанные на разных алгоритмах машинного обучения.

Смотрим техники…

Голосовать или в среднем

Самое простое ансамблевое обучение — это выбор класса, который наиболее прогнозируется различными моделями (из разных алгоритмов). Например, если вы обучаете 4 модели, и 3 из них предсказывают положительный класс (1), общий прогноз обучения ансамбля будет положительным классом (1).

Это также можно сделать в задачах регрессии, используя среднее значение всех предсказаний моделей.

Упаковка и склеивание

Бэггинг и Вставка – это методы ансамблевого обучения, в которых используется одна и та же модель (например, дерево решений с фиксированными гиперпараметрами) для обучения на разных случайные выборки набора данных.

Методы ансамбля работают еще лучше, когда модели обучаются на разных данных (или используют в своих моделях действительно разные алгоритмы).
(Орельен Жерон)

Зная это, каждая модель будет учиться на выборках, а затем все прогнозы будут агрегированы по наиболее частому классу или среднему (для регрессии).

Большая разница с первым методом заключается в том, что каждая модель обучается на разных данных. Это позволяет окончательной модели быть менее подверженной влиянию дисперсии результатов, потому что агрегирование будет собирать только то, что является общим, а не некоторые конкретные особенности в наборе данных.

каждая уникальная модель ансамбля будет иметь большую дисперсию дисперсию, чем окончательная модель (обобщенная по результатам всех остальных).

Что отличает пакетирование и вставку?

В Бэггинге (начальная агрегация) случайная выборка данных в обучающем наборе выбирается с заменой — это означает, что отдельные точки данных могут быть выбраны более одного раза ( IBM — Bagging), тогда как при Вставке случайная выборка данных не будет заменена в обучающем наборе данных после выбора одной из моделей ансамбля. Таким образом, при вставке каждое наблюдение обучающего набора будет использоваться для обучения, тогда как при пакетировании в среднем для обучения выбирается только 63 % набора данных. Это означает, что 37% не видны ни одной модели. Эти точки данных называются: экземпляры Out Of Bag (OOB).
Таким образом, экземпляры OOB можно использовать для оценки производительности модели.

Повышение

Этот метод является вторым по распространенности методом ансамблевого обучения. Это в основном последовательная модель обучение (одна за другой), где каждая из моделей пытается исправить предыдущую (либо с увеличением веса на плохих прогнозы как AdaBoost или путем обучения на остаточных ошибках прогнозов предыдущей модели как Gradient Boosting (мы увидим эти алгоритмы в следующем разделе)).

Знаменитые алгоритмы

Поскольку теперь мы знаем различные методы ансамблевого обучения, давайте рассмотрим некоторые из известных алгоритмов с небольшим количеством кода.

Случайный лес

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

Библиотека Scikit-Learn предлагает реализацию Random Forests: RandomForestClassifier (для классификации) или RandomForestRegressor (для регрессии):

АдаБуст

AdaBoost — это алгоритм, использующий метод бустинга метод для обучения предиктора. Как я упоминал ранее, алгоритм реализует веса для всех примеров и увеличивает веса неправильно предсказанных. Таким образом, каждая новая обученная модель будет фокусироваться на примерах, для которых ансамбль модель имеет трудность для предсказания. Он корректирует недостаточно скорректированные наблюдения, чтобы получить более точную окончательную модель ансамбля.

Scikit-Learn также предлагает реализацию алгоритма AdaBoost: AdaBoostClassifier (для классификации) или AdaBoostRegressor (для регрессии):

Повышение градиента

Повышение градиента – это ансамблевый метод, который последовательно обучает каждую модель, используя остаточные ошибки (y – ŷ) прогнозов предыдущей модели в качестве новых целей в наборе обучающих данных. По сути, первая модель обучается на наборе данных, вторая использует остаточные ошибки из прогнозов первой в качестве новой цели. Таким образом, каждая модель будет пытаться уменьшить остаточные ошибки, сосредоточившись только на ней (одной за другой). Наконец, прогноз, сделанный ансамблем, представляет собой сумму всех прогнозов каждой модели в ансамбле ( поскольку каждая модель предсказывает часть общей цели).

Одним из самых известных алгоритмов машинного обучения является XGBoost, который представляет собой оптимизированную реализацию Gradient Boosting в Python:

Заключение

Ансамбльное обучение — отличный способ собрать производительность нескольких моделей. Как подчеркивает мудрость из толпы, группа из нескольких человек может действительно хорошо решать проблемы и принимать решения. Это применяется в машинном обучении с помощью методов ансамбля.
Бэггинг (вставка) и ускорение являются основными методами, а случайный Наиболее известны леса, AdaBoost и Градиент Boosting.

Спасибо, что прочитали эту статью, надеюсь, вам понравилось и вы узнали кое-что об обучении ансамблем!

Ресурсы: