www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Делать больше с меньшими затратами данных: достижение почти современных результатов в оценках недвижимости

Дата публикации May 5, 2017

Стоимость всего рынка жилья в США составляет десятки триллионов долларов, что является одним из крупнейших материальных активов граждан США. Люди, которые не имеют собственных домов, обычно арендуют помещения и в течение 2016 года заплатили за аренду более 470 миллиардов долларов.

Ипотечные или арендные платежи часто являются крупнейшими ежемесячными расходами, которые несут семьи. По этой и другим причинам важно понимать те силы и атрибуты, которые диктуют колебания цен на жилье. Арендаторы или покупатели могут сэкономить деньги, зная, что другие платят за аналогичные объекты, а арендодатели и продавцы могут сэкономить, быстро передавая недвижимость по справедливой рыночной ставке. Арендатор / покупатель не переплачивает, и первоначальный владелец может сэкономить деньги, быстро сдавая в аренду / продавая.

В этой статье я расскажу о некоторых атрибутах окружающей среды, которые влияют на стоимость жилья, помимо внутренних атрибутов объекта (например, спальни, ванные комнаты, квадратные метры и т. Д.). Используя обширные геопространственные данные, предоставленные штатами и муниципалитетами, я могу повысить точность моделей машинного обучения, используемых для прогнозирования цен на жилье. Тестовый пример - Сан-Франциско, в котором имеется надежное хранилище геопространственных данных.

Схема статьи:

  • Целевые наборы данных
  • Геопространственные особенности
  • Модели машинного обучения
  • Оценка модели
  • Выводы

Целевые наборы данных

