ММООЗЗГГ.ru

Словарь ИИ

Что такое стекинг

Коротко

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

Машинное обучение · stacking

Михаил МозгПроверено: 1 минута чтения

Ребенку

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

Простыми словами

Сначала обучают несколько разных моделей, скажем, линейную, дерево и нейросеть. Каждая выдает свой прогноз. Затем эти прогнозы подают на вход второй модели, ее называют метамоделью. Она учится понимать, в каких ситуациях какой из первых моделей стоит доверять, и складывает их ответы с подходящими весами. Важная деталь: метамодель учат на прогнозах, которые первые модели сделали для примеров, не виденных ими при обучении. Иначе она поверит тому, кто просто запомнил ответы. Похоже на главного редактора, который давно знает своих авторов: одному доверяет в цифрах, другому в формулировках.

Для бизнеса

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

Для специалиста

Стекинг (stacking, stacked generalization) описал Вулперт (D. H. Wolpert) в журнале Neural Networks в 1992 году. Модели первого уровня (level-0) обучаются на исходных признаках, а их выходы, вероятности классов или числовые прогнозы, служат признаками для метамодели (level-1, final estimator). Чтобы метамодель не переобучилась на утечке, ее учат на предсказаниях вне выборки (out-of-fold): данные делят на k фолдов, каждую модель первого уровня обучают на k-1 частях и предсказывают оставшуюся, а для работы ее переобучают на всех данных. В scikit-learn так устроены StackingClassifier и StackingRegressor: они используют cross_val_predict, а в бинарной задаче отбрасывают один из двух столбцов вероятностей как коллинеарный. Метамоделью часто берут регуляризованную линейную модель, но допустим и бустинг; стеки можно вкладывать друг в друга. Вариант, где веса моделей зависят от метапризнаков, назван feature-weighted linear stacking (Sill и др., 2009). Стек часто не уступает сильнейшей из входящих в него моделей, но обучение заметно дороже.

Пример

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

Связанные термины

Вопросы и ответы

Чем стекинг отличается от простого усреднения?

При усреднении все модели получают равный или заранее заданный вес. Здесь веса и правила объединения подбирает отдельная обученная модель, поэтому она может доверять разным участникам в разных ситуациях.

Чем стекинг отличается от блендинга?

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

Источники

Где это применяют в компании

Не уверены, нужно ли это вашей компании?

Карта ИИ-решений
Написать в Telegram