Стэкинг
Алгоритм стэкинга (stacking [1]) реша ет задачу настройки ансамбля моделей
для общей ситуации, когда агрегирующая функция имеет свои собственные настраиваемые параметры.
Агрегирующей функции, помимо прогнозов базовых моделей, можно передавать и исходный вектор признаков . В результате получим следующую функцию предсказания:
В этом случае агрегирующая модель получит возможность по-разному использовать прогнозы базовых моделей в разных частях признакового пространства.
Базовые модели в стэкинге можно настраивать неточно, поскольку агрегирующая функция будет подправлять итоговый прогноз, учитывая ответы других моделей.
Линейный стэкинг
Простейшим примером выступает линейная комбинация базовых моделей с настраиваемыми весами .
Смещение включают, если агрегируются недообученные модели с систематическими смещениями. Если в базовых алгоритмах присутствуют переобученные модели, то они будут давать несмещенные прогнозы, и смещение можно не включать.
Настройка весов производится методом линейной регрессии, в которой признаками выступают не исходные признаковые описания объектов, а прогнозы базовых моделей.
При настройке базовых моделей и агрегирующей нельзя использовать одну и ту же обучающую выборку, иначе будет происходить переобучение!
Рассмотрим пример. Пусть среди базовых моделей присутствует алгоритм одного ближайшего соседа. Очевидно, на обучающей выборке он будет обеспечивать 100% точность, поскольку ближайшим соседом для прогнозируемых объектов обучающей выборки будут выступать они сами. Тогда, при обучении параметров базовой модели на той же обучающей выборке, всё внимание агрегирующей модели будет направлено на самую переобученную модель!
Правильная настройка стэкинга будет рассмотрена ниже.