Я выбрал два набора данных для тестирования: один для стоимости аренды, а другой для стоимости недвижимости. Внутри Airbnb (http://insideairbnb.com/) предоставляет тщательно отобранный набор данных о текущих списках, а офис оценщика в Сан-Франциско предоставляет отчет об оценке имущества. При некоторой очистке эти наборы данных будут служить объектами испытаний для включения геопространственных данных в качестве предикторов цен.

Ниже приведены карты, показывающие пример свойств Ассессора (вверху) и всех местоположений списка Airbnb (внизу).

Небольшая выборка (N = 10000) местоположений свойств набора данных SF Assessor. Темные области - это места, где места перекрываются.
Все 5900 пунктов Airbnb в SF по состоянию на июль 2016 года. В более темных областях места совпадают.

Существуют явные различия в распределении местоположений для двух наборов данных. Свойства Assessor более равномерно распределены с концентрациями свойств в отдельных местах в центре города (предположительно, высокие жилые здания). Набор данных Airbnb более разбросан, но сконцентрирован в нескольких районах восточной части полуострова. Данные Airbnb не разделяют концентрацию юнитов в башнях в центре города, показывая, что местоположения Airbnb анонимны.

Свойства Assessor намного более равномерно распределены по городу, особенно на западе.
Центр города, свойства Assessor точно показывают, что большинство свойств находятся в высоких жилых башнях. Данные Airbnb являются анонимными и, следовательно, не показывают точное местонахождение списков.

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

Это пример местоположения, указанного на веб-сайте Airbnb для недвижимости в SF. Координаты местоположения, указанные в наборе данных, находятся где-то в затененном эллипсе - существует большая неопределенность.

Поскольку моя цель состоит в том, чтобы точно привязать геопространственные данные к каждому устройству, практика анонимности в Airbnb, вероятно, повлияет на модели. К счастью, набор данных Assessor включает в себя точные координаты для каждого свойства, будет меньше неопределенности в корреляции геопространственных данных.

Таблица исходных объектов набора данных перед добавлением геопространственных объектов.

Наборы базовых данных включают в себя ~ 5900 списков для набора данных Airbnb и ~ 300 000 свойств из набора данных SF Assessor. Хотя в наборе данных Airbnb меньше выборок, он имеет значительно больше функций (или предикторов), чем данные Assessor. Набор данных Assessor на два порядка больше, но содержит только 8 объектов по сравнению с 83 для Airbnb.

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


Геопространственные данные

Данные, использованные для улучшения ценовой модели, поступают из различных источников, большинство из которых были общедоступны из города Сан-Франциско (https://datasf.org/). Я определил, что наиболее важными для использования были наборы данных о преступлениях и 311 запросах, оба с геолокацией. Хотя набор данных о преступности включал в себя множество инцидентов, я применил девять категорий Данные 311 представляют широкий диапазон категорий: запросы на ремонт инфраструктуры, граффити, сообщения граждан о различных нарушениях и многие другие.

Ниже приводятся примеры преступлений, связанных с вандализмом (вверху) и воровством / воровством (внизу).

Образец инцидентов вандализма. Темные области - это места, где инциденты перекрываются.
Образец воровства / кражи. Темные области - это места, где инциденты перекрываются.

Ниже приведен пример 311 заявок на ремонт граффити (вверху) и тротуаров и бордюров (внизу).

Образец запросов на удаление граффити.
Образец запросов на ремонт тротуаров и бордюров.

Есть видимые различия в концентрациях этих явлений в определенных районах и на дорогах. Ниже приведены примеры регионов с разным геопространственным распределением запросов на удаление граффити и ремонт бордюров / тротуаров. Подобные изменения могут помочь предсказать небольшие расхождения в ценах по всему Сан-Франциско.

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

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

Участки переписи окрашены по среднему доходу семьи. От светлого до темного доход колеблется от 0 долларов (парки) до 280 000 долларов.
Участки переписи окрашены в процентах населения ниже черты бедности. От светлого до темного, проценты варьируются от 0% (парки) до 53%.

Метод, используемый для векторизации этих геопространственных данных (криминал и 311 инцидентов), включает подсчет количества инцидентов / происшествий (точек) в пределах заданного радиуса местоположения объекта. Свойства, более близкие к концентрации преступлений, будут иметь большее количество в этой категории объектов.

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

Например, область увеличивается, чтобы показать конкретное местоположение (красная точка справа), связанное с инцидентами граффити.
Количество инцидентов с граффити подсчитывается в пределах заданного радиуса запроса от местоположения. Метод повторяется для каждого местоположения и каждого указанного преступления или 311 категории запроса.

Пунктирный кружок выше представляет радиус запроса для данного местоположения. Для каждого местоположения алгоритм подсчитывает количество инцидентов в пределах преступления и 311 категорий. Затем он присваивает эти значения в качестве новых функций каждому местоположению.

Это достигается с помощью KDTree scikit-learn (в модуле соседей), чейquery_radiusМетод хорошо подходит для этой проблемы. Ниже приведена функция, используемая для автоматического добавления объектов в кадр данных pandas с указанием списка категорий и кадра данных, который содержит координаты для каждой категории.

Я использую аналогичный метод для включения дополнительных функций, которые указывают на близость к паркам и высокий уровень шума. В отличие от предыдущих данных, эти наборы данных представлены границами (или полигонами из шейп-файлов). Я преобразовал эти линейные границы в ряд регулярно расположенных точек, чтобы применитьquery_radius, Этот подход дает более высокие значения подсчета, когда местоположения находятся ближе всего к парку и границам шума. Наглядный пример этого метода показан ниже.

Другой пример того, как границы периметра подсчитываются для приблизительной близости к паркам (этот пример) и различных уровней шума.
Анимация, которая показывает, как подсчитываются регулярно расположенные точки, когда они находятся в пределах радиуса запроса заданного местоположения свойства.

Этот метод также использовался для включения данных об уровне шума, полученных из Департамента здравоохранения SF. Необработанные данные шума были сохранены как полигоны шейп-файлов для прогрессивно более высоких уровней шума. Затем я преобразовал эти многоугольники в ряд регулярно расположенных точек и посчитал для каждого местоположения свойства. Более высокие значения для этих функций уровня шума указывают, что свойство ближе к оживленной зоне или дороге.

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

Два скриншота шейп-файлов ГИС для уровней шума 76 и 70 Ldn - это всего лишь два примера из 5 различных используемых уровней шума. Более высокий уровень шума, 76 Ldn (слева), сосредоточен вокруг самых оживленных дорог. Более низкий уровень шума, 70 Ldn (справа), гораздо более распространен, но все еще отсутствует в тихих городских кварталах. Уровень шума приведен в Ldn, который представляет собой среднее значение дневного и ночного шума, оцененного моделью, в которой используются данные о дорожном движении (Департамент здравоохранения SF, карта предоставлена ​​Департаментом планирования SF).

Сводка набора данных и дополнений:

Для обоих наборов данных Airbnb и Assessor я создал 24 новых геопространственных объекта. Все геопространственные данные могут быть дополнительно настроены для оптимизации точности модели путем добавления / изменения категорий или модуляции радиуса запроса.

Таблица с описанием функций, которые будут добавлены в наборы данных Airbnb и Assessor.

Модели машинного обучения

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

Метрики, используемые для оценки точности модели, приняты Zillow, которая также публикует собственные «Zestimates» как для аренды, так и для продажи. Ниже приведена таблица из недавней модели Zillow, оценивающая цены на аренду. У Zillow также есть результаты моделирования продаж недвижимости по районам метрополитена, которые мы будем использовать для оценки моделей данных Assessor.

Таблица из Zillow, показывающая пример статистики, которую они используют для оценки своих моделей. Арендная плата Сан-Франциско была оценена в этой модели, но не показана здесь. Мы в основном сравниваем наши модели с метрикой средней ошибки справа.

Основной метрикой, которую я использую, являетсясредний процент ошибок, илиМЕНЯ%(первый столбец справа вверху) - половина предсказаний модели имеет ошибки, равные или меньшиеМЕНЯ%,

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

Чтобы найти и усовершенствовать лучшую модель машинного обучения для прогнозирования цен на аренду и стоимости недвижимости, я провел несколько предварительных тестов, используя различные методы:

  • Линейная регрессия (с регуляризацией Лассо и Риджа)
  • Случайные Леса
  • Чрезвычайно Рандомизированные Деревья
  • Повышение градиентного дерева (включая XGBoost)

Используя наиболее эффективные модели из базовых / предварительных тестов, я выполнил перекрестную проверку с помощью поиска в сетке, чтобы найти наиболее эффективные параметры модели.


Оценка модели

Airbnb Dataset

В среднем XGBoost дал наиболее точные прогнозы для набора данных Airbnb. В некоторых случаях среднее по ансамблю нескольких модельных предсказаний дало еще лучшие результаты. Несмотря на это, добавление геопространственных элементов мало что дает для повышения точности прогнозов. На графиках ниже показаны результаты моделей, использующих две разные метрики ошибок. Графики читаются слева направо, показывая ошибки прогнозирования моделей при добавлении геопространственных данных. Пунктирные линии указывают на ошибки модели, когда целевая переменная (цены / значения) преобразовывается в журнал перед оценкой моделей. Это оказало наибольшее влияние на исправление ошибок.

Графики, показывающие отклик двух разных метрик ошибок с кумулятивным добавлением геопространственных элементов (ось X). Две разные кривые показывают результаты, когда целевые значения не лог-преобразованы (сплошные) и когда они лог-преобразованы (пунктир).

При добавлении геопространственных элементов точность модели практически не улучшается. Этот результат обескураживает, но я знал, что набор данных Airbnb будет сложно сопоставить с геопространственными данными, учитывая их анонимные координаты.

Поскольку было большое количество текстовых данных в форме обзоров списков, я добавил функции tf-idf, полученные из всех обзоров для данного списка. Кроме того, я подсчитал оценки настроений для всех обзоров и добавил их в список функций. Ни одно из этих дополнений не помогло улучшить точность модели. Вероятно, это связано с тем, что подавляющее большинство отзывов являются положительными и избыточными. Ниже представлен процент положительных, отрицательных и нейтральных отзывов для сравнения.

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

Набор данных оценщика

Модели Random Forest превзошли все остальные модели практически во всех случаях. Лучшие параметры были рассчитаны при множественном поиске по сетке с использованием экземпляров EC2, что значительно сокращает время обработки.

Полученные в результате модели значительно улучшены благодаря добавлению геопространственных элементов, прямо подтверждающих, что экологические характеристики могут быть чрезвычайно полезны для более точных прогнозов. Ниже кривые ошибок (как показано выше для набора данных Airbnb) показывают, что широкий спектр геопространственных данных значительно повышает точность прогнозирования модели. Кроме того, журнал преобразования целевой переменной, значение свойства, повышает точность модели; когда целевые значения лог-преобразованы, их распределения менее искажены и могут быть более точно предсказаны.

Графики, показывающие отклик двух разных метрик ошибок с кумулятивным добавлением геопространственных элементов (ось X). Две разные кривые показывают результаты, когда целевые значения не лог-преобразованы (сплошные) и когда они лог-преобразованы (пунктир).

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

Кривая обучения для набора данных Assessor, иллюстрирующая, что больший набор данных приведет к повышению точности прогнозов (т. Е. К более низким средним абсолютным ошибкам), поскольку кривая перекрестной проверки продолжает иметь тенденцию к снижению.

Выводы

Теперь я могу сравнить результаты моей модели с оценками Зиллоу. Следует отметить, что как модели Zillow для аренды, так и для продажи используют гораздо большие наборы данных фактической стоимости аренды и продажи. Набор данных Airbnb не является технически арендными ценами - все списки сдаются в аренду в разное время и по разным частотам, поэтому на самом деле они не являются справедливыми рыночными ставками. Аналогично, стоимость имущества Ассессора является приблизительной стоимостью земли и улучшений для целей налоговой оценки - фактические цены продажи могут сильно отличаться. Все это говорит о том, что Zillow обладает значительным преимуществом благодаря своим более крупным и точным наборам данных.

Результат прогнозирования цены аренды, сравнение с результатом Zillow для Сан-Франциско.
Результат прогнозирования значения свойства, сравнение с результатом Zillow для Сан-Франциско.

Прогноз цен на аренду Zillow намного лучше, чем результаты моей модели, использующей цены Airbnb. Это неудивительно, учитывая множество различий между наборами данных Zillow и Airbnb. Хотя это не показано в этой статье, кривая обучения для набора данных Airbnb подразумевает, что эта низкая точность не будет улучшена с большим набором данных. Медиана абсолютной погрешности для нашей модели составляет ~ 21 доллар, что означает, что половина прогнозов была в пределах 21 доллара от фактической цены.

Набор данных и модель Assessor работали намного лучше, находясь в процентах от погрешности оценки продаж домов Zillow. В результате средняя абсолютная ошибка составила ~ 37 000 долларов. Этот результат является ярким свидетельством предсказательной силы, которую геопространственные данные могут добавить к набору данных. На ~ 77% меньше выборок, чем в наборе данных Zillow, ошибка моей модели была почти на уровне ошибки Zillow (в пределах 0,6%).

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

В конце концов, я также хотел бы включить изображения Google Street View в модель, используя их для прогнозирования остаточных ошибок. Но это выходит за рамки этого предварительного исследования. В будущем я надеюсь поделиться своим прогрессом.

Вы можете найти некоторые из записных книжек необработанных данных и jupyter, использованных в этом исследовании, в моем хранилище github (https://github.com/tmkilian/GA_capstone-Housing_prices). Спасибо за чтение!

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map