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)))