Ended 14 months ago
724 participants
1899 submissions

Data Fusion Contest 2024 - Задача 1 «Геоаналитика»

Участникам необходимо решить задачу предсказания локаций снятия наличных в банкоматах на основе транзакций клиентов банка.

Правила участия

Нажимая кнопку «Участвовать» и/или «Отправить решение», вы соглашаетесь с Правилами участия в соревновании Data Fusion Contest 2024.

Постановка задачи

Участникам предоставляются данные о карточных транзакциях клиентов в формате .parquet. Транзакции клиентов даны в привязке к локации. Также предоставляется тренировочная информация о том, в каких банкоматах клиент снимал наличные. 

Необходимо предсказать, в каких локациях клиент будет снимать наличные. Из соображений приватности, координаты закодированы в h3index уровня 9, например 891181840a7ffff.

Клиент может снимать наличные в нескольких банкоматах. Иногда клиент одновременно совершает несколько транзакций в одном месте — по ним считаются статистики (count, sum, min, avg, max, std, count_distinct). Список локаций, в которых возможно снятие наличных, известен. Нужно для каждого клиента и каждого банкомата предсказать вероятность того, что клиент им воспользуется. 

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

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

Это контейнерное соревнование с подготовкой решений в виде архива с кодом, который будет автономно запускаться на закрытых тестовых данных. 

Необходимо обучить модель на предоставленных данных, упаковать решение в архив и загрузить на платформу.  Модель получает на вход следующие именованные аргументы:

  •  --hexses-target-path -ht список всех геолокаций, где возможно снятие наличности. Этот файл доступен в исходных данных, но мы просим использовать в работе модели именно нашу версию файла hexses_target.lst.
  • --hexses-data-path -hd список всех геолокаций, где пользователь мог совершить какую-либо транзакцию. Этот файл доступен в исходных данных, но мы просим использовать в работе модели именно нашу версию файла hexses_data.lst .
  • --input-path -i входные данные о транзакциях. Формат аналогичен файлу с транзакциями в обучающих данных. Например, test.parquet
  • --output-path -o имя файла, в который вам нужно сохранить результат. Например, submit.parquet

Требуется предсказать вероятность того, что клиент снимет деньги в одной из локаций из hexses_target.lst.

Формат выходного файла — parquet: 

  • Столбец customer_id должен содержать код пользователя
  • Остальные столбцы должны быть кодами локаций из hexses_target.lst
  • (важно) Если в файле отсутствует какой-то из клиентов или какая-то из геолокаций, где возможно снятие наличности, сабмит будет отвергнут (оценочный скрипт выдаст ошибку).

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

В архиве должны быть все необходимые для работы модели файлы. Как минимум, в архиве должен быть файл metadata.json с указанием используемого докер-образа (рекомендуем `odsai/vtb24-baseline:1.0`) и строки для запуска вашей модели.

{
   "image": "odsai/vtb24-baseline:1.0",
   "entry_point": "python -u run.py"
}

При желании вы можете использовать свой образ, выложив его на https://hub.docker.com. Вебинар о том, как собрать докер

Проверка решений

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

И в публичной и в приватной части рейтинга решения запускаются на двух наборах входных данных: для публичной и приватной части лидерборда. 

Соотношение публичной и приватной части лидерборда примерно 1:1. Победители соревнования определяются по результатам приватной части лидерборда. 

Метрика соревнования — Mean Binary Cross Entropy т.е. бинарная кросс-энтропия, усредненная на всех пользователях. Эта метрика сильно штрафует за категоричные утверждения, поэтому при расчете мы обрезаем предсказанные вероятности. Формула расчета

eps = 1e-8
mbce = (-np.log(np.clip(predictuion, eps, 1 - eps)) * target \
       -  np.log(np.clip(1 - predictuion, eps, 1 - eps)) * (1 - target)).sum(axis=1).mean()

где predictuion - вектор предсказанных вероятностей, а target - целевая разметка, где 1 помечены локации, в которых пользователь на самом деле снимал наличные.

Обратите внимание, что пользователь может снимать наличность в нескольких банкоматах в разных локациях, это нормально.

(patch note #1) если ваше решение выдаёт NaN, все NaN заменяются на 1e-8 перед рассчётом метрики.

Доступные ресурсы для решений

  • 8 ядер CPU
  • 96Gb RAM
  • Видеокарта NVidia Tesla V100

Ограничения для решений

  • 5Gb для архива с решением
  • 60 минут на работу решения: 30 минут на public часть и 30 минут на private
  • Docker-образ, используемый в решении, должен быть опубликован и публично доступен на Dockerhub

Информация для участников

  • В соревновании можно принимать участие из любой точки мира. Участники могут объединяться в команды до 4-х человек. Участвовать можно в любом количестве из предложенных задач и номинаций. Победители соревнования смогут получить денежные призы только на расчетные счета банков, зарегистрированных на территории Российской Федерации.  Просим вас позаботиться об открытии счета в РФ заранее.
  • Ответы на вопросы по всему Data Fusion Contest 2024 доступны на FAQ странице трека.

Призовой фонд задачи 1, Геоаналитика

1 место: 500 000 рублей
2 место: 250 000 рублей
3 место: 150 000 рублей

Номинация Companion по задаче Геоаналитика: 
50 000 рублей (по состоянию на “экватор” соревнования)
50 000 рублей (после дедлайна соревнования)

Our website uses cookies, including web analytics services. By using the website, you consent to the processing of personal data using cookies. You can find out more about the processing of personal data in the Privacy policy