Стэкинг

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

Перейти к: навигация, поиск
Статья написана с использованием LLM OpenAI GPT-5.5 и проверена участником Georgii Maiorov 17:51, 18 июля 2026 (MSD)


Содержание

Стэкинг

Стэкинг (англ. stacking, stacked generalization) — метод ансамблевого обучения, в котором несколько различных моделей совместно используются для решения одной задачи, а их предсказания объединяются с помощью дополнительной модели, называемой метамоделью. В отличие от простого усреднения предсказаний, метамодель обучается автоматически определять, каким базовым моделям следует доверять в различных областях пространства признаков.

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

Основная идея

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


f_1(x),\;f_2(x),\;\ldots,\;f_m(x),

называемых базовыми моделями.

Каждая из них формирует собственное предсказание


z_i=f_i(x).

Полученный вектор


z=(z_1,\ldots,z_m)

используется как вход для новой модели


g(z),

которая называется метамоделью или моделью второго уровня.

Итоговое предсказание имеет вид


\hat y=g(f_1(x),\ldots,f_m(x)).

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

Почему стэкинг работает

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

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

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

Обучение метамодели

Наиболее важной особенностью стэкинга является способ формирования обучающей выборки для метамодели.

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

Чтобы избежать этой проблемы, используют кросс-валидацию.

Пусть обучающая выборка разбита на K блоков.

Для каждого блока выполняются следующие действия:

  1. базовые модели обучаются на остальных K-1 блоках;
  2. выполняется прогноз для оставшегося блока;
  3. полученные прогнозы сохраняются.

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

Именно OOF-предсказания используются в качестве признаков при обучении метамодели.

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

Алгоритм

Типичная схема обучения стэкинга состоит из следующих этапов.

  1. Выбирается несколько различных базовых моделей.
  2. С помощью кросс-валидации строятся out-of-fold предсказания каждой модели.
  3. Из полученных предсказаний формируется новая обучающая выборка.
  4. На этой выборке обучается метамодель.
  5. Базовые модели переобучаются на всей обучающей выборке (либо на этапе тестирования усредняются прогнозы $K$ моделей, обученных во время кросс-валидации).
  6. При прогнозировании для нового объекта вычисляются предсказания всех базовых моделей (или их усредненные фолдовые предсказания), после чего они передаются в качестве признаков метамодели.

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

Метод Основная идея Объединение моделей
Бэггинг Независимое обучение моделей на различных выборках Усреднение или голосование
Бустинг Последовательное обучение моделей с исправлением ошибок предыдущих Взвешенная сумма моделей
Стэкинг Совместное использование различных моделей Обучаемая метамодель

Главное отличие стэкинга заключается в том, что правило объединения моделей не задаётся заранее, а извлекается из данных в процессе обучения.

Преимущества

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

Недостатки

  • высокая вычислительная стоимость обучения;
  • более сложная реализация по сравнению с другими ансамблями;
  • необходимость аккуратного построения out-of-fold предсказаний;
  • риск переобучения при неправильном обучении метамодели.

Практическое применение

Стэкинг широко используется в задачах классификации, регрессии и ранжирования.

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

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

См. также

Литература

  1. Wolpert D. H. Stacked Generalization. Neural Networks, 1992.
  2. Breiman L. Stacked Regressions. Machine Learning, 1996.
  3. Hastie T., Tibshirani R., Friedman J. The Elements of Statistical Learning. Springer, 2009.
  4. Bishop C. M. Pattern Recognition and Machine Learning. Springer, 2006.