Краткая информация о проекте

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

Стоимость дома может варьироваться в зависимости от ряда переменных. Некоторые из наиболее важных элементов, влияющих на стоимость дома, перечислены ниже.
1. Местоположение
Местоположение дома имеет решающее значение и влияет на его стоимость. На стоимость жилья влияют три основных географических фактора. К ним относятся уровень близлежащих школ, перспективы трудоустройства и доступность мест отдыха, развлечений и торговли.
2. Соседство
Стоимость дома определяется ценами продажи недавно закрытых сопоставимых домов в район.
3. Размер дома, комната и холл
Размер является важным фактором, так как дом большего размера может увеличить его стоимость. Для покупателей жилая площадь также имеет решающее значение. Наиболее ценными комнатами в доме часто являются спальни и ванные комнаты, поэтому, чем больше каждой из них, тем ценнее дом.

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

Инструменты

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

Удаление веб-сайтов

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

— Колм Кенни, 2022 г.

О сайте, соскребшем данные

Для цен на жилье был выбран город Стамбул, и посмотрите объявления на сайте, где будут собираться данные, первая информация, которая попадется, это название объявления, район, город, количество комнат и площадь дома. Нам достаточно этой информации для обучения нашей модели машинного обучения. Чтобы получить эти данные с веб-страницы, использовалась библиотека BeautifulSoup.

Давайте код!

Напишите простую функцию для регулярного поиска html-кодов с информацией о доме на сайте и запускайте этот код на всех страницах объявлений.

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

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

В качестве последнего шага, после извлечения наших данных с помощью функций beatifulsoup и выше, мы создаем 5 списков с именами TITLE, PRICE, LOCATION, AREA и ROOM для перечисления наших данных. Мы конвертируем эти списки в фреймы данных и создаем наш набор данных в виде CSV-файла.

Создал набор данных с кодами, которые мы написали выше, и это наш первый взгляд на CSV-файл.

Машинное обучение

Что такое машинное обучение?

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

- ИБМ

Обзор нашего набора данных и введение в машинное обучение

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

Для машинного обучения необходимо внести некоторые улучшения в набор данных. Во-первых, мы удаляем столбец «Безымянный: 0». Используя знания сектора, было решено, что доменная информация о доме является важной функцией машинного обучения, и удаление «m2» в строках и преобразование строковых данных в целое число для разработки лучшего алгоритма машинного обучения. Разделение данных района и соседства в столбце «МЕСТОПОЛОЖЕНИЕ» на два разных столбца, так как позже мы поместим их в машинное обучение как фиктивные переменные. Наконец, строковые данные, показывающие количество комнат и залов в столбце «ROOM» и с оператором «+» в середине, записываются в dataFrame как целое число в двух разных столбцах: «ROOM» и «HALL».

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

Нормальный и логарифмический графики цен на жилье.

Прежде чем перейти к машинному обучению с помощью scikitlearn, statsmodel используется для статистической аппроксимации набора данных. Фреймы данных X и y создаются для обучения статистической модели. Некоторые важные значения проверяются в statsmodel. Эти ключевые значения R-квадрат, прил. R-квадрат, P›|t| и Cond. Нет. Необходимо учитывать нижние примечания из статистической модели OLS.

Пример фиктивной переменной

Машинное обучение с помощью Scikitlearn

Во-первых, наши наборы данных, которые не содержат строковых заголовков, делятся на обучающие, проверочные и тестовые. Обычно эти 3 набора данных разбиваются на 60%, 20% и 20% соответственно. Для этого берется помощь от train_test_split, которая является библиотекой Scikitlearn.

Определены 3 разные регрессионные модели для использования в наборе данных для обучения, проверки и тестирования.

После обучения набора данных набор данных проверки 20% помещается в 3 разные модели регрессии, чтобы увидеть, какая регрессия успешна. Результаты показывают, что линейная регрессия и гребневая регрессия более успешны, чем полиномиальная регрессия.

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

Заключение и рекомендации

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

Для получения более подробной информации, отзывов и вопросов по проекту вы можете связаться со мной через почту и аккаунт LinkedIn. Вы можете посетить мой github, чтобы получить доступ к кодам. Спасибо за ваше время.

С наилучшими пожеланиями.