Skip to content

MenacingDwarf/AzureVirtuals

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fraud Prediction

Описание решаемой задачи

В рамках данного проекта реализован веб-сервис для предсказания мошеннических транзакций с помощью методов машинного обучения. В данный момент предсказание делается с помощью алгоритма Random Forest, состоящим из 100 деревьев с обучением на датасете из миллиона транзакций, размеченных на Fraud и Not fraud. Датасет для обучения можно найти на kaggle: https://www.kaggle.com/ntnu-testimon/paysim1

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

Инструкция по работе с сервисом

  1. При переходе на главную страницу вас попросят зарегистрироваться. Если у вас уже есть аккаунт необходимо нажать на кнопку "Already registered? Login!" в верхней части экрана и ввести свои авторизационные данные.

main

  1. После регистрации и авторизации вы попадаете на главный экран. Здесь интерфейс поделён на две части:
  • В левой части находится форма для добавления новой задачи. Здесь необходимо выбрать тип операции из предложенных и ввести сумму проводимой транзакции. После нажатия клавиши Send ваша задача будет отправлена в очередь.
  • В правой части находится список ваших задач. Во вкладке "Solved" можно посмотреть на уже решённые задачи, в поле "Solution" будет отображаться решение, данное системой: мошенническая это транзакция или нет. Во вкладке "Not solved" находятся все невыполненные задачи. При этом каждая задача может иметь один из следующих статусов:
    • Waiting - задача ожидает выполнения в очереди.
    • Solving - задача отправлена на выполнение и в данный момент ищется её решение.
    • Solved - решение задачи было найдено.
    • Error - в процессе обработки задачи что-то пошло не так.

main

  1. По окончании работы с сервисом можно выйти из своего аккаунта нажав на кнопку "Logout" в верхней части экрана.

Описание полученной архитектуры

В данный момент архитектура решения следующая. Имеется веб-сервер обрабатывающий запросы пользователей. Веб-сервер хранит информацию о пользователях и их задачах в базе данных. Как только количество задач в очереди превышает определённое количество (на тестовой системе это количество равно 5) веб-сервер запускает виртуальную машину для выполнения задач, накопленных в очереди. После запуска виртуальной машины веб-сервер запускает на ней скрипт, который обучает модель на тестовых данных, забирает все невыполненные задачи из базы данных и помечает каждую транзакцию меткой Fraud или Not fraud, после чего записывает обновлённые данные в базу. Веб-сервер забирает полученную информацию и показывает её пользователю. Схематично это можно отобразить следующим образом: scheme