Всегда ли искусственно сбалансированные данные - лучший выбор?

Мошенничество с кредитными картами - это все еще растущая проблема в мире. Убытки от мошенничества в 2018 году оценивались более чем в 27 миллиардов долларов США, и, по прогнозам, в следующие годы они все еще значительно вырастут, как показано в этой статье.

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

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

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

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

Наборы данных содержат транзакции, совершенные европейскими держателями карт в сентябре 2013 года и переданные в Kaggle.

Исследовательский анализ

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

Трудно даже увидеть планку мошенничества с транзакциями. Из 284807 операций только 492 были признаны мошенническими. Это означает, что, как и ожидалось, это очень несбалансированный набор данных, менее 1% которого классифицируются как 1.

Я также создам коробчатую диаграмму суммы (в евро) транзакций, классифицированных как обычные (0) и мошеннические (1).

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

Разработка модели

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

Сплит наборов поездов и тестов

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

Балансировка

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

Нормализация

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

Выбор модели

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

Полученные результаты отзыва были очень похожи для разных моделей. По результатам я решил продолжить модель XGBClassifier.

Настройка гиперпараметров

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

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

Проверка модели

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

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

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

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

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

Отчет о классификации показывает большее равенство результатов по точности и отзыву. Посмотрим на матрицу путаницы.

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

На кривой можно увидеть, что существует порог, обеспечивающий точность 0,8 и отзыв 0,82. На мой взгляд, это интересный вариант, но есть много комбинаций, которые можно использовать в зависимости от конечных целей. Похоже, что модель, созданная с использованием всего набора данных, смогла лучше идентифицировать закономерности обычных транзакций по сравнению с мошенничеством. Поэтому, когда он видит новые данные, общее количество прогнозируемых случаев мошенничества упало с более чем 3000 до 75 при гораздо более настойчивом подходе.

Заключение

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

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

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

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

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

Благодарю вас!

Спасибо, что прочитали этот материал, надеюсь, он может быть вам полезен. Если вы хотите получить более подробную информацию об анализе, вы можете проверить полное исследование в моем GitHub. Я опубликую несколько действительно хороших статей в следующие недели. Если вам понравилась эта, пожалуйста, проверьте мои профили Medium или LinkedIn! Спасибо за чтение!