Что такое штабелирование?

Стекинг - один из трех широко используемых методов ансамбля в машинном обучении и его приложениях. Общая идея стекирования состоит в том, чтобы обучить несколько моделей, обычно с разными типами алгоритмов (также называемых базовыми учащимися), на данных поезда, а затем вместо того, чтобы выбирать лучшую модель, все модели агрегируются / передаются с использованием другой модели (мета-ученик ), чтобы сделать окончательный прогноз. Входные данные для метаученика - это результаты прогнозирования базовых учеников.

Как тренироваться?

Обучение модели стекирования немного сложно, но не так сложно, как кажется. Все, что для этого требуется, - это несколько шагов, аналогичных k-кратной перекрестной проверке. Прежде всего, разделите исходный набор данных на два набора: набор для обучения и набор для тестирования. Мы даже не будем касаться Test Set в процессе обучения модели Stacking. Теперь нам нужно разделить набор Train на k (скажем, 10) складок. Если исходный набор данных содержит N точек данных, то каждая свертка будет содержать N / k точек данных. (иметь складки одинакового размера не обязательно.)

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

Затем спрогнозируйте значение оставшейся складки (10-й раз), используя все обученные модели M. Таким образом, это приведет к количеству M прогнозов для каждой точки данных в 10-м кратном. Теперь у нас есть N / 10 наборов точек данных (наборов прогнозов), каждый с количеством полей M (прогнозы, полученные из числа моделей M). то есть: матрица с N / 10 * M.

Теперь повторите описанный выше процесс, изменив неактивную складку (с 1 на 10). В конце всех итераций у нас будет N наборов результатов прогнозирования, которые соответствуют каждой точке данных в исходном обучающем наборе, а также фактическое значение поля, которое мы прогнозируем.

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

Прогнозирование

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