S06L03 – Implementación de regresión lineal en Python – Parte 2

html

Implementación y Evaluación de Regresión Lineal en Python: Una Guía Integral

Linear Regression

Introducción a la Regresión Lineal

La regresión lineal es uno de los algoritmos más fundamentales y ampliamente utilizados en el aprendizaje automático y el análisis de datos. Modela la relación entre una variable dependiente y una o más variables independientes ajustando una ecuación lineal a los datos observados. En esta guía, te llevaremos a través de la implementación de la regresión lineal en Python utilizando la biblioteca scikit-learn, comparando los resultados reales versus los predichos y evaluando el desempeño del modelo utilizando la métrica R-cuadrado.

Ya seas un entusiasta de la ciencia de datos o un profesional experimentado, este tutorial integral te proporcionará el conocimiento y las habilidades prácticas para construir y evaluar un modelo de regresión lineal de manera efectiva.

Tabla de Contenidos

  1. Descripción del Conjunto de Datos
  2. Configuración de Tu Entorno
  3. Importación de las Librerías Necesarias
  4. Carga y Exploración de los Datos
  5. Visualización de los Datos
  6. Preparación de los Datos para el Entrenamiento
  7. Construcción del Modelo de Regresión Lineal
  8. Realización de Predicciones
  9. Comparación de Resultados Reales vs. Predichos
  10. Evaluación del Modelo con R-cuadrado
  11. Conclusión
  12. Lecturas Adicionales

Descripción del Conjunto de Datos

Para este tutorial, utilizaremos el conjunto de datos Canada Per Capita Income de Kaggle. Este conjunto de datos proporciona información sobre el ingreso per cápita anual en Canadá durante varios años, lo que nos permite analizar tendencias de ingresos y construir un modelo predictivo.

Configuración de Tu Entorno

Antes de sumergirte en el código, asegúrate de tener Python instalado en tu sistema. Se recomienda usar un entorno virtual para gestionar las dependencias de tu proyecto. Puedes configurar un entorno virtual usando venv o herramientas como conda.

Importación de las Librerías Necesarias

Comenzaremos importando las librerías esenciales necesarias para la manipulación de datos, visualización y construcción de nuestro modelo de regresión.

Carga y Exploración de los Datos

A continuación, cargaremos el conjunto de datos en un DataFrame de Pandas y echaremos un vistazo preliminar a su estructura.

Salida:

A partir de la salida, podemos observar que el conjunto de datos contiene dos columnas: year y per capita income (US$).

Visualización de los Datos

La visualización ayuda a entender los patrones y relaciones subyacentes dentro de los datos. Crearemos un diagrama de dispersión para visualizar la relación entre el año y el ingreso per cápita.

Scatter Plot

El diagrama de dispersión revela la tendencia del aumento del ingreso per cápita a lo largo de los años. Sin embargo, la relación puede no ser perfectamente lineal, lo que indica una posible variabilidad en los datos.

Preparación de los Datos para el Entrenamiento

Antes de entrenar nuestro modelo, necesitamos preparar los datos separando las características (variables independientes) de la variable objetivo (variable dependiente).

En este caso, X contiene la columna year y Y contiene la columna per capita income (US$).

Construcción del Modelo de Regresión Lineal

Ahora dividiremos los datos en conjuntos de entrenamiento y prueba para evaluar el desempeño de nuestro modelo en datos no vistos.

Explicación:

  • X_train & y_train: Se utilizan para entrenar el modelo.
  • X_test & y_test: Se utilizan para probar el desempeño del modelo.
  • test_size=0.20: El 20% de los datos se reserva para pruebas.
  • random_state=1: Asegura la reproducibilidad de la división.

Ahora, instanciemos y entrenemos el modelo de Regresión Lineal.

Salida:

Realización de Predicciones

Con el modelo entrenado, ahora podemos hacer predicciones sobre el conjunto de pruebas.

Salida:

Estos valores representan las predicciones del modelo sobre el ingreso per cápita basado en los años de entrada en el conjunto de pruebas.

Comparación de Resultados Reales vs. Predichos

Para evaluar qué tan bien está desempeñando nuestro modelo, compararemos los valores reales (y_test) con los valores predichos (y_pred).

Salida:

Análisis:

  • Buenas Predicciones: Las entradas donde los valores de Actual y Predicted están cerca indican que el modelo está funcionando bien.
  • Discrepancias: Diferencias significativas resaltan áreas donde el modelo puede necesitar mejoras o donde la relación no es perfectamente lineal.

Por ejemplo, mientras que la mayoría de las predicciones están razonablemente cerca de los valores reales, algunas discrepancias, como un valor real de 4,251.18 frente a un valor predicho de 1,248.95, sugieren una variabilidad que el modelo no pudo capturar.

Evaluación del Modelo con R-cuadrado

Para evaluar cuantitativamente el desempeño del modelo, usaremos la métrica R-cuadrado (R²). R-cuadrado representa la proporción de la variabilidad de la variable dependiente que es explicada por la(s) variable(s) independiente(s) en el modelo.

Salida:

Interpretación:

  • Un valor de R-cuadrado de 0.80 indica que el 80% de la variabilidad en el ingreso per cápita es explicada por el año.
  • Mientras que 80% es una indicación fuerte de un buen ajuste, también implica que el 20% de la variabilidad permanece sin explicar, posiblemente debido a otros factores no considerados en el modelo o a la variabilidad inherente de los datos.

Comprendiendo los Valores de R-cuadrado:

  • 1: Ajuste perfecto. El modelo explica toda la variabilidad.
  • 0: Sin poder explicativo. El modelo no explica ninguna variabilidad.
  • Valores Negativos: Indican que el modelo funciona peor que una línea horizontal (media de la variable objetivo).

Conclusión

En esta guía, hemos implementado exitosamente un modelo de Regresión Lineal en Python para predecir el ingreso per cápita de Canadá a lo largo de los años. Siguiendo estos pasos, puedes:

  1. Cargar y Explorar Datos: Comprender la estructura del conjunto de datos y las tendencias iniciales.
  2. Visualizar Relaciones: Utilizar diagramas de dispersión para identificar posibles relaciones lineales.
  3. Preparar Datos: Dividir los datos en conjuntos de entrenamiento y prueba para una evaluación imparcial.
  4. Construir y Entrenar el Modelo: Utilizar LinearRegression de scikit-learn para ajustar el modelo.
  5. Realizar Predicciones: Generar predicciones usando el modelo entrenado.
  6. Comparar Resultados: Analizar qué tan bien los valores predichos se alinean con los datos reales.
  7. Evaluar el Desempeño: Usar R-cuadrado para cuantificar el poder explicativo del modelo.

Aunque el modelo demuestra un valor de R-cuadrado encomiable, hay margen de mejora. Explorar características adicionales, transformar variables o emplear algoritmos más complejos puede potencialmente mejorar el desempeño predictivo.

Lecturas Adicionales

Emprender este viaje de regresión lineal te equipa con habilidades fundamentales aplicables en diversos dominios orientados a los datos. Continúa practicando con conjuntos de datos diversos para profundizar tu comprensión y competencia en el aprendizaje automático.

#LinearRegression #Python #MachineLearning #DataScience #ScikitLearn #R2Score #DataVisualization #PredictiveModeling #PythonTutorial

Comparte tu aprecio