ML | Boston Housing Kaggle Challenge con regresión lineal

| | | | | | | | | | | | | | | | | | | | | | | | |

Descripción del conjunto de datos tomada de

Hagamos un modelo de regresión lineal que prediga los precios de la vivienda

Entrada de bibliotecas y conjunto de datos.


# Importación de bibliotecas

importar numpy como np

import pandas como pd

importar matplotlib.pyplot as plt


# Datos importar

from sklearn.datasets importar load_boston

boston = load_boston ()

Entrada de datos de Boston y formulario de nombres de funciones


boston.data.shape

boston.feature_names

Conversión de datos de la segunda matriz en datos marco y agregando nombres de datos a los datos


Agregar la columna "Precio" al conjunto de datos


datos = pd.DataFrame (boston.datos)

data.columns = boston.feature_names


data.head ( 10 )

Aplicación de un modelo de regresión lineal a un conjunto de datos y predicción de precios.


# Ajuste el modelo de regresión de ML al modelo de aprendizaje

from sklearn.linear_model importar Regresión lineal

regresor = Regresión Lineal ( )

regressor.fit (xtrain, ytrain)


# predecir resultados de casos de prueba

y_pred = regressor.predict (xtest)

# Agregar la columna "Precio" (objetivo) a los datos
boston.target.shape


datos [ `Precio` ] = boston.objetivo

data.head()

Descripción del conjunto de datos de Boston


data.describe()

Información del conjunto de datos de Boston



datos.info ()

Obtener datos de entrada y salida y dividirlos en un conjunto de datos para entrenamiento y pruebas.


# Datos de entrada

x = boston.data


# Salida

y = boston.target



# división de datos en conjuntos de datos de entrenamiento y prueba.

de sklearn.cross_validation importar entrenar_prueba_dividir

xtren, xprueba, ytren, yprueba = train_test_split (x, y, test_size = 0.2 < clase de código = "simple">,

estado_aleatorio = 0 )

imprimir ( "xtrain forma:" , xtrain.shape)

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

imprimir ( " ytrain forma: " , ytrain.shape)

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

Cree un gráfico de dispersión para mostrar los resultados del pronóstico — valor yverdadero versus valor y_pred


# Diagrama de dispersión para mostrar el pronóstico
# resultados - valor yverdadero versus valor y_pred

plt.scatter (ytest, y_pred, c = `verde` < clase de código ="simple ">)

plt.xlabel ( "Precio: en $ 1000`s" )

plt.ylabel ( "Predicted value" )

plt .title ( "Valor verdadero vs valor predicho: regresión lineal" )

plt.show ()


Resultados de regresión lineal, es decir, error cuadrático medio.


# Resultados de regresión lineal.

de sklearn.metrics importar error_media_cuadrado

mse = error_cuadrado_medio (ytest, y_pred)

print ( < clase de código = "cadena"> "Error cuadrático medio:" , mse)