1. Procesamiento de data 
  2. Ajuste del modelo de regresión lineal simple al conjunto de entrenamiento
  3. Predecir el resultado
  4. Visualización 

Primero que nada y que todo en LA VIDA, vamos a aprender que es la regresión lineal (de verdad que de solo ver el nombre quiero huir) 

Empecemos:

¿Que es eso de la regresión lineal simple? 

Es una técnica estadística utilizada para predecir o estimar una variable cuantitativa en función de otra variable cuantitativa. Esta técnica consiste en modelar una ecuación de una recta

Vamos a verlo mejor 

Vamos a verlo con un ejemplo para entender un poco mejor

Deseamos predecir el sueldo mensual en función de la edad de un trabajador 

Esta es la teoría más básica para entender que es la regresión lineal, ahora vamos a profundizar un poco.

Vamos a hacer un nuevo ejemplo para entender todo

Se desea predecir la nota de un alumno en función de la cantidad de horas que estudio para un examen

Aquí tenemos los datos

Cosas que debes entender:

  • Los puntos por su distribución no pueden formar una linea recta 
  • Existen infinitas rectas posibles que pasen cerca de los 6 puntos 
  • Pero siempre existe una recta que es la mejor : Que es la ecuación estimada. Esta ecuación se obtiene calculando los coeficientes b0 y b1 con el método de mínimos cuadrados
  • Intercepto: Es aquel punto donde cuando alargo la recta hasta intersectar con el eje y aparece un punto
  • Pendiente: Nos indica la inclinación de la recta con respecto al eje horizontal 

Con la ecuación resultante podemos realizar predicciones

Interpretación: Por cada hora de estudio aumenta 1 décima en la nota del examen 

Ahora si ha llegado la hora de ir a nuestro notebook y empezar a desarrollar el ejercicio 

  1. Procesamiento de data
  • Importar las librerías
  • Importar el dataset
  • Observar missing data
  • Recordemos que .iloc usa números enteros para leer y escribir datos en un DataFrame.
  • Dividir el conjunto de datos
  • La biblioteca (sklearn.cross_validation) se ocupará de la escala que utilizaremos para el modelo de regresión lineal simple
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

 — 

dataset = pd.read_csv('ho - Hoja 1.csv')
X = dataset.iloc[ : , : 1 ].values
Y = dataset.iloc[ : , 1 ].values
dataset

2. Ajuste del modelo de regresión lineal simple al conjunto de entrenamiento 

Para ajustar el conjunto de datos al modelo, utilizaremos la clase de regresión lineal de la biblioteca sklearn.linear_model. Luego hacemos un regresor de objetos de la clase de regresión lineal. Ahora ajustaremos el objeto regresor en nuestro conjunto de datos usando la clase de regresión lineal del método fit ()

from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor = regressor.fit(X_train, Y_train)
regressor

Por si te perdiste en el .fit(x_train, Y_train) te los explico aquí un poco mejor

X_train es toda la instancia con atributos, Y_train es la etiqueta de cada instancia. 

Según la documentación 

El conjunto de entrenamiento es un subconjunto del conjunto de datos utilizado para entrenar un modelo.

x_train es el conjunto de datos de entrenamiento.
y_train es el conjunto de etiquetas para todos los datos en x_train.

Además te dejo este post maravilloso para entender un poco mejor Keras en Deep learning (x_train, Y_train)

LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False)

3. Predecir el resultado

Ahora vamos a predecir las observaciones de nuestro conjunto de pruebas. Guardaremos la salida en un vector Y_pred. Para predecir el resultado, utilizamos el método de predicción de la clase de regresión lineal en el regresor que entrenamos en el paso anterior con el método fit

Y_pred = regressor.predict(X_test)
Y_pred

4. Ahora vamos a visualizar

El último paso es visualizar nuestros resultados. Usaremos la biblioteca matplotlib.pyplot para hacer diagramas de dispersión de los resultados de nuestro conjunto de entrenamiento y los resultados del conjunto de prueba para ver qué tan cerca nuestro modelo predice los valores

plt.scatter(X_train , Y_train, color = 'red')
plt.plot(X_train , regressor.predict(X_train), color ='blue')
plt.scatter(X_test , Y_test, color = 'red')
plt.plot(X_test , regressor.predict(X_test), color ='blue')

Y esto fue todo. Creo que debe existir una forma mucho más fácil de realizar este ejercicio. Aún no me encuentro en la capacidad de usar KERAS o muchas de las cosas que usé en este post, así que el desarrollo de este fue mucho más investigativo (Gracias Google). Si alguien tiene una solución más fácil ¡Por favor compártela aquí!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *