ML Vault
All notes

Stacking

Используем модели для порождения новых признаков.
Частный случай — Blanding.

  1. Берем часть выборки, обучаем на ней M моделей (желательно разных)
  2. На другой части выборки прогоняем эти модели
  3. Предсказания этих моделей используем как новые признаки объектов (новое признаковое пространство)
  4. Обучаем модель на новом признаковом пространстве

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

  • На выборке A какая-то модель могла переобучиться и показывать там хорошие результаты, тогда если мы будем обучать итоговую модель на той же выборке A, есть риск, что переобученной модели дадут больший вес, а остальные модели начнут занулять, тогда смысл стекинга теряется

Желательно, чтобы M < N — количество моделей меньше количества изначальных фич, потому что расширяющее отображение это странно — больше информации, чем там было, мы не получим, но в некоторых случаях M > N может быть полезно.

На практике обычно не применяют
Возможные причины:

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