По сценарию Синъюань Гу и Фрэнка Джина

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

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

Тем не менее, мы решили продолжить наш исследовательский анализ данных (EDA) в обучающем наборе данных. Поскольку при просмотре данных мы заметили много 0 в столбце isFraud, мы сначала хотели сравнить общее количество мошеннических транзакций с общим количеством немошеннических транзакций, чтобы увидеть, имеют ли данные сбалансированные результаты.

«1» на графике указывает, является ли транзакция мошенничеством, а «0» указывает, что транзакция не является мошенничеством. Неудивительно, что количество мошеннических транзакций значительно меньше, чем немошеннических транзакций. Такой результат оправдан тем, что система предотвращения от разных банков работает эффективно. Кроме того, этот результат предполагает, что при проверке наших моделей мы должны использовать получение операционных характеристик (ROC), что может устранить систематическую ошибку, вызванную несбалансированной выборкой; в противном случае модели могли бы просто угадывать NotFraud по всем транзакциям и по-прежнему получать высокие показатели точности.

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

На приведенном выше графике показаны 10 наиболее часто используемых адресов электронной почты для покупателей и получателей в наборе данных. Переменная P_emaildomain описывает домены электронной почты, используемые покупателями, а переменная R_emaildomain предназначена для получателей. Мы можем обнаружить, что большинство покупателей используют Yahoo и Hotmail в качестве своих адресов электронной почты. Однако для получателей Yahoo и Hotmail кажутся не такими популярными. Наиболее часто используемые домены электронной почты: twc.com, cableone.net, ptd.net, внезапное соединение.net и q.com. Все эти 5 доменов электронной почты имеют очень схожую частоту использования.

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

Обучение модели

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

Оцените нашу модель

Наконец, мы хотим увидеть, насколько хорошо работает наша модель. Как упоминалось в нашем разделе EDA, мы должны использовать кривую ROC для оценки нашей модели, поскольку это устранит эффект, вызванный несбалансированным набором данных. Судя по приведенному ниже графику, наш результат довольно хороший: площадь под кривой составляет 0,94, что намного выше, чем в обычных ситуациях.