Ends in 6 weeks
1222 participants
1097 submissions

Q: Можно ли объединяться в команды?

A: Да, в соревновании разрешено объединяться в команды до 4 человек. Дедлайн по объединению в команды - 27 мая.


Q: Могу ли я соревноваться в обеих задачах Avito ML Cup 2025?

A:  Да, конечно, можно принять участие в обеих задачах.
 

Q: Где можно задавать вопросы по соревнованию?

A: Канал общения и обсуждения между участниками всех вопросов — тут будет ссылка

Q: В какие-то дни я использовал не все возможные попытки для отправки решения, можно ли воспользоваться ими в будущем?

A: Нет, в день можно отправить максимум 5 решений. А неиспользованные попытки сгорают.

Q: С какого числа можно отправлять решения?

A: С 31 марта 2025 года
 

Q: Когда заканчивается прием заявок на участие в соревновании?

A: 27 мая 2025 года в 23:59


Q: Когда дата и время возможности выбора финальных решений?

A: 28 мая 2025 года в 12:00
 

Q: Как объединиться в команду? 

A: Просто переходи в раздел «Мои решения" - справа внизу будет "моя команда" - там возле тебя будет круглый красный плюсик, который даст тебе инвайт-ссылку, дальше отправляешь ее тому, с кем будешь в команде. Если команда не твоя - просишь сделать то же самое капитана.

Q: 5 сабмитов это на человека или на команду?

A: Если вы участвуете самостоятельно, то имеете 5 сабмитов в день. При участии в команде 5 сабмитов на всю команду.

Q: Мне нет 18 лет, могу ли я участвовать?

A: Нет, по правилам соревнований(есть во вкладке «основное») участвовать могут только совершеннолетние.

Q: Есть ли ограничения на решение? На используемые доп. данные (публичные/не публичные), на скорость (обучение/рантайм), на вес?

A: Ограничений нет.


Q: Инфраструктура своя или всем командам будут выделен некий одинаковый пул мощностей?

A: Мы не предоставляем никаких дополнительных ресурсов, кроме тех, что указаны на странице соревнований.
 

Q: У меня остались вопросы. Где могу получить ответ на них?

A: Вступай в наш чат в Телеграм, делись идеями, задавай вопросы и отвечай на вопросы других участников.

Q: Какие наиболее частные причины получить статус Failed?

A:  Для тестового файла должны выполняться следующие условия:

  1. Не больше 40 групп товаров на пользователя
  2. Для каждого пользователя должно быть предсказание (хотя бы 1)
  3. 1 уникальная пара cookie-node
  4. Колонки node, cookie должны быть типа int

Q: Как я могу отладить свой сабмит до отправки?
A: На этапе eval в baseline ноутбучке можно использовать функцию

import polars as pl

def recall_at(df_solution: pl.DataFrame, df_pred: pl.DataFrame, k=40):
    assert df_pred.group_by(['cookie']).agg(pl.col('node').count())['node'].max() <41 , 'send more then 40 nodes per cookie'
    assert 'node' in df_pred.columns, 'node columns does not exist'
    assert 'cookie' in df_pred.columns, 'cookie columns does not exist'
    assert df_pred.with_columns(v = 1).group_by(['cookie','node']).agg(pl.col('v').count())['v'].max() == 1 , 'more then 1 cookie-node pair'
    assert df_pred['cookie'].dtype == pl.Int64, 'cookie must be int64'
    assert df_pred['node'].dtype == pl.Int64, 'node must be int64'
    
    return  df_solution[['node', 'cookie']].join(
        df_pred.group_by('cookie').head(k).with_columns(value=1)[['node', 'cookie', 'value']], 
        how='left',
        on = ['cookie', 'node']
    ).select(
        [pl.col('value').fill_null(0), 'cookie']
    ).group_by(
        'cookie'
    ).agg(
        [
            pl.col('value').sum()/pl.col(
                'value'
            ).count()
        ]
    )['value'].mean()

def main(solution_path: str, prediction_path: str, stage: int):
    return recall_at(pl.read_csv(solution_path).filter(stage=stage), pl.read_csv(prediction_path))

Q: Где я могу найти код для сборки тестовых данных?
A: Логика сборки тестовых данных представлена на вкладке “Описание”. Код для сборки можно найти в  baseline.ipynb на вкладке “Данные”

Q: Есть ли в Public/Private выборке пользователи не из трейнового набора данных?
A: Пользователи для Public/Private разбиваются как в   baseline.ipynb в разделе PREPARE TRAIN EVAL. Там есть проверка, что пользователь в валидации есть в трейне.

df_eval = df_eval.filter(
        pl.col('cookie').is_in(df_train['cookie'].unique())
    ).filter(
        pl.col('node').is_in(df_train['node'].unique())
    )

Пользователей без истории нет в валидации

Cookies help us deliver our services. By using our services, you agree to our use of cookies.