312. Иннокентий и друзья

Не решаласьСложная

Иннокентий – москвич в пятом поколении. Блуждание между тремя тополями на Плющихе, ежемесячное посещение Мавзолея, кормление тапиров в Московском зоопарке – всё это в крови Иннокентия.

Помимо этого Иннокентий очень любит поесть. Как типичный среднестатистический москвич, Иннокентий посещает исключительно рестораны со средним чеком от 5000 рублей, любит устрицы и хорошие стейки зернового откорма, избегает кафе с шаурмой – боится, что его нечаянно накормят шавермой. Будучи добропорядочным горожанином, Иннокентий исправно оставляет на Яндекс Картах отзывы на посещенные рестораны, живописно описуя свой гастрономический опыт.

Однажды Иннокентий понимает, что за пределами МКАД лежит целый мир, дикий и неизведанный. Он решается на самое опасное и рискованное путешествие в своей жизни – посещение Санкт-Петербурга. Иннокентий выбрал поезд на Яндекс Расписаниях, забронировал отель на Яндекс Путешествиях и отправился в путь.

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

Ваша задача предсказать пользователям из тестового набора рестораны в неродных городах, которым они поставят в следующую поездку оценку 4 и выше Метрика качества $MNAP@100 = \frac{1}{|Users|}\sum_{u \in Users}\frac{1}{min(n_u, 100)}\sum_{i=0}^{100} r_u(i) \cdot p_u@i$ где $n_u$ — количество организаций из противоположного города, которым пользователь поставил оценку 4 или 5 за тестовый период $r_u(i)$ — ставил ли в течение тестового периода пользователь u оценку 4 или 5 организации, предсказанной ему на месте $i$ (1 либо 0)

Решение засчитывается, если ваши предсказания проходят порог 0.008 MNAP.

Подсказка: чтобы побить порог, можно использовать не все фичи.

Формат ввода

Вам даны файлы: users.csv — user_id, city — родной город пользователя.

organisations.csv — описание организаций. org_id, city, features_id — категориальный фичи организации, rubrics_id — рубрики к которым относится заведение, average_bill — средний чек, rating — рейтинг из Яндекс Карт.

reviews.csv — оценки пользователей. user_id, org_id, rating — оценка пользователя, ts — время оценки (в днях).

test_users.csv — набор пользователей для которых нужно сделать предсказание.

Формат вывода

Вам нужно сделать предсказание ресторанов для пользователей из тестового набора. Файл ответа имеет формат: user_id, List[org_id].

  • Имена колонок обязательно должны быть user_id, target.
  • Порядок колонок не важен.
  • Наличие колонки номеров строк никак не влияет на проверку.

Смотрите пример файла с ответом: answer_example.csv.

Ограничения

Ограничение времени

1 с

Ограничение памяти

64 МБ

Пример 1

Ввод
В данной задаче нет входных данных
Вывод
user_id,target

Теги

Без компиляции
Нужно войти, чтобы отправить решение.Войти