Стекинг

Материал из MachineLearning.

Версия от 15:12, 5 июля 2026; Gadel Mahmutov (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Статья написана с использованием LLM Claude Sonnet 5 и проверена участником Gadel Mahmutov 19:12, 5 июля 2026 (MSD)


Сте́кинг (от англ. stacking — «стопка», «наслаивание»; также стекинг обобщений, англ. stacked generalization) — метод ансамблевого обучения, при котором прогнозы нескольких базовых моделей (базовых алгоритмов, level-0 моделей) используются в качестве входных признаков для обучения дополнительной модели более высокого уровня (метамодели, level-1 модели, комбинатора), которая учится оптимально объединять их предсказания. В отличие от простого усреднения или голосования, веса или функция объединения в стекинге не задаются заранее, а оцениваются по данным, что позволяет учитывать сильные и слабые стороны каждой базовой модели.

Стекинг был впервые предложен Дэвидом Уолпертом в 1992 году как схема для минимизации ошибки обобщения одного или нескольких обобщающих алгоритмов, работающая путём выявления смещений этих алгоритмов относительно обучающей выборки. Метод относится к семейству методов метаобучения и широко применяется в прикладном анализе данных и соревнованиях по машинному обучению (например, Kaggle).

Содержание

Мотивация

Ни одна отдельная модель машинного обучения не является универсально наилучшей для всех задач и наборов данных — это следствие идей, близких к теореме «no free lunch»: разные алгоритмы (например, линейная регрессия, метод ближайших соседей, деревья решений или нейронные сети) делают разные предположения о структуре данных и, соответственно, ошибаются по-разному. Если ошибки разных моделей не полностью коррелированы, их можно скомпенсировать, объединив предсказания. Простейшие способы объединения — усреднение (бэггинг) или взвешенное голосование — используют фиксированные или эвристически подобранные веса. Стекинг обобщает эту идею: вместо заранее заданного правила объединения задача «научиться комбинировать» решается ещё одной обучаемой моделью.

Уолперт описывал эту идею как попытку «исправить» систематические ошибки (смещения) отдельных генерализаторов: метод строит второе пространство признаков, входами которого служат предсказания исходных моделей, обученных на части обучающей выборки, а выходом — истинный ответ на оставшейся части. Таким образом, метамодель обучается не на исходных признаках объекта, а на прогнозах базовых моделей, что позволяет ей выявлять систематические закономерности в их ошибках.

Формальное описание

Пусть имеется обучающая выборка \{(x_i, y_i)\}_{i=1}^n и набор из M базовых моделей (алгоритмов level-0) f_1, f_2, \ldots, f_M, каждая из которых обучается предсказывать целевую переменную y по вектору признаков x. Итоговое предсказание стекинга задаётся в виде

\hat{y}(x) = g\big(f_1(x), f_2(x), \ldots, f_M(x)\big),

где g — метамодель (алгоритм level-1), обучаемая на векторах предсказаний базовых моделей.

Проблема утечки информации и кросс-валидация

Наивный подход — обучить базовые модели на всей обучающей выборке, получить их предсказания на этой же выборке и на них обучить метамодель — приводит к переобучению: метамодель будет ориентироваться на переобученные (слишком «уверенные») предсказания базовых моделей, а не на их истинную обобщающую способность. Это частный случай более общей проблемы утечки данных. Чтобы избежать её, Уолперт предложил использовать схему, аналогичную кросс-валидации, — когда предсказания базовых моделей для обучения метамодели получаются на данных, не участвовавших в обучении соответствующей базовой модели.

На практике для этого чаще всего применяется K-блочная перекрёстная проверка:

  1. Обучающая выборка случайным образом делится на K непересекающихся блоков (фолдов).
  2. Для каждого блока k все базовые модели обучаются на оставшихся K-1 блоках, после чего делают предсказания для объектов блока k. Эти предсказания называют внеблочными (out-of-fold, OOF).
  3. Собранные по всем блокам OOF-предсказания z_{i,m} = f_m^{(-k(i))}(x_i) образуют новую обучающую выборку размера n \times M, на которой обучается метамодель g.
  4. Финальные базовые модели переобучаются на всей исходной выборке; их предсказания на новых объектах подаются на вход уже обученной метамодели g для получения итогового прогноза.

В качестве метамодели g часто используют простые модели — линейную или логистическую регрессию, реже — более гибкие алгоритмы (случайный лес, градиентный бустинг), поскольку избыточно сложная метамодель повышает риск переобучения на относительно небольшой выборке OOF-предсказаний.

Ограничение на неотрицательность весов

Если метамодель линейна, g(z) = \sum_{m=1}^M \alpha_m z_m, то естественный способ её обучения — метод наименьших квадратов. Лео Брейман показал, что использование кросс-валидационных данных и метода наименьших квадратов с ограничением на неотрицательность коэффициентов позволяет получать линейные комбинации предикторов с улучшенной точностью прогноза:

\hat{\alpha} = \arg\min_{\alpha_m \geq 0,\, m=1,\ldots,M} \sum_{i=1}^n \left(y_i - \sum_{m=1}^M \alpha_m z_{i,m}\right)^2.

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

История

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 — теоретически обоснованная версия стекинга с ограничением весов выпуклой комбинацией и минимизацией кросс-валидационного риска:

\hat{\alpha} = \arg\min_{\alpha \in \Delta_M} \sum_{i=1}^n L\!\left(y_i, \sum_{m=1}^M \alpha_m z_{i,m}\right),

где Lфункция потерь, а \Delta_M = \{\alpha \in \mathbb{R}^M: \alpha_m \geq 0,\ \sum_m \alpha_m = 1\}.

  • Feature-Weighted Linear Stacking (FWLS) — расширение линейного стекинга, в котором веса базовых моделей зависят от дополнительных метапризнаков объекта; предложено Силлом и соавторами в контексте задачи рекомендательных систем.
  • Регуляризованный стекинг — применение регуляризации (гребневая регрессия, лассо, эластичная сеть) на уровне метамодели для дополнительного контроля переобучения, особенно при большом числе сильно коррелированных базовых моделей.

Сравнение с другими методами ансамблевого обучения

Стекинг принципиально отличается от других распространённых методов ансамблевого обучения способом объединения моделей:

  • Бэггинг (bootstrap aggregating) обучает однотипные модели на случайных подвыборках (бутстрэп-выборках) и усредняет их предсказания с равными весами; цель — снижение дисперсии.
  • Бустинг (например, AdaBoost, градиентный бустинг) строит модели последовательно, каждая следующая модель корректирует ошибки предыдущих; цель — снижение смещения.
  • Стекинг обычно комбинирует разнородные (гетерогенные) модели, обученные независимо друг от друга, а веса или правило объединения подбираются отдельной обучаемой метамоделью, а не фиксируются заранее.

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

Достоинства и недостатки

Достоинства:

  • Позволяет автоматически (по данным) находить оптимальный способ комбинирования разнородных моделей, а не полагаться на равные веса.
  • Часто даёт заметный прирост качества предсказания в задачах, где доступно несколько независимо разработанных моделей с различающимися ошибками.
  • Гибкость: базовыми моделями и метамоделью могут быть алгоритмы произвольной природы.

Недостатки:

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

Применение

Стекинг широко используется в соревнованиях по анализу данных, наиболее известный ранний пример — конкурс Netflix Prize (2006–2009), где команды-победители применяли блендинг десятков и сотен моделей коллаборативной фильтрации. С тех пор стекинг стал стандартным инструментом финальных решений на платформе Kaggle и в системах AutoML (например, auto-sklearn, H2O AutoML), где он часто применяется как последний уровень ансамбля поверх градиентного бустинга, случайных лесов и нейронных сетей. Теоретически обоснованная версия стекинга — Super Learner — применяется для построения оптимальных предиктивных моделей в задачах, где требуется гарантированная асимптотическая оптимальность выбора комбинации алгоритмов.

См. также

Литература

  • 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.
Личные инструменты