Stacking
Используем модели для порождения новых признаков.
Частный случай — Blanding.
- Берем часть выборки, обучаем на ней M моделей (желательно разных)
- На другой части выборки прогоняем эти модели
- Предсказания этих моделей используем как новые признаки объектов (новое признаковое пространство)
- Обучаем модель на новом признаковом пространстве
Можем несколько раз переходить из одного признакового пространства в другое, прям как со слоями в NN.
Почему важно разделять выборки для обучения моделей для перехода в новое пространство и для итоговой модели:
- На выборке A какая-то модель могла переобучиться и показывать там хорошие результаты, тогда если мы будем обучать итоговую модель на той же выборке A, есть риск, что переобученной модели дадут больший вес, а остальные модели начнут занулять, тогда смысл стекинга теряется
Желательно, чтобы M < N — количество моделей меньше количества изначальных фич, потому что расширяющее отображение это странно — больше информации, чем там было, мы не получим, но в некоторых случаях M > N может быть полезно.
На практике обычно не применяют
Возможные причины:
- Может быть дорого вычислительно
- модель получается сложной, а прирост по сравнению с более простыми моделями обычно не очень большой, поэтому стекинг чаще применяется в соревнованиях на kaggle, где нужно построить не хорошую модель, а лучшую