Контекст

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

Постановка задачи

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

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

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

Цели

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

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

Аналитический подход

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

Далее мы создадим регрессионную модель, которая поможет агентам/брокерам по недвижимости предоставить «инструмент» для прогнозирования цен на недавно выставленные на продажу дома, который будет полезен агентам/брокерам по недвижимости при определении цен на свои объявления.

Оценка показателей

Используемые показатели оценки: RMSE, MAE и MAPE, где RMSE — среднее значение квадратного корня ошибки, MAE — среднее абсолютное значение ошибки, а MAPE — средняя процентная ошибка, полученная регрессионной моделью. . Чем меньше значения RMSE, MAE и MAPE, тем точнее модель прогнозирует цены аренды в соответствии с используемыми ограничениями функций.

Кроме того, мы также можем использовать R-квадрат или прил. R-квадрат, если модель, которая будет выбрана в качестве окончательной модели, является линейной моделью. Значение R-квадрата используется для определения того, насколько хорошо модель может представить общую дисперсию данных. Чем он ближе к 1, тем больше модель соответствует наблюдаемым данным. Однако эта метрика недействительна для нелинейных моделей.

Понимание данных

Количество строк и столбцов: (14448, 10)

Обработка данных

Отсутствует значение

В столбце «total_bedrooms» пропущено 137 значений, и закономерности не связаны между собой.

Поскольку «total_bedrooms» имеет ненормальное распределение данных и сильно коррелирует с «домохозяйствами», отсутствующее значение в «total_bedrooms» вводится с медианным значением «total_bedrooms», сгруппированных по одним и тем же «домохозяйствам».

Редкая этикетка

‹1H ОКЕАН = 6369, ВНУТРЕННЯЯ ЧАСТЬ = 4576, РЯДОМ С ОКЕАНОМ = 1879, РЯДОМ С ЗАЛИВОМ = 1622, ОСТРОВ 2

Среднее значение median_house_value для данных, включающих ocean_proximity в NEAR OCEAN и NEAR BAY, почти одинаково, а также одинаково расположено вокруг моря или пляжа, поэтому его можно отнести к 1 категории, а именно NEAR OCEAN.

Между тем, ОСТРОВ будет удален, потому что он имеет только 2 значения и не может быть сгруппирован на основе других категорий.

‹1H ОКЕАН = 6369, ВНУТРЕННЯЯ ЧАСТЬ = 4576, РЯДОМ С ОКЕАНОМ = 3501

Выброс

Отклонение от общего количества номеров

75% данных в столбце total_rooms меньше 3148, а максимум 32627. Конечно, в распределении присутствует асимметрия, представляющая собой вытянутый хвост справа (положительная асимметрия). Имеется 900 данных, сумма которых больше 5693,5 (верхний предел, основанный на методе IQR). Таким образом, данные больше 5693,5 не будут включены в моделирование, поэтому асимметрия будет уменьшена. Это, безусловно, будет ограничением для модели, которая будет построена позже.

Выбросы total_bedrooms

75% данных в столбце total_bedrooms меньше 596, а максимум 2610. Конечно, в распределении присутствует асимметрия, представляющая собой вытянутый хвост справа (положительная асимметрия). Имеется 357 данных, сумма которых превышает 1059,5 (верхний предел, основанный на методе IQR). Таким образом, данные больше 1059,5 не будут включены в моделирование, поэтому асимметрия будет уменьшена. Это, безусловно, будет ограничением для модели, которая будет построена позже.

Выброс медианного_дохода

75% данных в столбце median_income меньше 4 700 000, а максимальная сумма — 15 00010. Конечно, в распределении присутствует асимметрия, представляющая собой вытянутый хвост справа (положительная асимметрия). Имеется 429 данных, сумма которых больше 7,93145 (верхний предел, основанный на методе IQR). Следовательно, данные больше 7,93145 не будут включены в моделирование, поэтому асимметрия будет уменьшена. Это, безусловно, будет ограничением для модели, которая будет построена позже.

Выбросы median_house_value

75% данных в столбце median_house_value меньше 250000, в то время как максимум 500001. Конечно, в распределении присутствует асимметрия, представляющая собой вытянутый хвост справа (положительная асимметрия). Имеется 463 данных, сумма которых превышает 452500 (верхний предел, основанный на методе IQR). Таким образом, данные больше 452500 не будут включены в моделирование, поэтому асимметрия будет уменьшена. Это, безусловно, будет ограничением для модели, которая будет построена позже.

После обработки выбросов остается 12297 строк данных, которые будут использоваться для моделирования.

Разработка функций

Добавление некоторых новых столбцов в качестве новых функций

room_per_household: содержит информацию об общем количестве комнат в одном доме.

Bedrooms_per_room : Информация о спальнях в одном доме.

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

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

Процесс кодирования

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

Моделирование

Модельный эксперимент

Сравните регрессионные модели или получите эталонную модель:

