Симулятор фрод транзакций. Главная страница

Репозиторий проекта: Ссылка

О чем этот проект

Изначально я хотел найти датасет с банковскими транзакциями в котором есть фрод и провести анализ. Я начал искать и нашел довольно популярный датасет с реальными транзакциями и другими данными - Berka dataset (Czech bank dataset). Но сперва я не учел, что это данные 90-х годов и фрод с транзакциями там вряд ли будет. Еще немного поискав, в целом я понял, что реальных банковских данных, тем более с фродом, наверное не найти. Поэтому я решил сгенерировать транзакции сам при помощи python. И от Berka dataset я взял только клиентов и таблицу с районами их проживания, которые потом было решено переделать под Россию - поменять чешские районы на российские города - т.к. хотелось чтобы у транзакций были координаты реальных населенных пунктов в границах этих населенных пунктов, а для городов РФ найти их границы проще чем для чешских районов.

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

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

Части проекта

1. Генератор транзакций

Цель: генерация легальных и фрод транзакций
Используемые технологии: python и его библиотеки: pandas, numpy, geopandas, seaborn, matplotlib и другие
Статус: готов
Установка и запуск: Readme
Диаграммы: Подробная диаграмма структуры генератора

Включает в себя

  1. Создание данных на основании которых будут генерироваться транзакции, например: клиенты, оффлайн мерчанты с координатами в границах городов, IP-адреса для клиентов и мошенников, устройства для клиентов и мошенников, категории товаров и их характеристики и др. - данные создаются вручную, процесс показан в первых нескольких ноутбуках.
  2. Генерация легальных транзакций
  3. Генерация compromised client fraud транзакций. Т.е. когда клиент скомпрометирован и кто-то совершает транзакции либо с его аккаунта либо с его карты. Подразумевается генерация фрода попадающего под несколько антифрод правил, например: быстрая смена геолокации между транзакциями, транзакция на большую сумму в другом городе и с другого устройства, резкое учащение транзакций и др. Сейчас правил пять.
  4. Генерация дроп фрода. Включает два типа дропов:
  5. Объединение всех разделов генерации в единый генератор транзакций с единой точкой запуска

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

2. Веб-приложение

Цель: симуляция интерфейса антифрод системы где можно смотреть сгенерированные транзакции и данные о них.
Используемые технологии: python, python фреймворки Streamlit или Dash для интерфейса, PostgreSQL.
Статус: в разработке.

Т.к. находится в разработке то опишу примерные идеи.

  1. Веб-приложение берет данные из SQL базы
  2. Просмотр транзакций в списке транзакций.
  3. Карточка транзакции с её данными
  4. Карточка клиента
  5. Визуализация геопозиции транзакции на карте. В идеале если резкий скачок между координатами транзакций то визуализация предыдущей и текущей транзакций на одной карте.
  6. Визуализация переводов виде графов, если фрод переводы были внутри банка