Олимпиада по ИИ 2019–2020. Онлайн-этап

Ваша задача — по информации о расходах клиента банка предсказать, в какую из возрастных групп он попадает.

Гадаем на картах

Можно ли узнать возраст клиента на основе информации о его расходах по карте? Мы подготовили задачу на базе реальных банковских транзакций. Совершенствуя свои продукты, банк использует информацию о пользователях, в том числе и возраст. Это помогает сделать персонализированные продукты, которые удовлетворяют реальные потребности клиентов. Но всегда ли календарный возраст соответствует образу жизни (и покупок) человека?

Условие задачи

Твоя задача — по информации о расходах клиента банка предсказать, в какую из возрастных групп он попадает. Даны обучающие данные (train) для построения признаков и обучения моделей, и тестовые данные (test) для проверки алгоритмов. Это специальным образом подготовленная и анонимизированная информация, на которой можно обучать модели, сохраняя полную безопасность реальных данных клиентов. Решением задачи являются предсказания алгоритмов на тестовых данных.

Данные

Для решения задачи участникам была предоставлена информация о транзакциях клиентов банка, объемом около 27 000 000 миллионов записей.

Каждая запись описывает одну банковскую транзакцию. Для каждого из ≈20 000 тестовых id, участникам было нужно с помощью обученной модели предсказать, в какую из возрастных групп попадает клиент.

Были подготовлены два набора данных:

  • Обучающий transactions_train.csv, в котором для каждой транзакции известна дата, сумма, тип и id клиента;
  • Тестовый transactions_test.csv, содержащий те же поля:
    • сlient_id – уникальный номер клиента;
    • trans_date – дата транзакции (представляет из себя просто номер дня в хронологическом порядке, начиная от заданной даты);
    • small_group – группа транзакций, характеризующих тип транзакции (например, продуктовые магазины, одежда, заправки, детские товары и т.п.);
    • amount_rur – сумма транзакции (для анонимизации данные суммы были трансформированы без потери структуры).

На базе данных файлов можно строить различные признаки, которые характеризуют возрастные группы.
Целевая переменная для обучающего датасета находится в файле train_target.csv. В нем содержится информация о Клиенте и метка возрастной группы, к которой он относится:

  • client_id – уникальный номер Клиента (соответствует client_id из файла transactions_train.csv);
  • bins – метка возраста. В файлe test.csv тебе необходимо предсказать для указанных client_id соответствующую метку группы возраста.

Участникам также был предоставлен информационный файл small_group_description.csv, который содержит расшифровку типов транзакций.

Формат решений

Для каждого примера из тестового набора было необходимо предсказать возрастную группу, к которой относится клиент. В систему предоставлялся для проверки CSV-файл с предсказаниями, он должен был содержать две колонки:

  • client_id — идентификатор клиента;
  • bins — возрастная группа.

Задача представляет из себя мультиклассовую классификацию (4 класса – от 0 до 3). Качество решения считается как доля верно угаданных меток возраста по всем тестовым примерам –accuracy.

Для решения удобнее всего использовать язык программирования Python, так как для него есть большое число библиотек для анализа данных: NumPy, Pandas, SciKit-Learn и другие. В качестве инструмента разработки – интерактивную среду Jupyter.

Участникам также был доступен базовый пример решения от организаторов в виде Jupyter-notebook’а.

Наверх