Predicción del precio de la vivienda utilizando regresión lineal

Predicción del precio de la vivienda utilizando regresión lineal
Si alguna vez aprendió sobre el aprendizaje automático supervisado, debe haber escuchado una regresión lineal. Es un algoritmo de aprendizaje automático supervisado en el que la salida predicha es continua con tener una pendiente constante. Se utiliza para predecir los valores en un rango continuo en lugar de clasificar los valores en las categorías. La regresión lineal se usa para realizar diferentes tareas como la predicción del precio de la vivienda. Si también desea conocer el método para averiguar la predicción del precio de la casa, lea nuestra guía por completo. Esta guía considera y explica cada factor para realizar la predicción del precio de la vivienda en la regresión lineal fácilmente.

¿Qué es la regresión lineal??

En la ciencia de datos, la regresión lineal es un modelo de aprendizaje automático supervisado que intenta modelar una relación lineal entre las variables dependientes (y) y las variables independientes (x). Cada observación evaluada con un modelo, el valor real del objetivo (y) se compara con el valor predicho del objetivo (y), y las principales diferencias en estos valores se denominan residuos. El modelo de regresión lineal tiene como objetivo minimizar la suma de todos los residuos cuadrados. Aquí está la representación matemática de la regresión lineal:

Y = A0+a1X+ ε

En la ecuación anterior:

Y = Variable dependiente

X = Variable independiente

a0 = Intercepción de la línea que ofrece DOF o grado de libertad adicional.

a1 = Coeficiente de regresión lineal, que es un factor de escala para cada valor de entrada.

ε = Error aleatorio

Recuerde que los valores de las variables x e y son conjuntos de datos de capacitación para la representación lineal de la regresión lineal.

Cuando un usuario implementa una regresión lineal, los algoritmos comienzan a encontrar la mejor línea de ajuste usando a0 y a1. De tal manera, se vuelve más preciso para los puntos de datos reales; ya que reconocemos el valor de a0 y a1, Podemos usar un modelo para predecir la respuesta.

  • Como puede ver en el diagrama anterior, los puntos rojos se observan valores tanto para X como para Y.
  • La línea negra, que se llama una línea de mejor ajuste, minimiza una suma de un error cuadrado.
  • Las líneas azules representan los errores; es una distancia entre la línea de valores de mejor ajuste y observados.
  • El valor del a1es la pendiente de la línea negra.

Regresión lineal simple

Este tipo de regresión lineal funciona utilizando la forma tradicional de intersección de pendiente en la que A y B son dos coeficientes que se elaboran "aprender" y encontrar las predicciones precisas. En la siguiente ecuación, X significa datos de entrada, e Y significa predicción.

Y = bx + a

Regresión multivariable

Una regresión multivariable es un poco más compleja que otros procedimientos. En la siguiente ecuación, 𝒘 significa los pesos o el coeficiente que requiere ser elaborado. Todas las variables 𝑥1, 𝑥2, y 𝑥3 Atributos de información de las observaciones.

Predicción del precio de la vivienda utilizando regresión lineal

Ahora consideremos cada paso para la predicción del precio de la vivienda utilizando regresión lineal. Considere una empresa de bienes raíces con conjuntos de datos que contienen los precios de propiedad de una región específica. El precio de una propiedad se basa en factores esenciales como dormitorios, áreas y estacionamiento. Grande, una compañía de bienes raíces requiere:

  • Encuentre la variable que afecta el precio de una casa.
  • Creación de un modelo lineal cuantitativamente relacionado con el precio de la vivienda con variables como áreas, número de habitaciones y baño, etc.
  • Para encontrar la precisión de un modelo, eso significa qué tan bien las variables pueden predecir los precios de una casa.

A continuación se muestra el código para configurar el entorno, y estamos utilizando scikit-learn para predecir el precio de la vivienda:

importar pandas como PD
importar numpy como np
Importar Sevorn como SNS
Importar matplotlib.Pyplot como PLT
%Matplotlib en línea
de Sklearn.lineal_model importación lineal
de Sklearn.model_selection import train_test_split, cross_val_score
de Sklearn.Métricos Importar Mean_Squared_Error

