Big Data Analytics as a Service

Детектирование мошеннических операций с банковскими картами

Задача: Разработать алгоритм/модель/метод для детектирования мошеннических операций с использованием банковских карт.

Необходимо:

  • Базовая задача (обязательная для решения):

    1. Разработать алгоритм/модель/метод для определения типа банковской операции (легальная или мошенническая);

    2. С помощью разработанного алгоритма определить мошеннические операции в тестовой выборке, результат представить в CSV-файле в формате “<ID транзакции>,<тип операции (0 - легальная, 1 - мошенническая)>”. Пример файла: https://yadi.sk/d/F3mhhbAWFSsDUw 

  • Дополнительная задача: разработать сервер, клиент и API для их взаимодействия. 

    1. Задача сервера: 

      1. принять запрос от клиента с данными транзакции, 

      2. определить тип транзакции (легальная или мошенническая), используя разработанный алгоритм, 

      3. отправить ответ клиенту. 

    2. Задача клиента: 

      1. имитация запроса к серверу (чтение данных случайной транзакции из обучающей выборки, формирование и отправка запроса на сервер), 

      2. получение ответа от сервера, сравнение с ожидаемым результатом, вывод результатов в консоль или графический интерфейс,

      3. стресс-тестирование сервера (10 000 последовательных запросов, 100 “псевдо-параллельных” запросов - запуск 100 клиентов одновременно).

Данные

  1. Обучающая выборка (размеченная, для обучения).

Дан CSV - файл с обезличенными данными операций с кредитными картами, содержащий:

  • различные обезличенные атрибуты и сумма транзакции;

  • тип проведенной операции (легальная или мошенническая).

  1. Тестовая выборка (не размеченная, для оценки результата).
    CSV-файл, содержащий ID транзакции и атрибуты транзакции, без типа транзакции.

 

Критерии оценки (0-24 балла):

  1. Баллы за базовую задачу - точность (F1-мера) на тестовой выборке 0-12 баллов (0-100%). Рассчитывается по формуле: 

F1 = 2 * (Precision * Recall) / (Precision + Recall)

Precision = TP / (TP+FP)

Recall = TP / (TP+FN)
TP - истинно-положительное решение

FP - ложноположительное решение

FN - ложноотрицательное решение

TN - истинно-отрицательное решение

  1. Баллы за дополнительную задачу (0-12):

    1. 4 - за реализацию сервера,

    2. 3 - за реализацию клиента,

    3. 2 -  за реализацию API с использованием механизмов защиты информации (HTTPS, TLS, SSL …),

    4. 2 - за прохождения стресс-теста сервера (10 000 последовательных запросов, 100 “псевдо-параллельных” запросов),

    5. 1 - за «упаковку» сервера в docker-контейнер (или использование аналогичного инструмента автоматизации развертывания).

 


Модератор: Перминов Валентин Валерьевич, младший научный сотрудник, программист Центра искусственного интеллекта

Задание #3