ML | Boston Housing Kaggle Challenge с линейной регрессией

Описание набора данных взято из

Давайте создадим модель линейной регрессии, предсказывающую цены на жилье

Ввод и набор данных из библиотек.


# Импорт библиотек

import numpy как np

import панды как pd

import matplotlib.pyplot as plt


# Данные импортировать

из sklearn.datasets import load_boston

boston = load_boston ()

Ввод данных в Бостоне и форма function_names


boston.data.shape

boston.feature_names

Преобразование данных массива nd в данные кадр и добавление имен данных в данные


data = pd.DataFrame (boston.data)

data.columns = boston.feature_names


data.head ( 10 )

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


# Добавление столбца "Цена" (цель) к данным
boston.target.shape


данные [ `Цена` ] = boston.target

data.head ()

Описание набора данных в Бостоне


data.describe ()

Информация о наборе данных по Бостону



data.info ()

Получение входных и выходных данных и дальнейшее разделение данных на набор данных для обучение и тестирование.


# Входные данные

x = boston.data


# Вывод

y = boston.target



# разделение данных на обучающие и тестовые данные.

from sklearn.cross_validation import train_test_split

xtrain, xtest, ytrain, ytest = train_test_split (x, y, test_size = 0,2 ,

random_state = 0 )

print ( "xtrain shape:" , xtrain.shape)

print ( "xtest shape:" , xtest.shape)

print ( " ytrain shape: " , ytrain.shape)

print ( "ytest shape:" , ytest.shape)

Применение модели линейной регрессии к набору данных и прогнозированию цен.


# Подгонка регрессионной модели машинного обучения в модель обучения

from sklearn.linear_model import LinearRegression

regressor = Линейная регрессия ( )

regressor.fit (xtrain, ytrain)


# предсказание результатов теста

y_pred = regressor.predict (xtest)

Построить точечную диаграмму для отображения результаты прогноза — Значение ytrue и значение y_pred


# Точечная диаграмма для отображения прогноза
# результаты - значение ytrue в сравнении со значением y_pred

plt.scatter (ytest, y_pred, c = `green` )

plt.xlabel( "Цена: в 1000 долларов" )

plt.ylabel ( "Предсказанный значение" )

plt .title ( "Истинное значение против предсказанного значения: линейная регрессия" )

plt.show ()


Результаты линейной регрессии, т.е. среднеквадратическая ошибка.


# Результаты линейной регрессии.

from sklearn.metrics import mean_squared_error

mse = mean_squared_error (ytest, y_pred)

print ( "Среднеквадратическая ошибка:" , mse)