1.Подготовка набора данных

импортировать необходимые библиотеки

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
from sklearn.datasets import load_boston #For load inbuilt dataset

Загрузить набор данных в переменную

boston = load_boston()

Показывает ключи, описание и цель набора данных

print(boston.keys())
print(print(boston.DESCR))
print(print(boston.target))

Преобразовать в набор данных:

data = pd.DataFrame(boston.data,columns = boston.feature_names)
data.head() #Prints first 5 rows

Добавить целевой столбец в набор данных

data['Price'] = boston.target

Получить основную информацию о наборе данных

data.info()

Проверить отсутствующие значения в наборе данных

data.isnull().sum()

Проверить корреляцию между всеми столбцами

data.corr()

Проверьте взаимосвязь между столбцами CRIM и Price, используя диаграмму рассеивания

plt.scatter(data['CRIM'],data['Price'])
plt.xlabel('Crime')
plt.ylabel('Price')

Проверьте взаимосвязь между столбцами RM и Price, используя диаграмму рассеяния

plt.scatter(data['RM'],data['Price'])
plt.xlabel('RM')
plt.ylabel('Price')

Проверьте взаимосвязь между столбцами RM и Price с помощью регплота Seaborn

sns.regplot(x='RM', y='Price', data=data)

Проверьте взаимосвязь между LSTAT и столбцом Price с помощью регплота Seaborn

sns.regplot(x='LSTAT', y='Price', data=data)

Проверьте взаимосвязь между столбцами CHAS и Price с помощью регплота Seaborn

sns.regplot(x='CHAS', y='Price', data=data)

Проверьте взаимосвязь между столбцами PTTRATIO и Price с помощью регплота Seaborn

sns.regplot(x='PTRATIO', y='Price', data=data)

Создайте переменные x и y:

x = data.drop('Price', axis=1)
y = data['Price']

библиотека импорта для разделения данных

from sklearn.model_selection import train_test_split

разделение данных и сохранение в 4 разных переменных

x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.21,random_state=20)

Sстандартизировать данные

from sklearn.preprocessing import StandardScaler
ss = StandardScaler()
x_train = ss.fit_transform(x_train)
x_test = ss.transform(x_test)

Обучение модели

Импорт модели линейной регрессии

from sklearn.linear_model import LinearRegression

Присвоение модели переменной

model = LinearRegression()

Подогнать модель к обучающим данным

model.fit(x_train,y_train)

Распечатайте коэффициенты и ввод

print(model.coef_)
print(model.intercept_)

Прогноз с тестовыми данными

reg_pred = model.predict(x_test)

График рассеяния для предсказания

plt.scatter(y_test,reg_pred)

Остатки означают ошибку

residuals = y_test - reg_pred
residuals

Нанесите на график остатки

sns.displot(residuals, kind='kde')

График для прогноза и остатков

plt.scatter(reg_pred,residuals)

Прогноз новых данных

boston.data[0]
ss.transform(boston.data[0].reshape(1,-1))
model.predict(ss.transform(boston.data[0].reshape(1,-1)))

Код проекта End to End см. в блокноте Kaggle или Github.