Платформа «Агрориск»Управление рисками в АПК

Статья журнала

РАЗРАБОТКА WEB-ПРИЛОЖЕНИЯ ДЛЯ АНАЛИЗА И ПРОГНОЗИРОВАНИЯ ЦЕН НА ЖИЛЬЁ В РЕСПУБЛИКЕ ТАТАРСТАН С ПОМОЩЬЮ ИНСТРУМЕНТОВ PYTHON

Цитирование

ТИШИНА, Р.Д. РАЗРАБОТКА WEB-ПРИЛОЖЕНИЯ ДЛЯ АНАЛИЗА И ПРОГНОЗИРОВАНИЯ ЦЕН НА ЖИЛЬЁ В РЕСПУБЛИКЕ ТАТАРСТАН С ПОМОЩЬЮ ИНСТРУМЕНТОВ PYTHON / Р.Д. ТИШИНА // Управление рисками в АПК. – 2024. – № S3 (53). – C. -. – .

Аннотация

Данная работа посвящена разработке web-приложения для анализа и прогнозирования цен в сфере недвижимости в Республике Татарстан. Прогнозирование стоимости жилья осуществляется благодаря использованию алгоритма линейной регрессии на языке программирования Pyhon , а именно при помощи использования библиотеки Scikit-Learn.

Ключевые слова

машинное обучение, модель прогнозирования, линейная регрессия, Python, Scikit-Learn, Streamlit

Введение

Рынок недвижимости – совокупность экономических, правовых, культурных отношений субъектов рынка по поводу создания, распределения, обмена и потребления полезных свойств недвижимости, прав и обязательств. Он имеет определённую специфику[2]. Разработка web-приложения для анализа и предсказания цен на недвижимость в столице Республики Татарстан является актуальной задачей, так как жилой рынок представляет собой важную часть региональной экономики. Разрабатываемое приложение должно состоять из нескольких разделов: Анализ данных. В данном разделе пользователю будет представлен процесс исследования, анализа и предобработки данных, которые в дальнейшем будут использованы для создания прогнозной модели в сфере недвижимости. Прогнозирование цены на квартиру. В данном разделе пользователь непосредственно может задать интересующие его параметры на недвижимость, после чего получить прогнозную среднюю цену на квартиру в г. Казань. Весь процесс разработки web-приложения и создания прогнозной модели можно разделить на 5 этапов: Сбор данных; Подготовка данных;

Методология

Исследование данных; Моделирование данных; Отображение и автоматизация[6]. В качестве методов и средств по работе с данными на первых трёх этапах был использован язык программирования Python и основные его библиотеки , такие как: pandas, numpy, matplotlib[1,6]. В рамках первого этапа с портала по продаже недвижимости был собран набор данных (датасет), который содержит в себе информацию о квартирах в г.Казань с 2018-2022 год. Таким образом, был получен датасет, состоящий из 1173 объектов недвижимости и 13 параметров. В рамках второго и третьего этапов была проведена описательная статистика, выявление пропущенных и нулевых значений, получена общена информация о датасете. Параметры были разделены на количественные и категориальные. Также, некоторые столбцы были удалены, т.к. он не нужны для построения прогнозной модели. По оставшимся столбцам была проведена описательная статистика для определения наличия выбросов и избавления от них. Данные также были нормализованы с помощью StandardScaler. Данный масштабировщик центрирует данные вокруг нуля, так что среднее значение каждой переменной становится равным нулю, и стандартизирует их, так что дисперсия становится равной единице. С помощью инструмента One Hot Encoder категориальные переменные были преобразованы в набор однокатегориальных бинарных переменных[1]. Также прежде, чем перейти к построению модели нам было необходимо провести анализ корреляции между параметрами (рисунок 1).

Результаты

