В рамках данного проекта реализован веб-сервис для предсказания мошеннических транзакций с помощью методов машинного обучения. В данный момент предсказание делается с помощью алгоритма Random Forest, состоящим из 100 деревьев с обучением на датасете из миллиона транзакций, размеченных на Fraud и Not fraud. Датасет для обучения можно найти на kaggle: https://www.kaggle.com/ntnu-testimon/paysim1
Для данной задачи модель была сильно упрощена, обучение и предсказание происходит всего на двух признаках: сумме и типе операции. Результаты предсказания оставляют желать лучшего, однако данная модель может быть расширена и усовершенствована.
- При переходе на главную страницу вас попросят зарегистрироваться. Если у вас уже есть аккаунт необходимо нажать на кнопку "Already registered? Login!" в верхней части экрана и ввести свои авторизационные данные.
- После регистрации и авторизации вы попадаете на главный экран. Здесь интерфейс поделён на две части:
- В левой части находится форма для добавления новой задачи. Здесь необходимо выбрать тип операции из предложенных и ввести сумму проводимой транзакции. После нажатия клавиши Send ваша задача будет отправлена в очередь.
- В правой части находится список ваших задач. Во вкладке "Solved" можно посмотреть на уже решённые задачи, в поле "Solution" будет
отображаться решение, данное системой: мошенническая это транзакция или нет. Во вкладке "Not solved" находятся все невыполненные
задачи. При этом каждая задача может иметь один из следующих статусов:
- Waiting - задача ожидает выполнения в очереди.
- Solving - задача отправлена на выполнение и в данный момент ищется её решение.
- Solved - решение задачи было найдено.
- Error - в процессе обработки задачи что-то пошло не так.
- По окончании работы с сервисом можно выйти из своего аккаунта нажав на кнопку "Logout" в верхней части экрана.
В данный момент архитектура решения следующая. Имеется веб-сервер обрабатывающий запросы пользователей. Веб-сервер хранит информацию о пользователях и их задачах в базе данных. Как только количество задач в очереди превышает определённое количество (на тестовой системе это количество равно 5) веб-сервер запускает виртуальную машину для выполнения задач, накопленных в очереди. После запуска виртуальной машины веб-сервер запускает на ней скрипт, который обучает модель на тестовых данных, забирает все невыполненные задачи из базы данных и помечает каждую транзакцию меткой Fraud или Not fraud, после чего записывает обновлённые данные в базу. Веб-сервер забирает полученную информацию и показывает её пользователю. Схематично это можно отобразить следующим образом: