Растущее число моделей машинного обучения (ML), развернутых в производственной среде, привело к тому, что i.i.d.* стал еще одним примером принятия желаемого за действительное. Мир меняется. Данные меняются. Однако модели ML остаются прежними. Они не адаптируются автоматически (пока). Чтобы принять правильное решение о том, когда и как адаптировать модель, вам необходимо отслеживать изменения данных, которые влияют на вашу модель.

В этой серии из трех статей я рассмотрю основные типы изменения данных (дрейф данных), их влияние на целевое распределение и производительность модели. Я делюсь выводами, которые я узнал и помог развить в качестве исследователя методов обнаружения дрейфа данных и оценки производительности в NannyML. Итак, если вы не слышали о ковариантном сдвиге, сдвиге концепций и сдвиге ярлыков — вы в хороших руках. Если вы уже много раз о них читали — это даже лучше, держу пари, вам будет интересно.

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

Концепции и идеи в этой статье описаны с учетом бинарной классификации. Мы часто будем ссылаться на пример предсказания кредитного дефолта. Это упрощает описание и помогает развить интуицию. При правильном понимании эти концепции можно обобщить на другие задачи.

*i.i.d — предположение, что входные данные представляют собой независимый и одинаково распределенный набор случайных величин.

Даата Дрифт

Дрейф данных — это любое изменение в совместном распределении вероятностей входных переменных и целей (обозначается как P(X,Y)) [1]. За этим простым определением скрывается много сложностей.

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

Существуют различные типы дрейфа данных, в зависимости от типа изменения, которое происходит в этом совместном распределении вероятностей, и причинно-следственной связи между входными данными и целями.

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

Ковариативный сдвиг

Что это на самом деле

Ковариата — это просто другое название входной переменной (или функции) модели.

Таким образом, чистый ковариативный сдвиг представляет собой изменение совместного распределения вероятностей входных переменных при условии, что условная вероятность целевых заданных входных данных остается неизменной [1].

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

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

Правило продукта

Это хорошее место, чтобы ввести широко используемое уравнение правила вероятностного произведения:

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

Начнем с термина P(Y|X) — это условная вероятность целей при заданных входных данных. Он представляет собой истинную вероятностную связь между входными данными и целями. Мы называем это концепцией. Это то, что модели машинного обучения изучают на основе данных.

Например: обученный классификатор sklearn содержит представление изученной концепции, которая сопоставляет входные данные с ожидаемыми целевыми вероятностями с помощью метода predict_proba. В общем виде его можно представить как распределение целей при заданном распределении входов. В случае бинарной классификации P(Y|X) можно представить как две гиперповерхности по всему входному пространству. Это сложно. Давайте построим нашу интуицию снизу вверх.

Имея в виду вариант использования кредитного дефолта, рассмотрим только одно наблюдение — одного заявителя на получение кредита, описанного набором входных функций m:

Давайте также сосредоточимся на одном целевом значении: Y = 1. Теперь термин понятия становится:

и представляет собой вероятность невыполнения обязательств для определенного набора входных данных (заявитель). Это одно число, скаляр, например 0,2. Давайте еще больше упростим и представим, что наша модель имеет только одну входную функцию, поэтому X равно 1d. Теперь у нас есть P(Y = 1|X = x₁), который по-прежнему является скаляром. Однако P(Y = 1|X) теперь является кривой — она выражает вероятность невыполнения обязательств для всех возможных значений x. Мы можем легко представить и построить это:

На секунду забудем о распределении входных данных и сосредоточимся только на цели, то есть на P(Y). Давайте на время опустим упрощение Y=1. Для бинарной классификации цель может принимать два значения: 0 или 1. Вероятность увидеть одно значение определяет вероятность увидеть другое — если у нас есть 20% вероятность увидеть 1, то это означает, что у нас есть 80% вероятность увидеть 0. Теперь , для выбранного наблюдения вероятность целей с учетом входных данных становится парой скаляров:

Для 1d ввод P(Y|X) — это две кривые в диапазоне x, для 2d — две поверхности в области, созданной xи x₂, а для 3 и более — P(Y|X) две гиперповерхности по всему входному пространству.

Надеюсь теперь стало понятно. В остальной части текста мы в большинстве случаев будем придерживаться предположения Y = 1, поскольку оно упрощает работу без потери информации.

Теперь другой термин — P(X).

Это, я думаю, проще — это просто совместное многомерное распределение вероятностей всех входных переменных/признаков. Если вход является категориальной (дискретной) переменной, это вероятность каждой категории или функция массы вероятности (PMF). Для непрерывного ввода мы можем упростить и представить это как функцию плотности вероятности (PDF), хотя это не совсем правильно*.

Мы можем визуализировать оба:

*Для PMF вероятность увидеть конкретное дискретное значение определяется так,
PMF(x = x₁) = P(X = x₁), что является скаляром. Для непрерывной переменной понятие вероятности существует только в диапазонах X, поэтому P(x₁ ‹ X ‹ x₁ + dx) является интегралом от PDF(X) в диапазоне от x₁ до x₁+ dx.

