Настройка модели мошенничества с платежными картами - точность, отзыв и точность

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

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

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

Проблема:

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

Сценарий 1:

  • Ваш руководитель просит вас построить модель, которая выявляет случаи мошенничества с точностью около 85%.

Сценарий 2:

  • Ваш руководитель хочет улучшить качество обслуживания клиентов и решает, что только около 15% действительных транзакций пользователей должны классифицироваться как мошеннические.

Резюме:

  • Краткое понимание матрицы путаницы
  • Краткое понимание точности
  • Краткое понимание отзыва
  • Краткое понимание точности
  • Настройка модели для сценария 1
  • Настройка модели для сценария 2

Матрица неточностей:

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

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

куда:

  • Истинно положительный (TP): положительный класс правильно классифицирован.
  • Ложноположительный (FP): класс положительных результатов неправильно классифицирован.
  • Ложноотрицательный (FN): отрицательный класс неправильно классифицирован.
  • Истинно отрицательный (TN): отрицательный класс классифицирован правильно.

Я думаю, что глядя на картинку ниже, вы могли бы лучше понять матрицу путаницы.

Точность - отзыв - точность

Учитывая два представленных вам сценария, как бы вы оценили свою модель? Вы знаете, как действовать? Чтобы выбрать метрику, к которой мы должны обратиться, мы должны иметь глубокое понимание метрик. Так что давайте сразу перейдем к объяснениям с примерами и сценариями!

Точность:

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

где TP = истинно положительный результат, TN = истинно отрицательный результат, FP = ложный положительный результат и FN = ложный отрицательный результат представляют собой прогнозы.

Теперь предположим, что ваша первая модель дает вам точность 99%, как, например, модель LinearLearner (встроенная модель SaeMaker) ниже. Это означает, что ваша модель обнаружения мошенничества отлично справляется с выявлением мошеннических и действительных транзакций, верно?

Что ж, на самом деле ответ на этот вопрос: это зависит от обстоятельств! Давайте проведем более тщательный анализ положительных и отрицательных классификаций, чтобы лучше понять работу модели.

Вышеупомянутая модель пометила более 30 FN (неверно помеченные, мошеннические транзакции) и немногим более 30 транзакций FP (неверно обозначенные, действительные транзакции). Принимая во внимание точку зрения пользователя, мы могли бы заявить, что они не хотят, чтобы какие-либо действительные транзакции были классифицированы как мошеннические. В этом случае мы должны помнить о том, что в нашей модели должно быть как можно меньше ложных срабатываний (неправильно помеченных, мошеннических транзакций). Таким образом, мы не сможем настроить модель на удовлетворить бизнес-требования, основанные только на его точности . Чтобы сделать это эффективно, мы должны выполнить настройку модели, анализируя один показатель, который может помочь нам уменьшить количество FP, что не относится к точности .

Напомним:

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

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

Сколько из положительных выборок правильно предсказала моя модель?

Точность:

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

Сыворотка, которую мы можем назвать точностью, следующая:

Из общего числа прогнозов, которые моя модель пометила как положительные, сколько из них действительно положительные?

Управление классовым дисбалансом

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

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

Сценарий 1

Давайте теперь подумаем о нашем бизнес-кейсе. В соответствии с требованиями менеджера мы можем сказать, что мы должны построить модель, которая будет иметь как можно больше истинных положительных результатов и как можно меньше ложных отрицательных результатов. Это означает, что мы должны выбрать метрику Отзыв, чтобы настроить нашу модель обнаружения мошенничества.

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

Предполагая, что производительность обучающего набора будет в пределах 5% от производительности тестового набора, мы должны стремиться к отзыву на уровне 90%.

Таким образом, мы получаем следующие показатели:

Несмотря на то, что мы стремились к отзыву на 90%, мы видим, что модель дает нам отзыв около 91%. Это значение может изменяться при применении к тестовым данным. Мы также должны видеть, что у нас меньше ложных негативов, а это именно то, что мы хотим.

Сценарий 2:

В этом случае бизнес-требование состоит в том, чтобы модель помечала только 15% действительных транзакций как мошеннические. Это означает, что мы хотим иметь как можно меньше ложных срабатываний (0 классифицируется как 1). Таким образом, мы можем использовать точность для настройки нашей модели.

Основываясь на этом требовании, мы можем вычислить приблизительное значение требуемой точности: 85 / (85 + 15). Опять же, давайте предположим, что наша производительность на обучении будет на 5% выше, чем при тестировании. Таким образом, мы будем стремиться к точности 80–85% на тестовой выборке.

Важно отметить, что модель тренируется с фиксированной точностью 90%, а также пытается получить как можно более высокий уровень отзыва. Имея это в виду, мы можем видеть показатели как результат нашей настроенной модели.

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

Заключение:

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