О проекте

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

О данных

Я решил использовать данные о жилье из округа Кинг, найденные на Kaggle. набор данных содержит информацию о 21 613 домах, проданных в период с начала 2014 г. по конец мая 2015 г. Для каждого дома у нас есть информация, связанная с: датой продажи, ценой продажи, количеством спален и ванных комнат, площадью дома и площадью дома. участок, средний метраж дома и участок ближайших 15 соседей, этажность, сведения о качестве его вида, сведения о качестве и состоянии дома, метражи цокольного и верхних этажей, географическое положение и годы, в которые он был построен, и если и когда он был отремонтирован. Набор данных был полным, в нем не было пропущенных значений, хотя некоторые значения для некоторых функций были немного подозрительными.

Исследовательский анализ

Сначала я взглянул на распределение некоторых переменных:

Грубо говоря, цена и площадь в квадратных футах представляют собой положительно скошенные кривые нормального распределения. квадратные метры над первым этажом имеют очень длинный хвост, как и квадратные метры ближайших 15 соседей. это может привести к плохой подгонке при использовании линейной регрессии. мы видим, что подавляющее большинство цен на жилье падает ниже миллиона. В большинстве домов нет подвала. Очень немногие дома имеют более 4 спален или более 4,5 ванных комнат. Понятно, что в некоторых характеристиках есть существенные выбросы.

Глядя на диаграммы, мы видим, что есть значительные отклонения в цене, площади дома и особенно в размере участка. Изучив некоторые выбросы, я удалил 5 из них за то, что они не являются репрезентативными для набора данных или имеют ошибки, такие как наличие 33 спален в доме площадью 1600 квадратных футов.

Какие функции связаны с ценой

Посмотрев на распределение характеристик, я нашел коэффициенты корреляции между каждой характеристикой и ценой.

Неудивительно, что переменными, наиболее тесно связанными с ценой, являются жилая площадь и класс. Что интересно, так это то, что состояние и год постройки не сильно коррелируют с ценой. Размер участка не сильно коррелирует, потому что в таких районах, как центр города, мы можем найти очень дорогую недвижимость на небольших участках. Существует корреляция между недвижимостью на набережной и ценой, но, основываясь на данных о местоположении, я подозреваю, что многие объекты на набережной не были указаны как таковые (было только 162 примера недвижимости на набережной, которые были помечены). Я подозреваю, что существует сильная корреляция между местоположением и ценой, но эта зависимость не будет линейной, поэтому она не имеет высоких оценок. Я лично был удивлен, увидев, что цена гораздо сильнее коррелирует с количеством ванных комнат, чем с количеством спален. Ниже мы более подробно рассмотрим эти отношения.

Существует очень сильная корреляция с классом дома и ценой, но важно отметить, что эта тенденция гораздо более выражена для домов с рейтингом выше 10, которых всего 499.

Местоположение Местоположение

Между почтовым индексом и ценой нет линейной корреляции, но явно существует связь между географическим положением и ценой. средняя стоимость домов с самым дорогим почтовым индексом (98039 имеет среднюю стоимость 2,16 миллиона) почти в 10 раз превышала среднюю стоимость домов с самым дешевым почтовым индексом (98002 имеет среднюю стоимость 234 тысячи). Я заметил, что существует корреляция между широтой и ценой, поэтому я создал график зависимости цены от географического положения.

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

Пробное разделение поездов

Для обучения своих моделей я разделил данные и зарезервировал 30% для тестовой проверки. Зная, что линейные модели чувствительны к выбросам, я удалил строки, характеристики которых превышали 4 стандартных отклонения от среднего значения. Всего я таким образом удалил 59 строк из тренировочного набора, что составляет менее 0,4% тренировочного набора.

Модель линейной регрессии

Обучение модели линейной регрессии на обучающем наборе дало значение R² 0,486 со средней абсолютной ошибкой 124 106 долларов. Опять же, я ожидал относительно низкой точности из-за неспособности линейных моделей учитывать данные о местоположении.

Хотя линейная модель относительно постоянна в своих прогнозах домов стоимостью менее миллиона долларов, она последовательно занижает цены на дорогие дома.

Модель случайного леса

Обучение модели случайного леса на обучающем наборе дало значение R² 0,717 со средней абсолютной ошибкой 93 707 долларов. Это представляет собой заметное улучшение по сравнению с линейной моделью.

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

Модель XGBoost

Обучение модели XGBoost на тренировочном наборе дало значение R² 0,858 со средней абсолютной ошибкой всего в 66 330 долларов.

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

Наконец, мы можем взглянуть на важность функций из модели XGBoost.

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

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

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

- Думаю, интересно отметить, что количество ванных комнат было вдвое важнее, чем количество спален.

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

Здесь вы можете найти ссылку на репозиторий github