Я немного запутался в изучении ансамбля. Короче говоря, он запускает k моделей и получает среднее значение этих k моделей. Как можно гарантировать, что среднее значение k моделей будет лучше, чем у любой другой модели? Я понимаю, что уклон "распределен" или "усреднен". Однако что, если в ансамбле две модели (т.е. k = 2), и одна из них хуже другой - разве ансамбль не будет хуже, чем лучшая модель?
machine-learning
ensemble
user1691278
источник
источник
Ответы:
Это не гарантировано. Как вы говорите, ансамбль может быть хуже, чем отдельные модели. Например, взятие среднего значения истинной модели и плохой модели даст довольно плохую модель.
Среднее значение моделей будет улучшаться только в том случае, если модели (несколько) не зависят друг от друга. Например, в пакетировании каждая модель строится из случайного подмножества данных, поэтому в нее встроена некоторая независимость. Или модели могут быть построены с использованием различных комбинаций признаков, а затем объединены путем усреднения.К
Кроме того, усреднение моделей работает только тогда, когда отдельные модели имеют высокую дисперсию. Вот почему случайный лес строится из очень больших деревьев. С другой стороны, усреднение множества моделей линейной регрессии все еще дает вам линейную модель, которая вряд ли будет лучше, чем модели, с которыми вы начали (попробуйте!)
Другие ансамблевые методы, такие как усиление и смешивание, работают, принимая результаты отдельных моделей вместе с данными обучения в качестве входных данных для более крупной модели. В этом случае неудивительно, что они часто работают лучше, чем отдельные модели, поскольку на самом деле они более сложны и все еще используют данные обучения.
источник
В вашем примере ваш ансамбль из двух моделей может быть хуже, чем сама модель. Но ваш пример искусственный, мы обычно строим более двух в нашем ансамбле.
Нет абсолютной гарантии, что ансамблевая модель работает лучше, чем отдельная модель, но если вы создадите много таких моделей, а ваш индивидуальный классификатор будет слабым . Ваша общая производительность должна быть лучше, чем у отдельной модели.
В машинном обучении обучение нескольких моделей обычно превосходит обучение одной модели. Это потому, что у вас есть больше параметров для настройки.
источник
Я просто хочу бросить то, что редко обсуждается в этом контексте, и это должно дать вам пищу для размышлений.
Ансамбль также работает с людьми!
Наблюдалось, что усреднение человеческих предсказаний дает лучшие предсказания, чем любое отдельное предсказание. Это известно как мудрость толпы.
Теперь вы можете утверждать, что это потому, что некоторые люди имеют разную информацию, поэтому вы эффективно усредняете информацию. Но нет, это верно даже для таких задач, как угадывание количества бобов в банке.
Об этом написано множество книг и экспериментов, и этот феномен все еще озадачивает исследователей.
При этом, как отметил @Flounderer, реальные выгоды получают от так называемых нестабильных моделей, таких как деревья решений, где каждое наблюдение обычно оказывает влияние на границу решения. Более стабильные, такие как SVM, не получают столько же, потому что повторная выборка обычно не сильно влияет на векторы поддержки.
источник
На самом деле вполне возможно, что отдельные модели будут лучше ансамблей.
Даже если в ваших данных нет точек, где некоторые из ваших моделей завышают, а некоторые недооценивают (в этом случае вы можете надеяться, что средняя ошибка будет сведена на нет), некоторые из самых популярных функций потерь (например, среднеквадратичные потери) штрафуют. единичные большие отклонения больше, чем некоторое количество умеренных отклонений. Если модели, которые вы усредняете, несколько отличаются, вы можете надеяться, что дисперсия станет «меньше», так как среднее убивает выдающиеся отклонения. Вероятно, это объясняется этим .
источник
Да, это может быть и так, но идея ансамбля состоит в том, чтобы обучить более простые модели, чтобы избежать перебора, при захвате различных характеристик данных из разных ансамблей. Конечно, нет никакой гарантии, что ансамблевая модель превзойдет одну модель при обучении с теми же данными обучения. Превосходство может быть достигнуто путем сочетания ансамблевых моделей и бустинга (например, AdaBoost). Повышая уровень, вы тренируете каждую следующую ансамблевую модель, присваивая веса каждой точке данных и обновляя их в соответствии с ошибкой. Так что думайте о нем как о алгоритме спуска координат, он позволяет уменьшать ошибку обучения с каждой итерацией, поддерживая постоянную среднюю сложность модели. В целом это влияет на производительность. Много
источник