Стекинг
Материал из MachineLearning.
Gadel Mahmutov (Обсуждение | вклад)
(Новая: {{well|Статья написана с использованием LLM '''Claude Sonnet 5''' и проверена участником ~~~~}} '''Сте́кинг''' (от англ. '...)
К следующему изменению →
Версия 15:12, 5 июля 2026
| | Статья написана с использованием LLM Claude Sonnet 5 и проверена участником Gadel Mahmutov 19:12, 5 июля 2026 (MSD) |
Сте́кинг (от англ. stacking — «стопка», «наслаивание»; также стекинг обобщений, англ. stacked generalization) — метод ансамблевого обучения, при котором прогнозы нескольких базовых моделей (базовых алгоритмов, level-0 моделей) используются в качестве входных признаков для обучения дополнительной модели более высокого уровня (метамодели, level-1 модели, комбинатора), которая учится оптимально объединять их предсказания. В отличие от простого усреднения или голосования, веса или функция объединения в стекинге не задаются заранее, а оцениваются по данным, что позволяет учитывать сильные и слабые стороны каждой базовой модели.
Стекинг был впервые предложен Дэвидом Уолпертом в 1992 году как схема для минимизации ошибки обобщения одного или нескольких обобщающих алгоритмов, работающая путём выявления смещений этих алгоритмов относительно обучающей выборки. Метод относится к семейству методов метаобучения и широко применяется в прикладном анализе данных и соревнованиях по машинному обучению (например, Kaggle).
Содержание |
Мотивация
Ни одна отдельная модель машинного обучения не является универсально наилучшей для всех задач и наборов данных — это следствие идей, близких к теореме «no free lunch»: разные алгоритмы (например, линейная регрессия, метод ближайших соседей, деревья решений или нейронные сети) делают разные предположения о структуре данных и, соответственно, ошибаются по-разному. Если ошибки разных моделей не полностью коррелированы, их можно скомпенсировать, объединив предсказания. Простейшие способы объединения — усреднение (бэггинг) или взвешенное голосование — используют фиксированные или эвристически подобранные веса. Стекинг обобщает эту идею: вместо заранее заданного правила объединения задача «научиться комбинировать» решается ещё одной обучаемой моделью.
Уолперт описывал эту идею как попытку «исправить» систематические ошибки (смещения) отдельных генерализаторов: метод строит второе пространство признаков, входами которого служат предсказания исходных моделей, обученных на части обучающей выборки, а выходом — истинный ответ на оставшейся части. Таким образом, метамодель обучается не на исходных признаках объекта, а на прогнозах базовых моделей, что позволяет ей выявлять систематические закономерности в их ошибках.
Формальное описание
Пусть имеется обучающая выборка и набор из
базовых моделей (алгоритмов level-0)
, каждая из которых обучается предсказывать целевую переменную
по вектору признаков
. Итоговое предсказание стекинга задаётся в виде
где — метамодель (алгоритм level-1), обучаемая на векторах предсказаний базовых моделей.
Проблема утечки информации и кросс-валидация
Наивный подход — обучить базовые модели на всей обучающей выборке, получить их предсказания на этой же выборке и на них обучить метамодель — приводит к переобучению: метамодель будет ориентироваться на переобученные (слишком «уверенные») предсказания базовых моделей, а не на их истинную обобщающую способность. Это частный случай более общей проблемы утечки данных. Чтобы избежать её, Уолперт предложил использовать схему, аналогичную кросс-валидации, — когда предсказания базовых моделей для обучения метамодели получаются на данных, не участвовавших в обучении соответствующей базовой модели.
На практике для этого чаще всего применяется -блочная перекрёстная проверка:
- Обучающая выборка случайным образом делится на
непересекающихся блоков (фолдов).
- Для каждого блока
все базовые модели обучаются на оставшихся
блоках, после чего делают предсказания для объектов блока
. Эти предсказания называют внеблочными (out-of-fold, OOF).
- Собранные по всем блокам OOF-предсказания
образуют новую обучающую выборку размера
, на которой обучается метамодель
.
- Финальные базовые модели переобучаются на всей исходной выборке; их предсказания на новых объектах подаются на вход уже обученной метамодели
для получения итогового прогноза.
В качестве метамодели часто используют простые модели — линейную или логистическую регрессию, реже — более гибкие алгоритмы (случайный лес, градиентный бустинг), поскольку избыточно сложная метамодель повышает риск переобучения на относительно небольшой выборке OOF-предсказаний.
Ограничение на неотрицательность весов
Если метамодель линейна, , то естественный способ её обучения — метод наименьших квадратов. Лео Брейман показал, что использование кросс-валидационных данных и метода наименьших квадратов с ограничением на неотрицательность коэффициентов позволяет получать линейные комбинации предикторов с улучшенной точностью прогноза:
Брейман объяснял эффективность неотрицательных весов (в сумме дающих единицу) тем, что при таком ограничении стекинг-оценка становится «интерполирующей»: она всегда лежит между минимальным и максимальным значением предсказаний базовых моделей, что стабилизирует комбинированный прогноз и снижает риск переобучения по сравнению с неограниченной регрессией.
История
1992 год. Метод впервые описан Дэвидом Уолпертом в статье «Stacked Generalization», где он был предложен как обобщение идеи кросс-валидации: при использовании нескольких обобщающих алгоритмов стекинг можно рассматривать как более изощрённую версию кросс-валидации, заменяющую её грубое правило «победитель получает всё» на более гибкую стратегию комбинирования. Уолперт продемонстрировал метод на задаче преобразования текста в фонемы и на задаче аппроксимации поверхности методом регрессионного анализа.
1993 год. Мишель Леблан и Роберт Тибширани применили похожую схему для комбинирования линейного дискриминантного анализа и метода ближайших соседей в задаче классификации, также отметив пользу ограничений на неотрицательность коэффициентов.
1996 год. Лео Брейман адаптировал стекинг к задачам регрессии («stacked regressions») и формально обосновал необходимость неотрицательности весов линейной комбинации, продемонстрировав эффективность подхода на стекинге регрессионных деревьев разного размера и на комбинации линейных подвыборочных и гребневых (ridge) регрессий.
1997–1999 годы. Кай Мин Тинг и Иэн Уиттен систематически исследовали, какие типы метамоделей и какие признаки (метки классов или распределения вероятностей по классам) лучше использовать на уровне метамодели для задач классификации. Они показали, что стекинг с использованием распределений вероятностей и многовыходной линейной регрессии (multi-response linear regression, MLR) даёт заметно лучшие результаты, чем стекинг на основе одних лишь предсказанных меток, обозначив выбор типа обобщающего алгоритма для метамодели и типа входных признаков как ключевые нерешённые вопросы, остававшиеся «чёрным ящиком» со времён появления стекинга.
2004 год. Сашо Джерошки и Бернард Женко провели масштабное сравнение методов стекинга с простым выбором наилучшей базовой модели по кросс-валидации и показали, что стандартные методы стекинга в лучшем случае сравнимы по качеству с выбором лучшего классификатора, тогда как стекинг с распределениями вероятностей и многовыходной линейной регрессией показывает наилучшие результаты среди существующих на тот момент методов; предложенное авторами расширение с многовыходными модельными деревьями превзошло как классический стекинг, так и выбор лучшей модели.
2007 год. Марк ван дер Лан, Эрик Полли и Алан Хаббард ввели алгоритм Super Learner — теоретически обоснованную версию стекинга, в которой веса комбинации выбираются так, чтобы минимизировать кросс-валидационный риск на выпуклом множестве весов. Для данного метода было показано, что асимптотически он работает не хуже — а как правило лучше — любого из отдельных базовых алгоритмов, входящих в ансамбль. Super Learner получил широкое применение в задачах, где требуется теоретически обоснованный выбор наилучшей комбинации моделей, в частности в рамках методологии таргетного (целевого) обучения (targeted learning).
2006–2009 годы, Netflix Prize. Соревнование Netflix Prize по построению рекомендательной системы фильмов стало важной вехой в популяризации метода в прикладной среде: команды-победители использовали линейное и нелинейное комбинирование десятков и сотен базовых моделей коллаборативной фильтрации и матричного разложения. В этом контексте закрепился неформальный термин блендинг (blending) — колокиальное обозначение стекинга, при котором метамодель обучается не на внеблочных кросс-валидационных предсказаниях, а на предсказаниях, полученных на отдельной отложенной (holdout) валидационной выборке. Финальное решение команды BellKor's Pragmatic Chaos представляло собой линейную комбинацию (блендинг) свыше ста индивидуальных моделей, а более поздние версии решения использовали в качестве комбинирующего алгоритма градиентный бустинг деревьев решений вместо простого линейного блендинга.
2009 год. Джозеф Силл и соавторы предложили Feature-Weighted Linear Stacking (FWLS) — модификацию, в которой веса базовых моделей в линейной комбинации сами являются линейными функциями дополнительных метапризнаков объекта (например, числа доступных оценок пользователя), что позволяет учитывать контекстно-зависимые различия в качестве базовых моделей, сохраняя вычислительную простоту и интерпретируемость линейной регрессии.
С распространением градиентного бустинга (XGBoost, LightGBM, CatBoost) в 2010-х годах стекинг не был вытеснен этими методами, а стал их естественным дополнением: в современных соревнованиях по анализу данных и в системах AutoML стекинг часто применяется как финальный уровень ансамбля, комбинирующий разнородные модели — включая сами градиентные бустинги, случайные леса и нейронные сети.
Разновидности
- Блендинг (blending) — упрощённый вариант стекинга, в котором для получения обучающей выборки метамодели вместо перекрёстной проверки используется единственное разбиение на обучающую и отложенную (валидационную) выборки. Это снижает вычислительные затраты, но использует меньше данных для обучения метамодели и потенциально даёт менее устойчивую оценку. Термин закрепился благодаря соревнованию Netflix Prize.
- Многоуровневый (глубокий) стекинг — обобщение схемы на несколько последовательных уровней метамоделей, каждая из которых обучается на предсказаниях предыдущего уровня; концептуально близко к архитектуре глубоких многослойных моделей, хотя, в отличие от нейронной сети, уровни стекинга обычно нельзя обучать сквозным градиентным спуском и каждый уровень строится последовательно.
- Стекинг с распределениями вероятностей и многовыходной регрессией — вариант для задач классификации, в котором на вход метамодели подаются не метки классов, а полные распределения вероятностей, предсказанные базовыми классификаторами; предложен Тингом и Уиттеном.
- Super Learner — теоретически обоснованная версия стекинга с ограничением весов выпуклой комбинацией и минимизацией кросс-валидационного риска:
где — функция потерь, а
.
- Feature-Weighted Linear Stacking (FWLS) — расширение линейного стекинга, в котором веса базовых моделей зависят от дополнительных метапризнаков объекта; предложено Силлом и соавторами в контексте задачи рекомендательных систем.
- Регуляризованный стекинг — применение регуляризации (гребневая регрессия, лассо, эластичная сеть) на уровне метамодели для дополнительного контроля переобучения, особенно при большом числе сильно коррелированных базовых моделей.
Сравнение с другими методами ансамблевого обучения
Стекинг принципиально отличается от других распространённых методов ансамблевого обучения способом объединения моделей:
- Бэггинг (bootstrap aggregating) обучает однотипные модели на случайных подвыборках (бутстрэп-выборках) и усредняет их предсказания с равными весами; цель — снижение дисперсии.
- Бустинг (например, AdaBoost, градиентный бустинг) строит модели последовательно, каждая следующая модель корректирует ошибки предыдущих; цель — снижение смещения.
- Стекинг обычно комбинирует разнородные (гетерогенные) модели, обученные независимо друг от друга, а веса или правило объединения подбираются отдельной обучаемой метамоделью, а не фиксируются заранее.
При этом эмпирические исследования показывают, что выгода от стекинга не гарантирована: как отмечали Джерошки и Женко, наивные схемы стекинга иногда работают не лучше, чем простой выбор наилучшей отдельной модели по кросс-валидации, и требуют тщательного выбора типа метамодели и признаков для получения устойчивого выигрыша.
Достоинства и недостатки
Достоинства:
- Позволяет автоматически (по данным) находить оптимальный способ комбинирования разнородных моделей, а не полагаться на равные веса.
- Часто даёт заметный прирост качества предсказания в задачах, где доступно несколько независимо разработанных моделей с различающимися ошибками.
- Гибкость: базовыми моделями и метамоделью могут быть алгоритмы произвольной природы.
Недостатки:
- Существенно более высокая вычислительная стоимость обучения (необходимость многократного переобучения базовых моделей в рамках кросс-валидации) и инференса (необходимость запуска всех базовых моделей).
- Повышенный риск переобучения при неаккуратной реализации схемы кросс-валидации (утечка данных) или при избыточно гибкой метамодели.
- Снижение интерпретируемости итогового предсказания по сравнению с одной моделью.
- Прирост качества не гарантирован и существенно зависит от разнообразия и качества базовых моделей.
Применение
Стекинг широко используется в соревнованиях по анализу данных, наиболее известный ранний пример — конкурс Netflix Prize (2006–2009), где команды-победители применяли блендинг десятков и сотен моделей коллаборативной фильтрации. С тех пор стекинг стал стандартным инструментом финальных решений на платформе Kaggle и в системах AutoML (например, auto-sklearn, H2O AutoML), где он часто применяется как последний уровень ансамбля поверх градиентного бустинга, случайных лесов и нейронных сетей. Теоретически обоснованная версия стекинга — Super Learner — применяется для построения оптимальных предиктивных моделей в задачах, где требуется гарантированная асимптотическая оптимальность выбора комбинации алгоритмов.
См. также
- Ансамблевое обучение
- Бэггинг
- Бустинг
- Кросс-валидация
- Метаобучение
- Переобучение
- Смещение и разброс
- Случайный лес
- Градиентный бустинг
- AutoML
Литература
- Wolpert D. H. Stacked generalization // Neural Networks. — 1992. — Vol. 5, № 2. — P. 241–259. — DOI:10.1016/S0893-6080(05)80023-1.
- LeBlanc M., Tibshirani R. Combining estimates in regression and classification // Journal of the American Statistical Association. — 1996. — Vol. 91, № 436. — P. 1641–1650.
- Breiman L. Stacked regressions // Machine Learning. — 1996. — Vol. 24, № 1. — P. 49–64. — DOI:10.1007/BF00117832.
- Ting K. M., Witten I. H. Stacked generalization: when does it work? // Proceedings of the 15th International Joint Conference on Artificial Intelligence (IJCAI-97). — 1997. — P. 866–873.
- Ting K. M., Witten I. H. Issues in stacked generalization // Journal of Artificial Intelligence Research. — 1999. — Vol. 10. — P. 271–289. — DOI:10.1613/jair.594.
- Džeroski S., Ženko B. Is combining classifiers with stacking better than selecting the best one? // Machine Learning. — 2004. — Vol. 54, № 3. — P. 255–273. — DOI:10.1023/B:MACH.0000015881.36452.6e.
- van der Laan M. J., Polley E. C., Hubbard A. E. Super learner // Statistical Applications in Genetics and Molecular Biology. — 2007. — Vol. 6, № 1, Article 25. — DOI:10.2202/1544-6115.1309.
- Polley E. C., van der Laan M. J. Super learner in prediction // U.C. Berkeley Division of Biostatistics Working Paper Series. — 2010. — Working Paper 226.
- Sill J., Takács G., Mackey L., Lin D. Feature-Weighted Linear Stacking. — 2009. — arXiv:0911.0460.
- Koren Y. The BellKor solution to the Netflix Grand Prize. — 2009.
- Töscher A., Jahrer M. The BigChaos solution to the Netflix Grand Prize. — 2009.

