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

Идея стекирования моделей или мета-ансамбля проста: команда состоит не из слабых игроков, а из игроков с различными, часто не пересекающимися сильными сторонами, которые собраны вместе, чтобы сформировать единое целое, большее, чем любая из его частей. Этот же процесс можно применить для разработки общей модели, которая объединяет результаты различных моделей и использует их уникальные сильные стороны. Ключ здесь в разнообразии моделей; Комбинируя результаты аналогичных прогнозов, мало что можно получить. Если прогнозы не похожи, то возможно, что их агрегирование приведет к усреднению их ошибок так же, как это делают методы ансамбля, такие как Случайный лес и Бэггинг.

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

Хорошо, мы обучили нашу группу SKLearners, возможно, каждый подчеркивает сильные стороны другого алгоритма машинного обучения или другого подмножества доступной нам информации, но остается вопрос, как лучше всего их объединить. Самый простой доступный вариант - выполнить некоторую алгебраическую комбинацию результатов; мы могли бы взять среднее значение для регрессии или большинство голосов для классификации или взять наиболее надежный результат для вероятностного выхода. Эти решения экономичны и быстро внедряются, но не обязательно гарантируют повышение производительности.

Здесь вы можете увидеть решение Чон Юн-Ли, победившее на соревновании KDD Cup 2015 года, в котором реализовано три этапа суммирования. Этот подход использует результаты нашего первого стека моделей как функции для следующего стека. Эти функции являются выходными данными других моделей и не обязательно связаны с нашей реальной информацией или проблемой, поэтому мы можем рассматривать их как мета-функции, а процесс - как мета-ансамбль. Затем этот новый раунд моделей обучается находить наилучшую комбинацию начальных результатов для достижения нашего окончательного прогноза.

Стекирование моделей, конечно, сопряжено со своим собственным набором проблем: обучающие наборы должны быть подмножеством, обычно с использованием перекрестной проверки, тщательно, чтобы не столкнуться с утечкой данных; каждый дополнительный стек моделей привносит сложность и увеличивает стоимость решения проблемы с точки зрения производительности, времени и интерпретируемости; и опасность переобучения - это то, что необходимо учитывать при регуляризации в разных стеках. Даже в этом случае мета-ансамбль обеспечивает интересные преимущества для решения проблем, которые отдельные модели могут иметь проблемы с изучением. Как и любая другая концепция или алгоритм, это просто еще один инструмент, который современный специалист по данным должен учитывать при столкновении с проблемой.

Источники: