Симулятор фрод
транзакций. Главная страница
Репозиторий проекта:
Ссылка
О чем этот проект
Реализовал на python генерацию синтетических банковских транзакций:
легальных и мошеннических с учётом поведения клиентов и реализма
сценариев. Моделирование транзакций. Полученные датасеты можно
использовать для тестирования работы правил антифрод системы.
Стек: python (pandas,
numpy, geopandas,matplotlib,
ООП), Poetry, Power BI (модель
данных, DAX)
- Очистил и преобразовал данные под генерацию при помощи
pandas, numpy, geopandas.
- Написал модульный генератор транзакций при помощи функций и
ООП. Разные разделы логики генератора это разные файлы,
функции и классы, но точка запуская - единая. Вот схема: ссылка
- Конфигурации генератора транзакций поместил в
YAML
файлы, чтобы их можно было менять без исправления кода.
- Процесс документировал в jupyter ноутбуках - там обработка начальных
данных и демонстрация главных функций и классов генератора.
- Загрузил данные в
Power BI, создал модель данных и на
ее основании дашборд с информацией о транзакциях. Создал визуализации,
применил условное форматирование, создал DAX меры. Видео
демонстрация на 2,5 минуты: Ссылка
- Зависимости проекта прописал в
toml файле.
Итоги проекта:
- Полученные датасеты можно использовать для тестирования работы
правил антифрод системы.
- Улучшил навыки обработки данных в
pandas,
numpy, geopandas.
- Приобрел опыт написания систематизированного и связного кода.
Компоненты отдельные, могут тестироваться по отдельности, но связаны в
систему. Считаю что такой опыт очень полезен для работы с
ETL, обработкой данных.
- Научился работать с конфигурациями в файлах
(
YAML).
- Приобрел опыт ведения и выполнения объемной задачи от начала до
конца: 14 jupyter ноутбуков с документированием процесса, более 2-х
месяцев работы, примерно 4000 строк кода в модуле генератора.
Части проекта
1. Генератор транзакций
Цель: генерация легальных и фрод транзакций
Используемые технологии: python и его библиотеки:
pandas, numpy, geopandas, seaborn, matplotlib и другие
Статус: готов
Установка и запуск: Readme
Диаграммы: подробная диаграмма структуры генератора
Дашборд: демонстрация дашборда Power BI созданного на основе сгенерированных данных ссылка
Включает в себя
- Создание данных на основании которых будут генерироваться
транзакции, например: клиенты, оффлайн мерчанты с координатами в
границах городов, IP-адреса для клиентов и мошенников, устройства для
клиентов и мошенников, категории товаров и их характеристики и др. -
данные создаются вручную, процесс показан в первых нескольких ноутбуках.
- Генерация легальных транзакций
- Генерация compromised client fraud транзакций. Т.е. когда клиент
скомпрометирован и кто-то совершает транзакции либо с его аккаунта либо
с его карты. Подразумевается генерация фрода попадающего под несколько
антифрод правил, например: быстрая смена геолокации между транзакциями,
транзакция на большую сумму в другом городе и с другого устройства,
резкое учащение транзакций и др. Сейчас правил пять.
- Генерация дроп фрода. Включает два типа дропов:
- дропы распределители - distributors. Получают деньги и либо
переводят их дальше либо снимают, либо иногда покупают криптовалюту.
Через них идет поток денег.
- дропы покупатели - purchasers. Получают деньги и покупают
на них товары. Подразумевается, что они так отмывают деньги.
- Объединение всех разделов генерации в единый генератор
транзакций с единой точкой запуска
Подробнее о генераторе транзакций. По ссылке более
подробное описание генерации транзакций, включая список
ссылок на все Jupyter ноутбуки в формате веб-страниц и развернутые
описания каждого раздела генерации.
2. Веб-приложение
Цель: симуляция интерфейса антифрод системы где
можно смотреть сгенерированные транзакции и данные о них.
Используемые технологии: python, python фреймворки
Streamlit или Dash для интерфейса, PostgreSQL.
Статус: в разработке.
Т.к. находится в разработке то опишу примерные
идеи.
- Веб-приложение берет данные из SQL базы
- Просмотр транзакций в списке транзакций.
- Карточка транзакции с её данными
- Карточка клиента
- Визуализация геопозиции транзакции на карте. В идеале если резкий
скачок между координатами транзакций то визуализация предыдущей и
текущей транзакций на одной карте.
- Визуализация переводов виде графов, если фрод переводы были внутри
банка