Ваша модель постоянно работает так, как ожидалось?

Вот история

Итак, вы построили и развернули свою модель. Будь то простая логистическая регрессия, SVM, случайный лес или печально известное глубокое обучение.

Бизнес-пользователи также рады видеть его влияние. Независимо от того, удерживает ли он клиентов с помощью новых персонализированных и целевых кампаний, увеличения объемов транзакций и продаж за счет дополнительных/перекрестных продаж или любых KPI, которые вы обещали достичь, это может быть.

Поздравляю.

Первые пару месяцев все шло отлично.

Затем вы вдруг проверяете информационную панель/отчеты компании, что внезапно KPI возвращаются к своему состоянию до модели или, возможно, к худшему. Заинтересованные стороны бомбардируют ваши push-уведомления, требуя ответов. Они ставят под сомнение производительность вашей модели.

Что случилось?

Наиболее распространенные объяснения:

  1. Ваша модель переоснащена. Возможно, он не принял во внимание некоторые ключевые факторы, такие как сезонность. Возможно, вы неправильно выбрали данные.
  2. Поздний выпуск данных. Возможно, у балансировщиков нагрузки был сбой, из-за которого система не обновляла данные целый день. Таким образом, либо последние отчеты неточны, либо модель сделала вывод на основе неполных данных. Просто выполните count(*) для рассматриваемых таблиц и передайте их группе ИТ/инженеров данных. Или, может быть…
  3. Сами данные изменились.

Что означает смещение данных?

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

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

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

Все это внешние факторы. А внутренние?

Ну, это определенно дело ваших компаний. Изменение политики/управления. Бизнес растет / теряет больше денег, чем зарабатывает в целом, поэтому появляются новые продукты / сокращения. Возможно, они запустили новый вариант продукта, который очень уникален по сравнению с существующими. Или ваши звездные сотрудники ритейла в течение 10 лет уволились/ушли на пенсию/наконец-то сразу использовали отпускные, а клиентам не нравится сервис замен.

Можно ли этого избежать? Да. Если ваш бизнес фиксирует все эти события в хранилище данных. Что, как вы понимаете, если вы работали в какой-либо компании, чрезвычайно сложно и дорого. Итак, вам остается делать то, что у вас есть.

Вот почему очень важно внедрить практику мониторинга модели ДО того, как будут отправлены результаты. Каждый раз, когда модель делает выводы на основе последних данных, вам нужно следить за этими изменениями данных, прежде чем результаты будут переданы бизнес-пользователям. Если все хорошо, то результаты могут быть взорваны. Если нет, и в зависимости от серьезности, вы можете легко исправить это быстро или привлечь внимание к тому, что произошло что-то другое, ТАК ЖЕ как измеримое доказательство.

Как вы можете отправить измеримое доказательство того, что данные изменились?

Есть три простых способа сделать это:

  • Описательная статистика

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

  • Индекс стабильности населения (PSI)

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

Допустим, модель создает N классов/групп/категорий. Или это также может быть бинарная классификация, такая как отток, и в этом случае вы можете, например, взять вероятность оттока клиентов и разбить их на N равных или неравных групп. Например, 0–10% для группы 1, 11–20% для группы 2 и т. д. Это также может быть 0–50% для группы 1, 51–60% для группы 2 и т. д. Главное — последовательность на протяжении всего процесса. Определение этого бина также может потребовать некоторой деловой хватки, поскольку разные бины из одних и тех же данных и модели могут значительно повлиять на показатели мониторинга модели.

Просто подсчитайте, сколько обращений/клиентов попадает в эти группы как для обучающих данных, так и для последних. Возьмите процент от их соответствующих общих данных. Затем умножьте разницу между обучением (DT) и последними данными (DL) на натуральный логарифм DT/DL.

Это пример расчетов, можете попробовать воссоздать формулу в Excel.

Правило PSI:

  • Хотя бы один бин >20% — сдвиг данных определенно произошел. Переобучите модель. Если нет, то
  • Минимум один бин — 10–20% — требуется незначительное изменение. Вероятно, это приведет к небольшому падению производительности модели. Если нет, то
  • Менее 10 % — существенного сдвига данных нет. Продолжать

Мы видим, что в приведенном выше примере уже есть две группы, чей PSI составляет >20%. Поэтому нам нужно исследовать, что случилось с поведением нашего клиента, и переобучить модель.

Имейте в виду, что эти пороги не являются фиксированными. Это зависит от того, насколько вы и бизнес готовы терпеть изменения. Например, в ячейке 3 вы можете ясно видеть, что существует огромная разница в абсолютных числах, но PSI мал.

  • Характеристический индекс стабильности (CSI)

Если PSI определяет, есть ли сдвиг данных в популяции, то CSI должен определить, какие функции повлияли на это. Расчет в основном такой же, как и PSI. Разница лишь в том, что мы углубляемся в проблемные корзины (в приведенном выше примере группы 5, 8 и 9) и далее группируем их на основе функций.

Допустим, у вас есть 10 функций. Возраст. Месячные расходы. Непогашенные счета. Как бы там ни было. Сгруппируйте их в соответствующие группы и выполните те же расчеты, что и в PSI.

В приведенном ниже примере показан CSI для двух объектов для ячейки 8.

Из приведенного выше примера мы можем предположить, что для корзины 8 количество молодых клиентов увеличилось, а пожилых сократилось. Настолько, что это вызвало сдвиг в наших данных для этих корзин. Ваши ежемесячные расходы на эту группу также значительно сократились.

Ключевые выводы

Описательная статистика, PSI и CSI — очень простые и довольно эффективные показатели для мониторинга производительности вашей модели. Но одна вещь, которая лучше, чем эти показатели для определения того, изменились ли данные, — это понимание бизнеса и рынка, которое регулярно обновляется. Всегда будьте в курсе ваших бизнес-стратегий, рынка и потребностей клиентов.