Прогноз цен на недвижимость методом линейной регрессии

Линейная регрессия является одним из наиболее часто используемых алгоритмов в машинном обучении. Этот алгоритм в большинстве случаев дает хороший результат даже на небольших наборах данных.

Широкое применение линейной регрессии обусловлено тем, что большое количество реальных процессов в науке, экономике и бизнесе можно описать линейными моделями. Так, с помощью линейной регрессии можно оценивать изменение стоимости в зависимости от имеющейся информации.

В демопримере разбирается построение модели линейной регрессии в Loginom для прогноза цен на рынке недвижимости.

Примечание: Демопример имеет ограничение демонстрации всех возможностей при запуске на демостенде (Запустить демо). Рекомендуем установить пример локально.

Запустить демо

Установить локально

Описание алгоритма

1. Импорт данных

Исходные данные

Таблица Исторические данные:

Имя Метка
 price_per_sqm Цена за кв. м
 complex_name Название комплекса
 house_type Тип помещения
 number_of_rooms Количество комнат
 total_area Общая площадь
 kitchen_area Площадь кухни
 finishing Ремонт
 number_of_balkonies Количество балконов
 floor Этаж
 region Регион
 city Город
 district Район
 client_id ID клиента

Данные из таблицы применяются для обучения прогнозирующей модели.

Таблица Новые данные имеет аналогичный набор полей. Данные из этой таблицы используются для построения прогноза.

В сценарии для обучения модели применяются уже подготовленные данные.

При работе с «сырыми данными» необходима их предварительная подготовка: очистка, редактирование выбросов, корреляционный анализ и т.д. Для этого можно использовать компоненты из групп Исследование и Предобработка.

2. Обучение модели

В узле Линейная регрессия (обучение) (на основе компонента Линейная регрессия из группы Data Mining) произведены настройки для обучения модели. На первой странице мастера настройки для поля Цена за кв. м установлено назначение Выходное, для поля ID клиента назначение Не задано, для всех остальных полей — Входное.

Важно:

  • Входные данные никогда не должны содержать пропусков, выходные данные не должны содержать пропусков во время обучения.
  • Назначение Выходное можно задать только для поля с Вещественным типом данных и Непрерывным видом данных. Вид данных Входных полей не регламентируется.

На странице Разбиение на множества установлены следующие настройки:

  • Обучающее множество — 90%
  • Тестовое множество — 10%
  • Метод валидации — K-fold кросс-валидация
  • Random seed — 355542273

После обучения узла требуется оценить качество модели. Критерии для оценки качества модели отображаются в выходном порте «Сводка» узла Линейная регрессия (обучение) . В нём выводится ряд критериев, с помощью которых можно оценить качество модели. В данной задаче качество модели определяется коэфициентом детерминации. Будем считать, что он должен быть больше 0,7. Для построенной модели коэфициент детерминации равен 0,76. Чем ближе его значение к 1, тем выше степень соответствия модели данным.

Для оценки качества модели могут быть использованы различные критерии в зависимости от условия задачи. В том случае, если модель не удовлетворяет желаемым критериям, требуется переобучить узел, задав новые условия.

3. Прогнозирование стоимости недвижимости

Для получения прогноза на предварительно обученной модели линейной регрессии используется узел Линейная регрессия (прогноз) на основе компонента Выполнение узла. Для него выполнены следующие настройки:

  • В качестве выполняемого узла выбран узел Линейная регрессия (обучение).
  • На вход узла поданы данные таблицы Новые данные.

Оценка стоимости недвижимости (Нейросеть)

Отбор переменных в моделях линейной регрессии

Метрики качества линейных регрессионных моделей

Скачайте и откройте файл в программе Loginom, которую при необходимости можно скачать бесплатно

Скачать демопример

Минимальные требования к системе:

  • Операционная система: Windows 10 и выше
  • CPU x64: 2 core 1
  • Оперативная память: 4 GB
  • Жесткий диск: 10 GB

1 Поддерживается работа на x64 процессорах Intel Core, AMD FX и более новых, содержащих инструкции SSE4.2, POPCNT.