Величина ковариантного сдвига

С основами разобрались, давайте вернемся к ковариатному сдвигу. В чистом ковариативном сдвиге понятие P(Y|X) остается прежним, в то время как распределение вероятностей входных данных P(X) изменяется. Это вызывает изменение P(Y,X), которое, как мы уже упоминали, является совместным распределением вероятностей входных данных и целей.

Давайте поговорим на примерах.

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

  • 30% низкий,
  • 50% средний,
  • 20% соискателей с высоким доходом.

А теперь представьте, что экономика становится лучше, а соискателей с низким доходом становится меньше. Теперь у нас есть:

  • 10% низкий,
  • 70% средний,
  • 20% соискателей с высоким доходом.

Это можно визуализировать:

Первый естественный вопрос, который нужно задать, — как выразить величину ковариатного сдвига? Интуитивная и легко интерпретируемая мера представляет собой сумму абсолютных разностей P(X) для каждого из i классов:

или в общем случае — абсолютная разница между входными распределениями:

Разница умножается на 1/2, чтобы избежать повторного измерения одного и того же изменения (если одна из категорий уменьшилась на 0,1, другие категории должны были увеличиться на 0,1 — если мы посчитаем обе, общее изменение составит 0,2, но интуиция подсказывает, что фактическое изменение равно 0,1). В качестве побочного эффекта результат попадает в диапазон от 0 до 1: 0 означает, что ничего не изменилось, а 1 означает, что между эталонными и сдвинутыми данными вообще нет перекрытия. В нашем случае это будет:

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

Влияние ковариантного сдвига на целевое распределение

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

  • P(Y = 1| X = низкий доход) = 0,3,
  • P(Y = 1| X = средний доход) = 0,1,
  • P(Y = 1| X = высокий доход) = 0,05.

Показ всей истории в одном сюжете сейчас:

Давайте на секунду забудем о ковариантном сдвиге и посмотрим только на базисный период. Какова общая вероятность того, что заявитель с низким доходом не выполнит свои обязательства? Правило продукта в помощь.

Это P(Y = 1| X = низкий доход), умноженное на P(X = низкий доход) = 0,3 × 0,3 = 0,09. Это означает, что в справочных данных мы наблюдаем дефолт 9% малообеспеченных клиентов. Для соискателей со средним и высоким доходом это соответственно 5% и 1%. Это наше начальное целевое распределение по отношению к вводу. Теперь, после ковариантного сдвига, это становится:

  • 0,3 × 0,1 = 0,03 для низкого
  • 0,1 × 0,7 = 0,07 для среды,
  • 0,05 × 0,2 = 0,01 для компаний с высоким доходом.

Итак, до сих пор мы применяли правило продукта для эталонного распределения входных данных и смещенного распределения входных данных, сохраняя при этом ту же концепцию:

Теперь мы можем сравнить эти два и суммировать изменения в категориях:

  • падение с 0,09 до 0,03 в группе с низким доходом,
  • увеличение с 0,05 до 0,07 в среднем доходе,
  • без изменений в группе с высоким доходом.

Снова зарисовка:

Эти рассчитанные различия можно использовать в качестве меры эффекта сдвига ковариации на целевое распределение. Абсолютная величина этого эффекта для бинарной классификации:

Or:

Для нашего примера это:

Интерпретация заключается в том, что 8% целей изменили свое ожидаемое значение из-за ковариатного сдвига либо с 0 на 1, либо с 1 на 0. Мы также можем рассчитать изменение направления (не абсолютное):

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

Влияние ковариантного сдвига на производительность

Мы уже обсуждали влияние ковариантного сдвига на бизнес — среди соискателей меньше людей с низким доходом и меньше соискателей, не выполнивших свои обязательства в целом. Хорошо это или плохо — это зависит от вещей, связанных с бизнесом (таких как бизнес-цели, зависимость прибыльности кредитов от дохода заявителей и вероятности дефолта и т. д.). модели. Давайте посмотрим на следующий сюжет:

С учетом всех соображений мы предполагаем, что наша модель действительно является вероятностной и возвращает хорошо откалиброванные вероятности (это означает, что среди заявителей, вероятность дефолта по кредиту которых оценивалась в 10%, 10% не выполнит обязательства). При таком допущении концепция, которую мы видим на оси X, равна вероятности, предсказанной нашей моделью. На оси Y мы видим, какова доля конкретных прогнозов (которая равна доле входных данных, для которых концепция сопоставляет их с конкретной вероятностью для класса 1, следовательно, P(X)).

Мы видим, что из-за ковариатного сдвига мы будем чаще прогнозировать вероятность 0,1 по сравнению с базовым периодом, тогда как прогноз 0,3 будет менее вероятным. В этом случае модель улучшится по большинству показателей, обычно используемых для бинарной классификации (точность, f1, ROC AUC и т. д.). Почему именно? Потому что у нас меньше прогнозов из области с высокой неопределенностью (близко к 0,5) и больше из области с низкой неопределенностью (близко к 0 и 1). Поскольку подробное объяснение этого не является целью этого (уже слишком длинного и становящегося длиннее) сообщения в блоге, ознакомьтесь с дополнительной информацией здесь, если вы не уверены.

