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

Полную статью с исходным кодом читайте здесь —https://machinelearningprojects.net/house-price-prediction/

Давай сделаем это…

Шаг 1 — Импорт необходимых библиотек.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score

%matplotlib inline

Шаг 2 — Чтение наших входных данных для прогнозирования цен на жилье.

customers = pd.read_csv('USA_Housing.csv')
customers.head()

Шаг 3 — Описание наших данных.

customers.describe()

Шаг 4 — Анализ информации из наших данных.

customers.info()

Шаг 5 — Графики для визуализации данных прогнозирования цен на жилье.

sns.pairplot(customers)
  • Мы используем sns.pairplot(data) для построения всех возможных комбинаций числовых столбцов в наборе данных.
  • Из приведенных ниже графиков мы можем сделать вывод, что цена сильно коррелирует со средним доходом по региону.

Шаг 6 — Масштабирование наших данных.

scaler = StandardScaler()

X=customers.drop(['Price','Address'],axis=1)
y=customers['Price']

cols = X.columns

X = scaler.fit_transform(X)
  • Нам нужно масштабировать наши данные, чтобы привести все к одному масштабу или в пределах одного диапазона.
  • Здесь мы используем StandardScaler для масштабирования наших данных.
  • Просто посмотрите на первое изображение входных данных и посмотрите, как разные столбцы относятся к разным шкалам.

Шаг 7 — Разделение наших данных для обучения и тестирования.

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=101)
  • Использование train_test_split() для разделения наших данных в пропорции 70%-30%.

Шаг 8 — Обучение нашей модели линейной регрессии для прогнозирования цен на жилье.

lr = LinearRegression()
lr.fit(X_train,y_train)

pred = lr.predict(X_test)

r2_score(y_test,pred)
  • Мы используем r2_score здесь для измерения производительности нашей регрессионной модели.
  • Наша модель дает 0,91 r2_score из 1, что является очень приличной оценкой.
  • Я также пытался использовать регрессии Лассо и Риджа, но они также работали почти так же, как линейная регрессия.

Шаг 9 — Давайте визуализируем наши прогнозы прогнозирования цен на жилье.

sns.scatterplot(x=y_test, y=pred)
  • Это должна быть прямая линия для 100% точной модели.
  • Но мы также получаем такой тренд, как прямая линия, что тоже неплохо.

Шаг 10 — Построение остатков нашей модели прогнозирования цен на жилье.

sns.histplot((y_test-pred),bins=50,kde=True)
  • Здесь мы строим гистограмму остатков.
  • Остаток — это ошибка в регрессии, или мы можем сказать разницу между реальным значением и нашим прогнозируемым значением.
  • Как мы видим, большинство остатков около 0, что означает, что наши прогнозы почти близки к реальным значениям, следовательно, это очень хорошая модель.

Шаг 11 — Наблюдение за коэффициентами.

cdf=pd.DataFrame(lr.coef_, cols, [‘coefficients’]).sort_values(‘coefficients’,ascending=False)
cdf
  • Это коэффициенты, рассчитанные при линейной регрессии.
  • Интуиция подсказывает, что увеличение Avg. Доход от площади приведет к увеличению цены дома на 230377,522 долл. США при условии, что все остальные факторы остаются неизменными.

Чтобы узнать больше о машинном обучении, глубоком обучении, компьютерном зрении, НЛП и проектах Flask, посетите мой блог.



Для дальнейшего объяснения кода и исходного кода посетите здесь



Итак, это все для этого блога, ребята, спасибо за то, что прочитали его, и я надеюсь, что вы возьмете что-то с собой после прочтения этого и до следующего раза 👋…