Después de eso, lea los datos de los precios de la casa:

casas = PD.read_csv ("KC_House_Data.CSV ")
casas.cabeza()

Aquí está la tabla con los detalles completos (conjunto de datos) de diferentes casas:

Ahora, realizaremos la limpieza de datos y el análisis exploratorio utilizando el siguiente código:

#Chek para nulos en los datos
casas.es nulo().suma()

Según el conjunto de datos, no hay nulos disponibles:

Fuera [3]: ID 0
Fecha 0
Precio 0
dormitorios 0
baños 0
sqft_living 0
pisos 0
Waterfront 0
Ver 0
condición 0
Grado 0
sqft_basement 0
yr_built 0
yr_renovated 0
código postal 0
Lat 0
largo 0
Sqft_living 15 0
Sqft_lot 15 0
Dtype: int64

Después de eso, construimos un modelo de regresión lineal. Prepare los datos que definirán la variable predictor y de respuesta:

# Crear x e y
características_cols = 'sqft_living'
x = casas [características_cols] # predictor
y = casas.Precio # Respuesta

Podemos dividir los datos en el tren y probar; La división de trenes o pruebas presenta dos subconjuntos creados al azar de nuestros datos. Estos datos de prueba/trenes se utilizan para adaptarse al algoritmo de aprendizaje para que pueda aprender a predecir. El conjunto de pruebas que hemos utilizado para obtener una idea de trabajar el modelo con nuevos datos.

# divide los datos en tren y prueba
x_train, x_test, y_train, y_test = trenes_test_split (
x, y, test_size = 0.2)
# El conjunto de pruebas será el 20% de todo el conjunto de datos

Después de eso, coloque el modelo en el set de entrenamiento.

# instanciar, ajustar
Linreg = LinearRegression ()
lina.Fit (x_train, y_train)

Una vez que encajamos en el modelo, entonces tenemos que imprimir todos los coeficientes.

impreso.interceptar_
impreso.coef_
-46773.sesenta y cinco
[282.29] # para un aumento de 1 metro cuadrado en el tamaño de la casa,
# El precio de la vivienda aumentará en ~ $ 282, en promedio

El valor de y será igual a un0 Cuando el valor de x = 0; En este caso, será el precio de la casa cuando el sqft_living sea cero. La A1 El coeficiente es el cambio en la y dividida cambiando el valor en x. El incremento de un medidor SQ en el tamaño de la casa está asociado con el incremento de precios de 282 dólares.

Ahora, podemos predecir el precio de 1000 pies cuadrados de vivienda utilizando el siguiente modelo:

# manualmente
precio = -46773.65 + 1000*282.29
# usando el modelo
lina.Predecir (1000)
Array ([238175.93])

Una vez que lo hayamos hecho con el procedimiento anterior, calcule un error cuadrado de RMSE o medio raíz, es la métrica más utilizada para evaluar el modelo de regresión en un conjunto de pruebas:

MSE = Mean_Squared_error (Y_Test, Linreg.Predicte (x_test))
notario público.SQRT (MSE)
259163.48
lina.SCUENTA (X_TEST, Y_TEST)
0.5543

Entonces, como puede ver eso, obtuvimos un error cuadrado medio cuadrado de 259163.48 después de predecir los precios de la casa. Estamos utilizando una sola característica en el modelo anterior; Se esperaba el resultado. Sin embargo, puede mejorar el modelo agregando más funciones.

Conclusión

Esperamos que nuestra guía detallada sobre la predicción del precio de la vivienda usando regresión lineal sea útil para usted. Como hemos mencionado anteriormente, hay una regresión lineal múltiple, como la regresión simple y la regresión multivariable. Principalmente hemos utilizado una regresión simple para predecir el precio de la casa fácilmente. Sin embargo, puede usar una regresión multivariable para predecir los resultados con mayor precisión utilizando diferentes variables. Además de él, hemos utilizado un conjunto de datos completo que tiene información precisa sobre las casas. Principalmente, todos los códigos y bibliotecas anteriores que hemos utilizado no son únicos, ya que existe un procedimiento específico para realizar el procedimiento de predicción de la casa mediante regresión lineal.