Практические руководства

Машинное обучение для обнаружения мошенничества с кредитными картами

Книга Jupyter для воспроизводимых исследований.

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

Мы только что выпустили пять первых глав книги по этой теме, цель которой - сделать первый шаг к повышению воспроизводимости исследований в этой области: https://fraud-detection-handbook.github.io/fraud-detection- справочник . Книга является результатом десятилетнего сотрудничества между Machine Learning Group, Брюссельский университет, Бельгия и Worldline. В следующих главах будут рассмотрены более сложные темы, такие как дисбаланс классов, разработка функций, глубокое обучение и интерпретируемость.

Этот предварительный выпуск выполнен в формате книги Jupyter, что позволяет воспроизводить все эксперименты и результаты под лицензией с открытым исходным кодом. Разделы, содержащие код, представляют собой записные книжки Jupyter, которые можно выполнять локально или в облаке с помощью Google Colab или Binder. Исходный код книги (который включает текст, изображения и код) доступен на GitHub:



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

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

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

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

Формат книги Jupyter

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

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

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

Симулятор транзакционных данных

В прошлом MLG способствовала этому пробелу в воспроизводимости, публикуя набор данных по обнаружению мошенничества с кредитными картами на Kaggle, благодаря сотрудничеству с Worldline. Набор данных широко используется в исследовательской литературе по теме На пути к науке о данных и является одним из самых популярных и загружаемых на Kaggle (более 8 миллионов просмотров и 300 000 скачиваний с 2016 года).

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

  1. ID транзакции: уникальный идентификатор транзакции.
  2. Дата и время: дата и время совершения транзакции.
  3. Идентификатор клиента: идентификатор клиента. У каждого покупателя есть уникальный идентификатор
  4. ID терминала: идентификатор продавца (точнее терминала). Каждый терминал имеет уникальный идентификатор.
  5. Сумма транзакции: сумма транзакции.
  6. Метка мошенничества: двоичная переменная со значением 0 для законной транзакции или значением 1 для мошеннической транзакции.

Эти функции обозначаются как TRANSACTION_ID, TX_DATETIME, CUSTOMER_ID, TERMINAL_ID, TX_AMOUNT и TX_FRAUD. Симулятор создает таблицы транзакций, как показано ниже.

Детали симулятора описаны в Главе 3, Разделе 2.

Базовый набор смоделированных данных

Базовый смоделированный набор данных, созданный с помощью симулятора, используется на протяжении всей книги для экспериментальной оценки методов и методологий машинного обучения. В нем освещается большинство проблем, с которыми сталкиваются специалисты по обнаружению мошенничества, используя реальные данные. В частности, он включает в себя дисбаланс классов (менее 1% мошеннических транзакций), сочетание числовых и категориальных характеристик (с категориальными характеристиками, включающими очень большое количество значений), нетривиальные отношения между функциями и зависящие от времени сценарии мошенничества. . Этот базовый набор данных содержит около 1,8 миллиона транзакций, включает 5000 клиентов и 10000 терминалов и охватывает период в 183 дня (6 месяцев транзакций).

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

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

Стандартный шаблон для экспериментов

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

Настроить среду для проведения экспериментов очень просто:

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

Это достигается с помощью следующих строк кода:

Разработка базовой системы обнаружения мошенничества

Разработка базовой системы обнаружения мошенничества обычно состоит из трех основных этапов:

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

Загрузка и разделение данных

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

Приведенный выше код загружает данные за три недели. Первая неделя используется как тренировочный набор, а последняя неделя как тестовый. Вторая неделя, называемая периодом отсрочки, откладывается. На рисунке ниже показано количество транзакций в день, количество мошеннических транзакций в день и количество мошеннических карт в день. Обратите внимание, что количество транзакций в день составляет около 10000 (данные масштабируются с коэффициентом 50, чтобы количество мошенничества было более заметным). Набор данных содержит в среднем 0,7% мошеннических транзакций.

Модельное обучение и оценка

Затем обучение и оценка модели прогнозирования могут быть достигнуты путем (1) определения входных и выходных функций, (2) обучения модели с использованием любого классификатора, предоставленного библиотекой Python sklearn, и (3) оценки производительности.

Используя общие функции, реализация сводится к нескольким строкам кода, как показано в следующей сущности:

Результирующее дерево решений:

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

Заключение

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

Янн-Аль Ле Борн и Джанлука Бонтемпи

Благодарности

Эта книга - результат десятилетнего сотрудничества между Machine Learning Group, Брюссельский университет, Бельгия и Worldline. Сотрудничество стало возможным благодаря Innoviris, Брюссельскому региональному институту исследований и инноваций, благодаря серии грантов, которые начались в 2012 году и закончились в 2021 году.

Ссылки