{
  "fetched_at": "2026-10-19T11:05:19Z",
  "source_url": "https://www.kaggle.com/competitions/gb-recsys-project/data",
  "pages": [
    {
      "name": "data-description",
      "content": "## Данные\nВсе данные знакомы вам из занятий:\n\n- hh_demographic.csv - фичи пользователей.\n- product.csv - фичи товарова.\n- retail_train.csv - взаимодействие пользователей с товарами.\n- test_users.csv - список пользователей для которого необходимо предоставить предсказания.\n- sample\\_submission.csv - пример данных для загрузки на kaggle для валидации.\n\nДля валидации необходимо загрузить предсказания для пользователей из файла test_users.csv.",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Description",
      "content": "Мы уже прошли всю необходимую теорию для финального проекта. Проект осуществляется на данных из вебинара. Рекомендуем вам начать делать проект сразу после этого домашнего задания\n\nЦелевая метрика - MAP@5. Порог для уcпешной сдачи проекта - бэйзлайн в лидерборде (Most popular items baseline), если вам удастся его обойти вы успешно закрыли курс.\n- Датасет разбит на две части private/public в равных пропорциях.\n- Учтите что в тестовой выборке могут попстаться новые пользователи которые не видела ваша модель (для коллаборативной фильтрации)\n- НЕ обязательно, но крайне желательно использовать 2-ух уровневые рекоммендательные системы в проекте\n- Вы сдаете код проекта в виде github репозитория и указываете свой ник в kaggle.\n\n## Данные\nВсе данные знакомы вам из занятий:\n - hh_demographic.csv - фичи пользователей.\n - product.csv - фичи товарова.\n - retail_train.csv - взаимодействие пользователей с товарами.\n - test_users.csv - список пользователей для которого необходимо предоставить предсказания.\n - sample\\_submission.csv - пример данных для загрузки на kaggle для валидации.\nДля валидации необходимо загрузить предсказания для пользователей из файла test_users.csv.",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Evaluation",
      "content": "## Метрика\n\nДля оценки используется метрика MAP@5, мы с вами рассматривали ее на вебинаре.\nhttps://towardsdatascience.com/breaking-down-mean-average-precision-map-ae462f623a52\n\n## Дополнительный функционал\n\nДля удобства перевода данных в подходящий для загрузки формат можете использовать следующую функцию:\n\n```\ndef transform_data_for_eval(dataset, rec_col, user_col='user_id'):\n    '''\n    Func for transforming recommendations into kaggle evaluation format\n\n    Parameters:\n    dataset (pd.DataFrame): Dataset with 2 required columns:\n        rec_col - column with recommendations should be iterable\n        user_col - columns with user id\n        \n    rec_col (str): name of column in dataset with recommendations\n    \n    user_col (str): name of column in dataset with user id\n\n    Returns:\n    pd.DataFrame: DataFrame in suitable format\n\n   '''\n    eval_dataset = dataset[[user_col, rec_col]].copy()\n    eval_dataset[rec_col] = eval_dataset[rec_col].apply(lambda x: ' '.join([str(i) for i in x]))\n    eval_dataset.rename(columns={\n        user_col: 'UserId',\n        rec_col: 'Predicted'\n    }, inplace=True)\n    return eval_dataset\n```\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "rules",
      "content": "This is a page where you can include rules that participants must accept before joining. You may wish to include rules like:\n\n - Don't cheat!\n - Apply yourself!\n - Have fun!\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    }
  ]
}