Skip to content

Repository files navigation

Отчёт по прктике

Структура проекта

  1. add_info - дополнительная информация о жилье (смотри prepare_data/parse.py get_building_info)
  2. assets - скрины для отчёта
  3. data - хранит заранее полученные файлы: DollarRate.csv, PriceIndex.csv и Inflation.csv, а также туда записываются результаты работы скриптов из prepare_data/
  4. models - скрипты с моделями и скрипты подбора параметров (да, это разные файлы)
  5. prepare_data - скрипты для подготовки данных (использовать в данном порядке)
      1. parse.py - нужен для парсинга данных с наш.дом.рф
      1. make_csv.py - первичное представление полученных данных в .csv формате
      1. embeddings.py - добавление embedding'ов (нужно для текстовых и некоторых категориальных признаков в randomforest)
      1. divide_data.py - разделяет данные на train.csv, validation.csv и test.csv и записывает их в data/
      1. analyze.py - нужен был на момент первичного анализа данных
      1. stat.py - статистика и метрики (если нужно)

Модели

  1. Самописная линейная регрессия (models/linear_regression.py)
  2. CatBoostReg с подобранными параметрами (models/catboostreg.py)
  3. RandomForest с подобранными параметрами (models/randomforest.py)

Подбор признаков и параметров

Файлы best_trials_[имя модели].json содержат результаты подбора параметров с помощью optuna. Долгий перебор занял бы слишком много времени, так что было принято решение использовать эту библиотеку

Результаты моделей

Модель MAPE RMSE (руб/кв.м)
LinearRegression 14.61% 37588.15
CatBoostReg 8.75% 24937
RandomForest 9.34% 24616

Замечания по ходу выполнения работы

В файле notes.md описаны заметки после каждого этапа работы (4 раздел это заметки за последние 2 недели практики)

Если говорить в общем, то данных мало (очень), из-за чего кажется, что перебор параметров подбирает их под валидационные данные (это только предположение и всё равно результат отличный)

Сами цены на сайте актуальные на данный момент, так приминять данные об изменении цен или курсе валют нельзя (из-за чего какие-нибудь интересные статистики или метрики сделать не получается).

CatBoost любит выбирать себе какую-то киллерфичу и, даже если её удалить, то появится другая (а ещё возрастёт процент ошибок)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages