Обнаружение мошеннических операций – одна из популярнейших задач Машинного обучения (ML), нацеленная на выделение правонарушений из общего потока событий. Рассмотрим в качестве примера распознавание воровства средств с банковских карт.
Для начала импортируем необходимые библиотеки:
Импортируем хронологию операций:
Посмотрим, из чего состоит Датасет (Dataset):
Кроме Признаков (Feature) «Время» (Time), «Количество» (Amount) и «Класс» (Class) другие не стоит интерпретировать в одиночку. Но все мы знаем, что значения столбцов V1 - V28 были преобразованы с помощью Анализа главных компонент (PCA). Эти загадочные колонки – результат защиты конфиденциальных данных пользователей.
Посмотрим, насколько наши данные сбалансированы:
Мы имеем дело с Несбалансированным датасетом (Imbalanced Dataset), то есть соотношение представителей класса неравное.
График показывает, что существует огромная разница между классами операций. Несбалансированные данные могут вызвать проблемы Классификации (Classification), такие как неправильная Точность (Accuracy). В этом проекте мы будем использовать Метод удаления примеров мажоритарного класса (Undersampling Method).
Преобразуем признак "Класс" в категориальный:
Посмотрим, как транзакции распределены по времени. Time – это количество секунд, прошедших между рассматриваемой и первой транзакцией в наборе данных:
Следующим делом посмотрим на распределение признака "Количество":
Приведенные выше графики показывают, что столбцы "Время" и "Количество" необходимо подвергнуть Стандартизации (Standartization). Этот метод позволит создавать признаки, которые имеют схожие диапазоны значений.
Перед стандартизацией я хочу создать функцию «Час», которая поможет лучше использовать «Время» и его связь с остальными столбцами.
Посмотрим, в какое время дня мошенники наиболее активны и сравним с активностью нормальных операций:
Приведенные выше графики показывают, что обычные и мошеннические транзакции совершались каждый час. Для мошеннических транзакций третий и двенадцатый часы – самые "горячие".
Понижение размерности
Результаты исследования данных показывают, что набор данных большой, а размеры классов несбалансированы, поэтому уменьшение размерности поможет интерпретировать результаты. Для этого будет использоваться Стохастическое вложение соседей с t-распределением (t-SNE). Этот метод хорошо работает с данными большого размера и "проецирует" их в двух- или трехмерном пространстве.
На приведенном выше графике показано, что мошеннические и нормальные транзакции плохо разделены на два разных кластера в двухмерном пространстве. Это означает, что два типа операций сильно похожи. Также этот график демонстрирует, что показаний точности недостаточно для выбора лучшего алгоритма.
Стандартизация
Оптимизация гиперпараметров
Этот метод помогает найти оптимальные параметры для алгоритмов машинного обучения. Алгоритм поиска по сетке (Grid Search) будет использоваться для настройки Гиперпараметров (Hyperparameter). Затем будет выполнен Экстремальный градиентный бустинг (XGBoost) для построения графика Важности признаков (Feature Importance). Этот график помогает выбрать параметры, которые будут использоваться в Модели (Model).
На приведенном выше графике показано, что самый важный столбец – это V16. Параметры с наименьшей важностью - V13, V25, Time, V20, V22, V8, V15, V19 и V2 будут удалены из данных перед построением модели.
Метод удаления примеров мажоритарного класса
Перед построением модели будет применен метод случайного недосэмплирования. В этом проекте было выбрано 5% нормальных транзакций.
Новые данные будут случайным образом разделены на Тренировочные данные (Train Data) и Тестовые данные (Test Data). Доля первых составляет 70%, вторых – 30%.
k-блочная кросс-валидация
Случайный лес
Метод опорных векторов
Логистическая регрессия
Многослойный перцептрон
Сравнение методов
Для несбалансированных данных результаты матрицы путаницы могут быть неверными. Однако полезно сказать, сколько мошеннических транзакций предсказано верно. На основе графиков Многослойного персептрона (MLP), Случайного леса (Random Forest) и Логистической регрессии (Logistic Regression) предсказывают одну и ту же долю мошеннических транзакций (сумма нижних двух ячеек каждой из матриц равна 109).
В приведенной ниже таблице показаны результаты по точности, Отзыву (Recall) и Критерий F1 (F1 Score).
- Модель логистической регрессии имеет самый высокий уровень отзыва. Это означает, что она лучше "разыскивает" фактическую мошенническую транзакцию. Однако, когда мы смотрим на показатель точности, логистическая регрессия показывает один из самых худших результатов.
- Наивысший удалось достигнуть случайному лесу. Высокая точность связана с низким уровнем ложных срабатываний, поэтому можно сказать, что модель случайного леса предсказывает наименьшее количество ложных мошеннических транзакций.
- Критерий F1 дает лучшее объяснение на том основании, что он рассчитывается из Гармонических средних значений (Harmonic Mean) точности и отзыва. F1 – это лучшая метрика для выбора наиболее предсказуемой модели. В свете этой информации мы можем сказать, что алгоритм Случайного леса является наилучшим.
Окончательное сравнение будет выполнено с ROC-кривая (AUC ROC):
Основываясь на кривой, мы можем сказать, что алгоритмы логистической регрессии, случайного леса и нейронной сети – многослойного персептрона имеют почти одинаковые результаты AUC. У отличной модели AUC близка к 1, что означает, что у нее хороший показатель отделимости.
Этот вывод можно продемонстрировать и по результатам кривой ROC. Эти алгоритмы склоняются к истинно положительной скорости, а не к ложноположительной. В результате можно сказать, что эти алгоритмы имеют хорошую производительность классификации.
Наконец, мы можем вычислить средний балл точности для этих трех моделей.
Ноутбук, не требующий дополнительной настройки на момент написания статьи, можно скачать здесь.
Автор: Akashdeep Kuila
Понравилась статья? Поддержите нас, поделившись статьей в социальных сетях и подписавшись на канал. И попробуйте курсы на Udemy.