Данные, на основании которых была построена модель предсказывающая цену на недвижимость, собирались с сайта avito.ru. Для извлечения данных был написан парсер, который собирал данные с сайта и сохранял их в файл .csv. Данные были собраны за период с начала октября по конец ноября месяца. Следующим этапом стали обработка данных и генерация новых признаков, а также построение модели, за основу которой был взят CatBoost. Заключительным этапом работы стало создание Telegram bot для пользователей, чтобы они могли получить по заданным параметрам цену на недвижимость в Санкт-Петербурге.
Содержание работы:
I. Сбор данных для обучения
Данные собирались с сайта avito.ru.
Для извлечения данных был написан парсер, который собирал данные с сайта и сохранял их в файлы.
II. Анализ данных и построение модели
Был проведен анализ данных, на основании которого было принято решение отойти в сторону таргета, который выражался в метрах квадратных, а не общей стоимости жилплощади. Также в ходе исследования были сгенирированы дополнительные признаки и установлена взаимосвязь между районами Санк-Петерубурга и общей стоимостью недвижимости в зависимости от этих районов.
Сама же модель была построена на CatBoost, в ходе которого настроены гипперпараметры и используемые признаки/ Получена модель, ошибка предсказания которой не превосходит 6,7%.
III. Внедрение (создание телеграмм бота).
от выступает в качестве опросника-сборщика данных для референса модели. Для корректной работы модели требуются признаки, значение которых пользователь знать не может.Было решено конструировать признаки на основании координат здания и его возраста с использованием сторонних приложений. На основании полученной информации формируются признаки расстояний до метро, возраста и координат дома.
pandas_profiling
Из первичного EDA видно можно сделать следующие выводы:
2.1. Есть признаки, которые будут лишь мешать при построение модели. От них нужно избавляться. Не несут никакой значимости для нашего проекта такие признаки, как например:
2.2. Также следует избавиться от фичей, в которых пропусков свыше 65% и есть дубликаты.
2.3. В фичах присутcвтуют лишние значения, которые предают псевдоуникальность, такие как например в признаке Balcony: 'балкон' 'лоджия' 'балкон, лоджия'. Нужно их разделить.
2.4. В целевой переменной Price - есть выбросы, с которыми нужно будет бороться. Считаем нужным ввести новую целевую переменную, которая будет обозначать стоимость квадратного метра и рассчитываться по формуле Price/Total_area.
2.5. Также в рамках данного исследования были собраны данные за период с начала октября по середину ноября, в связи с чем, именно в этом исследование нам не потребуется признак Publication_date. Отметим, что если рассматривать выборку на длительном протяжении времени, то этот признак может быть весьма значимым в связи с изменчивостью стоимости рынка цен на недвижимость в зависимости от сезона.
Cookies help us deliver our services. By using our services, you agree to our use of cookies.