Мудрость толпы для машин

Вступление:

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

Вариант А. Спросите своего брата, который уже смотрел фильм.

Вариант B: перейдите на IMDB, проверьте рейтинг и прочитайте несколько, надеюсь, бесплатных обзоров.

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

Что такое ансамблевое обучение:

Согласно Scholarpedia:

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

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

Как мы объединяем обучение (техники):

Упаковка:

Расшифровывается как «агрегирование начальной загрузки», и это один из самых простых и интуитивно понятных методов. В пакете мы будем использовать один и тот же алгоритм при обучении на разных подмножествах данных. Чтобы получить эти подмножества, мы используем метод, называемый начальной загрузкой:

Как видите, Apple повторяется 2 раза. На практике мы часто выбираем меньший размер для начальных наборов данных. После создания нескольких самонастраиваемых наборов данных мы создадим модель для каждого, а затем объединим их в ансамблевую модель, это называется агрегированием. Для задач классификации класс с наибольшим количеством голосов является прогнозирования и для задач регрессии мы усредняем результаты наших моделей.

Повышение:

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

Популярными алгоритмами, реализующими повышение, являются AdaBoost и Повышение градиента.

Укладка:

Это просто, мы будем использовать разные алгоритмы и просто комбинировать их прогнозы.

Почему нужно учиться ансамблю?

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

Резюме

Ансамблевое обучение превращает несколько слабых моделей в одну сильную «вместе мы сильнее». Для этого было разработано несколько методов, таких как упаковка, бустинг и штабелирование. Модель ансамбля всегда более точна, чем отдельная модель, и может лучше обобщать.

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

Спасибо за прочтение! ❤

Следуйте за мной, чтобы получить более информативный контент по науке о данных.