Дело о мошенничестве с кредитной картой с использованием пакета pycaret

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

Что такое аномалия?

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

Обнаружение мошенничества с кредитными картами:

Я рассматриваю возможность обнаружения мошенничества с кредитными картами kaggle для выявления аномалий⁴.

Загрузка наборов данных из вызовов API:

Сначала загрузите свой токен API, перейдя в свою учетную запись Kaggle My Account (https://www.kaggle.com/*Your-Username*/account), перейдя в раздел API и нажав создать новый токен API. Теперь вы загрузите файл с названием kaggle.json. Вы должны загрузить этот файл в свой блокнот colab.

from google.colab import files
uploaded = files.upload()

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

!pip uninstall -y kaggle
!pip install --upgrade pip
!pip install kaggle==1.5.6
!kaggle -v
!mkdir -p ~/.kaggle
!cp kaggle.json ~/.kaggle/
!chmod 600 ~/.kaggle/kaggle.json
!kaggle datasets download -d mlg-ulb/creditcardfraud
!unzip creditcardfraud.zip

Предварительная обработка:

В данном наборе данных имеется 492 мошенничества из 284 807 транзакций, я рассматриваю выборку 0,1 для нашего анализа без потери доли выбросов для дальнейшего неконтролируемого обучения. Доля выбросов составляет 0,001723.

Настройка для инициализации среды в pycaret⁵ и создание конвейера преобразования для подготовки данных для моделирования и развертывания.

1. Изолированный лес:

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

Построение модели:

Мы можем построить модель, используя функцию create_model в пакете pycaret, можно соответствующим образом изменить параметры, используя следующий код.

Поиск оценок и меток аномалий изолированного леса с помощью функции assign_model⁷.

Оценка:

ROC_AUC для изолированного леса составляет 0,935.

2. Обнаружение выбросов по основанию угла:

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

Построение модели:

Мы можем построить модель, используя функцию create_model в пакете pycaret, можно соответствующим образом изменить параметры, используя следующий код.

Поиск оценок и меток ABOD с помощью функции assign_model.

Оценка:

ROC_AUC для обнаружения выбросов на основе углов составляет 0,777.

3. Обнаружение выбросов в подпространстве:

Выбросы подпространства идентифицируются путем нахождения локализованных областей данных в низкоразмерном пространстве с аномально низкой плотностью⁹.

Построение модели:

Мы можем построить модель, используя функцию create_model в пакете pycaret, можно соответствующим образом изменить параметры, используя следующий код.

Поиск оценок и меток SOD с помощью функции assign_model.

Оценка:

ROC_AUC для обнаружения выбросов подпространства составляет 0,942.

4. Определитель минимальной ковариации:

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

Построение модели:

Мы можем построить модель, используя функцию create_model в пакете pycaret, можно соответствующим образом изменить параметры, используя следующий код.

Поиск оценок и меток аномалий MCD с помощью функции assign_model.

Оценка:

ROC_AUC для обнаружения выбросов, определяющих минимальную ковариацию, составляет 0,906.

Сравнение результатов:

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

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

Заключение:

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

Использованная литература:

  1. Статистика кредитных карт по годам.
  2. Статистика отчетов по кредитным картам.
  3. Достижения и тенденции в области искусственного интеллекта.
  4. Kaggle обнаружение мошенничества с кредитными картами.
  5. Пикарет
  6. Исследование изолированного леса.
  7. Pycaret assign_model.
  8. Исследовательская статья по обнаружению выбросов на основе углов.
  9. Исследовательская статья Subspace Outlier Detection.
  10. Обнаружение аномалий с помощью робастной статистики (MCD).
  11. Быстрый алгоритм определения определителя минимальной ковариации.