В любом случае, ковариативный сдвиг улучшил нашу модель — это здорово, но можем ли мы просто наслаждаться удачей и ничего не делать? Не совсем. Теоретически при чистом ковариативном сдвиге производительность модели нельзя улучшить за счет переобучения, потому что концепция, усвоенная моделью, осталась прежней. Однако на самом деле мы просто получили больше данных из определенного региона во входном пространстве. Может оказаться, что этот регион ранее был недопредставлен, и концепция, изученная нашей моделью, может быть улучшена там. Определенно стоит исследовать. Другое дело, что ковариативный сдвиг может предвещать скорое изменение концепции*.

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

*Хорошо, ты меня понял — может, а может и нет. Я хотел представить немного драмы. Интуиция, однако, такова, что когда наблюдаемые данные меняются, мы ожидаем, что ненаблюдаемые данные могут измениться — так же, как и в мире, в котором мы живем, все влияет на все в некотором смысле, поэтому, если что-то меняется, мы ожидаем, что другое рано или поздно изменится. позже. А изменение ненаблюдаемых данных, причинно связанных с целью, — это сдвиг концепции. Мы объясним это позже.

Тот же анализ для непрерывного ввода

У нас проанализирован один категориальный вход, давайте посмотрим, что происходит с непрерывной переменной.

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

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

Теперь только величина ковариатного сдвига становится:

Мы можем ясно показать интеграл на графике:

Расчетное значение для нашего случая равно 0,38. Что это значит? Обратите внимание на порог в 90 тыс. евро, где пересекаются два PDF-файла. После ковариативного сдвига в диапазоне 90 000 евро меньше людей, а в диапазоне >90 000 евро больше. Ровно 38% заявителей перешли из диапазона 90 000 € в диапазон 90 000 €.

Теперь давайте примем во внимание концепцию и рассчитаем абсолютное влияние чистого ковариатного сдвига на целевое распределение.

Обозначая понятие P(Y = 1|X) как c(x), мы имеем:

Направленный эффект прост:

Подынтегральные выражения можно изобразить:

Абсолютные и направленные эффекты имеют точно такое же значение, как и в случае категориальной переменной. Давайте сосредоточимся на направленном эффекте, поскольку он показывает полную картину (график справа).

Мы видим, что в диапазоне 0–90 тыс. €/год влияние ковариатного сдвига на целевое распределение отрицательно. Это ожидаемо — в результате увеличения дохода стало относительно меньше заявителей с доходом в этом диапазоне, поэтому мы будем наблюдать меньше людей, не выполняющих обязательства в диапазоне от 0 до 90 тысяч евро в год. С другой стороны, количество заявителей с доходом > 90 тыс. евро в год увеличилось, и мы будем наблюдать больше людей, не выполняющих свои обязательства в этой группе. В конце дня отрицательный эффект сильнее (краснаяобласть больше, чем зеленая) из-за более высоких значений концепции в диапазоне отрицательного эффекта. Доля заявителей, не выполнивших свои обязательства, снизится ровно на 6,9% (согласно расчету с использованием интеграла по направлениям).

Когда дело доходит до влияния ковариативного сдвига на показатели производительности модели, как и в категориальном случае, модель улучшилась из-за ковариативного сдвига, поскольку относительно больше прогнозов из областей с более низкой неопределенностью:

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

Краткое содержание

Вспомним все меры ковариатного сдвига, которые мы ввели:

  1. Чистый ковариативный эффект сдвига, который не принимает во внимание концепцию. Он говорит о том, насколько серьезен сам по себе сдвиг ковариации,

‍2. Абсолютное и направленное влияние ковариатного сдвига на целевое распределение. Первый сообщает долю затронутых целей, второй указывает направление изменения (влияние на баланс классов):

‍То, что здесь описано, является частью исследования, в котором я участвовал в NannyML. Некоторые из них не взяты из рецензируемых статей, поэтому я могу ошибаться здесь и там (ну, рецензируемые статьи тоже могут ошибаться). Дайте мне знать, если вы найдете какие-либо ошибки в этом рассуждении. Исследуйте связанный блокнот, чтобы проверить результаты самостоятельно.

Рекомендации

[1]: Морено-Торрес, Дж. Г., Редер, Т., Алаис-Родригес, Р., Чавла, Н., и Эррера, Ф. (2012). Единый взгляд на изменение набора данных в классификации. Распознавание образов, 45, 521–530.

Изображение на обложке: Утарайте, Н. (2021). Вот 18 фотографий, показывающих современные породы собак по сравнению с обычными. 100 лет назад. Скучнопанда. https://www.boredpanda.com/dog-breds-100-years-ago-and-today

Прочтите часть II серии блогов — Понимание изменений в распределении данных в машинном обучении (Часть II): изменение концепции

Прочтите часть III серии блогов — Понимание сдвигов в распределении данных в машинном обучении (часть III): взаимодействие между ковариантой и изменением концепции