После анализа матрицы корреляции, представленной на рисунке 1, было отмечено, что целевая переменная цена («price») больше всего зависит от площади квартиры (0,61), количества комнат в квартире (0,37) и количества этажей в жилом доме (0,28). Также, был сделан вывод о том, что значимых зависимостей (мультиколлениарности) переменных нет (>0.5), следовательно, можно преступать к построению модели[5]. Построение модели прогнозирования методом машинного обучения является одной из самых востребованных и актуальных областей в сфере анализа данных. Методы машинного обучения позволяют создавать модели, способные предсказывать будущие значения переменных на основе имеющихся данных. Метод машинного обучения - это подход к анализу данных, при котором компьютерные системы обучаются на основе опыта и самостоятельно улучшают свою производительность без явного программирования. В контексте прогнозирования, модели машинного обучения используют имеющиеся данные для построения математической модели, способной предсказывать будущие значения[3]. В нашем исследовании для прогнозирования используется следующий тип модели машинного обучения – линейная регрессия[3]. Линейная регрессия предполагает линейную зависимость между зависимой переменной и одной или несколькими независимыми переменными. Для построения и обучения модели линейной регрессии мы разделили наш датасет, полученный после 2 и 3 этапа, на тренировочную и тестовую выборки в соотношении 70% на 30%. Отметим, что в качестве целевой переменной была выбрана – price, а в качестве факторов следующие параметры: building_type, object_type, level, levels, rooms, area, kitchen_area. После мы обучили нашу модель на тренировочных данных и получили следующий график прогнозирования цены (рисунок 2):

Результаты

Также была вычислена средняя абсолютная ошибка (MAE), которая является линейной оценкой. Эта метрика позволяет определить насколько близко прогнозируемые значения к фактическим данным[6]. В нашем случае MAE = 547098.96 руб. Далее нам было необходимо интегрировать проведённый анализ набора данных и построенную модель прогнозирования в web-приложение. Для этой цели был выбран следующий инструмент Python – Streamlit. Streamlit — это веб-фреймворк, предназначенный для исследователей данных для простого развертывания моделей и визуализаций с использованием Python. В него полмолчания встроены виджеты для пользовательского ввода, такие как загрузка изображений, ползунки, ввод текста и другие знакомые элементы HTML, такие как флажки и переключатели[4]. Библиотека находится в открытом доступе и с открытым исходным кодом[5,7].

Обсуждение

Благодаря использованию данного инструмента было разработано web-приложение с дружественным и интуитивно понятным интерфейсом (рисунок 3).

Обсуждение

Рисунок 23 – Раздел web-приложения для прогнозирования цены на квартиру Как видно из рисунка 3, пользователь может использовать разные разделы: о проекте, анализ данных и раздел с прогнозом цен на квартиру. Таким образом, была разработана модель прогнозирования цен на недвижимость в Республике Татарстан (г. Казань) на языке программирования Pyrhon, а также разработано само веб-приложение.

Выводы

Задачи исследования выполнены: была изучена предметная область, теоретические основы обработки данных и прогнозирования, описаны основные этапы исследования, реализована модель для прогнозирования, разработано веб-приложение по анализу и прогнозированию цен на недвижимость. В заключение отметим, что Python является многофункциональным языком, который позволяет не только работать с данными, но и создавать приложения с дружественным и органичным интерфейсом.

Источники

  1. Библиографический список: Pandas documentation [Электронный ресурс]. – URL: https://pandas.pydata.org/docs/ (Дата обращения: 03.03.2024) Park B. Using machine learning algorithms for housing price prediction: The case of Fairfax County, Virginia housing data / B. Park, J. Kwon Bae // Expert Systems with Applications. — 2015.— Vol. 42.— P. 2928–2934. Scikit-learn Machine Learning in Python [Электронный ресурс]. – URL: https://scikit-learn.org/stable/index.html (Дата обращения: 03.03.2024) Streamlit documentation [Электронный ресурс]. – URL: https://docs.streamlit.io/ (Дата обращения: 03.03.2024) Абдулвелеева Р. Р. Использование библиотеки быстрой сборки и развертывания web-приложения Streamlit в качестве визуализации данных и составления дашбордов / Р. Р. Абдулвелеева, Е. М. Иванин // Актуальные проблемы современной науки, техники и образования: Тезисы 80-й международной научно-технической конференции, Магнитогорск, 18–22 апреля 2022 года. Том 1. – Магнитогорск: Магнитогорский государственный технический университет им. Г.И. Носова, 2022. – С. 340. Астапов Р. Л. Автоматизация подбора параметров машинного обучения и обучение модели машинного обучения / Р. Л. Астапов, Р. М. Мухамадеева // Актуальные научные исследования в современном мире. – 2021. – № 5-2(73). – С. 34-37. Хамимдова Д. Н. Развёртывание модели машинного обучения с помощью Streamlit / Д. Н. Хамимдова // Евразийский Союз Ученых. Серия: технические и физико-математические науки. – 2023. – № 6(109). – С. 15-20.