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

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

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

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

Стек: python (pandas, numpy, geopandas,matplotlib, ООП), Poetry, Power BI (модель данных, DAX)


  1. Очистил и преобразовал данные под генерацию при помощи pandas, numpy, geopandas.
  2. Написал модульный генератор транзакций при помощи функций и ООП. Разные разделы логики генератора это разные файлы, функции и классы, но точка запуская - единая. Вот схема: ссылка
  3. Конфигурации генератора транзакций поместил в YAML файлы, чтобы их можно было менять без исправления кода.
  4. Процесс документировал в jupyter ноутбуках - там обработка начальных данных и демонстрация главных функций и классов генератора.
  5. Загрузил данные в Power BI, создал модель данных и на ее основании дашборд с информацией о транзакциях. Создал визуализации, применил условное форматирование, создал DAX меры. Видео демонстрация на 2,5 минуты: Ссылка
  6. Зависимости проекта прописал в toml файле.

Итоги проекта:


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

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

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

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

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

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

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

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

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

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