Основываясь на значениях RMSE, MAE и MAPE, XGBoost Regressor и RandomForest Regressor являются двумя лучшими моделями.

Затем будут сделаны прогнозы на тестовом наборе с двумя лучшими эталонными моделями, а именно XGBoost Regressor и RandomForest Regressor.

Предсказать тестовый набор с эталонной моделью

Прогнозирование тестового набора с использованием моделей XGBoost Regressor и Random Forest Regressor.

При прогнозировании тестового набора общая производительность XGBoost Regressor немного лучше. Это видно по значениям RMSE, MAE и MAPE, которые немного ниже, чем у регрессора RandomForest.

Настройка гиперпараметров

Поскольку модель регрессора XGBoost имеет немного лучшую производительность, чем регрессор RandomForest, мы будем использовать эту модель регрессора XGBoost в качестве окончательной модели. На этом этапе мы выполним настройку гиперпараметров модели XGBoost Regressor в надежде улучшить производительность модели.

Прогнозировать набор тестов с помощью настроенной модели

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

Сравнение производительности

Сравнение производительности модели XGBoost Regressor до и после настройки гиперпараметров.

Модель имеет улучшенную производительность (уменьшенные значения RMSE, MAE и MAPE) с настройкой гиперпараметров.

RMSE, MAE и MAPE до настройки: 41742,59, 27736,06, 0,162

RMSE, MAE и MAPE после настройки: 39399,57, 26425,16, 0,158

Значения ошибок составляют значительную разницу между значениями RMSE и MAE. Это также можно проиллюстрировать на графике выше, где есть высокие фактические цены, но более низкие прогнозы (недооценка) и наоборот (переоценка). Однако полученное значение MAPE, составляющее около 15%, позволяет отнести эту модель к категории «хороших прогнозов» (Lewis, 1982).

Важность функции

Из приведенного выше графика видно, что характеристика ocean_proximity является самой важной характеристикой с процентным значением 27%, затем второй является характеристика room_per_household с процентным значением 9,9%.

Ограничение модели

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

Исходя из MAPE, при пороге 25% модель будет оптимально работать в ценовом диапазоне от 60 000 до 450 000 долларов США.

На основе MAE можно интерпретировать, что чем больше прогнозируемое значение, тем выше вероятность ошибки.

Заключение

На основе проведенного моделирования функции «ocean_proximity» и «rooms_per_household» являются наиболее влиятельными функциями для «median_house_value».

Показатели оценки, используемые в модели, представляют собой значения RMSE, MAE и MAPE. Основываясь на значении MAPE, сгенерированном моделью после настройки гиперпараметров, которое составляет 15%, мы можем сделать вывод, что если модель используется для прогнозирования цен на жилье в Калифорнии в диапазоне значений, обученных на модели (максимальная цена 452500 долларов США), тогда прогноз средней цены будет отличаться примерно на 15% от фактической цены.

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

Эту модель, безусловно, все еще можно импортировать для получения более качественных прогнозов. Однако мы можем провести A/B-тестирование модели, созданной в этом проекте, чтобы определить уровень эффективности использования модели для увеличения прибыли агентов/брокеров по недвижимости. Позже, по результатам A/B-тестирования, мы можем получить другие сведения, связанные с вопросами, которые можно и нужно улучшить в модели.

Рекомендации

Проведите A/B-тестирование, чтобы проверить эффективность модели на преимуществах, получаемых агентами по недвижимости/брокерами.

Затем, что можно сделать, чтобы сделать модель еще лучше, например:

1. Проверьте, какие прогнозы имеют высокое значение ошибки. Мы можем разделить ошибки на группы переоценки и недооценки и выбрать самую крайнюю 5%-ную ошибку для каждой группы. Позже группировка превратится в 3 группы, а именно переоценку (5%), недооценку (5%) и группу большинства, чьи ошибки близки к среднему значению (90%). После этого мы можем проверить связь между ошибкой и каждой независимой переменной. В конце концов, мы можем выяснить, какие именно переменные и аспекты вызывают в модели высокие ошибки, чтобы мы могли переобучиться с другими приложениями для разработки функций.

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

3. При добавлении дополнительных данных можно попробовать более сложные модели, такие как рекурсивные нейронные сети (RNN). Однако, если объем данных и функций по-прежнему такой же, как в этом наборе данных, это, скорее всего, не сильно изменит результаты.

4. Построенная модель может быть использована для разработки других моделей. Например, создание модели для прогнозирования обновлений цен на жилье.

И последнее, но не менее важное

Для полных строк кода и потока вы можете посетить мой профиль GitHub, пожалуйста, загляните в мой репозиторий под названием CaliforniaHousePrice или вы можете просто щелкнуть эту ссылку.

Это приложение создано Дафиком Альфаизом/ @dikisahkan. Вы можете связаться со мной через любые социальные сети GitHub, LinkedIn и IG.