Задача

Вам необходимо предсказать, есть ли в объявлении на Авито контактная информация.

Для обучения у вас есть следующие поля:

  • title - заголовок,
  • description - описание,
  • subcategory - подкатегория,
  • category - категория,
  • price - цена,
  • region - регион,
  • city - город,
  • datetime_submitted - дата размещения.

Таргет: is_bad

Данные находятся по ссылке https://drive.google.com/file/d/1IOo206jH0cbIMsWRfIZXwCeCAqysZLD3/view?usp=sharing.

Запуск решения

  1. Docker-образ будет собираться командой:
    docker build -t hiring-test -f Dockerfile .
  2. Далее контейнер будет запускаться:
    docker run -it -v ~/hiring-test/hiring-test-data:/hiring-test-data hiring-test python lib/run.py
  3. Файлы с полученным предсказанием должны находиться по тому же пути, что и в тестовом варианте скрипта lib/run.py

Обратите внимание, что в контейнере по умолчанию используется python3:

docker run -it hiring-test python -c "import sys; print(sys.version)"

3.8.5 (default, Aug 21 2020, 18:21:27)

Ресурсы контейнера:

  • 4 Гб оперативной памяти
  • 2 ядра CPU
  • нет GPU

Ограничение на время работы:

  • 100 000 объектов должны обрабатываться не более 90 минут

Baseline

Текущий бэйзлайн, который желательно побить - 0.9.

Результаты

  • Поработал с текстом: заменил некоторые слова на спец токены, оставил только слова и числа, перевел их в числовой токен, привел все к нормальной форме
  • Над токенами построил tf-idf по уни-би и триграммам и оставил только топ
  • Предобработал другие фичи: категориальные просто за ванхотил, цену отлогарифмировал
  • Поверх этих фичей построил logreg
  • Скор оценивал по отложенной выборке: AUC по отложенной выборке ~ 0.966, средний по категориям ~ 0.942

TODO