Введение
Успешно завершен второй проект Data Science Bootcamp, организованный совместно с Стамбульской академией наук о данных и Hepsiburada. В этом проекте мы создали модель прогнозирования цен на жилье с использованием машинного обучения, где продаются дома в Кадыкёй, Стамбул. Мы получили данные с этого сайта для парсинга.
Постановка задачи
Цель проекта — помочь нам понять взаимосвязь между характеристиками дома и то, как эти переменные используются для прогнозирования цены дома.
Цель
- Очистка веб-страниц с помощью Python BeautifulSoup
- Предсказать цену дома
Методология
- Сбор данных с помощью веб-скрейпинга
- Очистка и реорганизация данных
- Исследовательский анализ данных (EDA)
- Линейная регрессия
- Выводы
1. Сбор данных с помощью парсинга веб-страниц
Шаг 1 :
Наш первый шаг — импортировать библиотеки, которые могут потребоваться для построения нашей модели.
Шаг 2 :
Используя эту функцию, мы можем получить html-код заданного URL-адреса для работы.
Шаг 3 :
Затем нам нужна функция, как показано ниже, для доступа ко всем страницам.
Шаг 4:
На следующем шаге нам нужны были все ссылки на всех страницах для доступа к домашним публикациям.
Шаг 5:
Наконец, мы вытащили функции, которые мы будем загружать в столбцы со страницы, и создали наш фрейм данных.
df.to_csv("zingat_house_price_prediction.csv", encoding="ANSI")
2. Очистка и реорганизация данных
У нас есть некоторые проблемы с набором данных. Нам нужно разобраться с этим, прежде чем мы перейдем к части регрессии. Поэтому мы используем медианную функцию для заполнения нулевых значений и преобразования столбцов объектного типа в целочисленный тип. Мы убрали колонку «ОДА-САЛОН САЙИСИ» для лучшего машинного обучения. Мы создали новые столбцы, применив get_dummies к столбцу «MAHALLE».
3. Исследовательский анализ данных
После очистки данных и реорганизации распределения целевой переменной следующим образом;
Мы сгруппировали некоторые функции, чтобы построить лучшую модель машинного обучения, и визуализировали их. Подробные коды вы можете найти здесь.
- 1. Топ-10 районов с самыми высокими средними ценами на жилье.
- 2.Распределение количества комнат и залов.
- 3.Распределение количества санузлов.
- 4.Корреляционная матрица характеристик дома
- 5.Корреляционная матрица района, в котором расположен дом
sns.pairplot(DF, aspect=1.5)
4. Линейная регрессия
Прежде всего, нам нужно импортировать все пакеты, которые мы обязательно будем использовать.
from sklearn.linear_model import LinearRegression from sklearn.linear_model import RidgeCV import statsmodels.api as sm import statsmodels.formula.api as smf from sklearn.model_selection import train_test_split from pandas import Series, DataFrame from sklearn.preprocessing import StandardScaler from sklearn.linear_model import Ridge from sklearn.linear_model import Lasso
Мы использовали набор данных, который мы применили get_dummies (new_df). После этого мы разделяем данные и классифицируем, какие столбцы являются переменными признаков, а какие — целевыми переменными. Размер тестовых данных составляет 20%. Мы использовали R2-Score и MSE в качестве показателей оценки при прогнозировании модели и сделали это для проверки проверки поезда.
MSE Value: FİYAT 5.757277e+12 dtype: float64 R^2 Score Value (Test): 0.5801046663202142 R^2 Score Value (Validation): 0.5690857021978828
MSE Value: FİYAT 6.274632e+12 dtype: float64 R^2 Score Value (Test): 0.5438016679245479 R^2 Score Value (Validation): 0.5303632838955692
R^2 Score Value (Test): 0.5793058427962506 R^2 Score Value (Validation): 0.563142565405035
R^2 Score Value (Test): 0.5837754090161392 R^2 Score Value (Validation): 0.5620382643849704
5. Выводы
Согласно анализу, особенности, которые наиболее положительно влияют на цену дома в Кадыкее:
- Квадратный метр дома.
- Количество комнат и жилых комнат в доме
- Дом находится в Каддебостане или Фенербахче.
- Показаны лучшие методы регрессии Линейная регрессия и Лассо-регрессия.
Что мы можем сделать, чтобы улучшить модель предсказания?
- Сканирование данных о доме в большой области.
- Работа с дополнительными функциями.
- Выполнение более обширной разработки функций для функций.
Спасибо, что прочитали и нашли время прочитать мою статью. Вы можете посетить мои аккаунты LinkedIn и Github для получения более подробной информации.