Ajuste y representación de regresión lineal

Machine LearningMachine LearningBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este proyecto, aprenderás a realizar una regresión lineal en un conjunto de puntos de datos y visualizar los resultados utilizando Matplotlib. La regresión lineal es una técnica fundamental de aprendizaje automático utilizada para modelar la relación entre una variable dependiente (y) y una o más variables independientes (x).

🎯 Tareas

En este proyecto, aprenderás:

  • Cómo convertir los datos dados en una matriz de Numpy para manipularlos con mayor facilidad
  • Cómo calcular los coeficientes del modelo de regresión lineal, incluyendo la pendiente (w) y la intersección (b)
  • Cómo trazar los puntos de datos en un diagrama de dispersión y dibujar la línea de regresión lineal en el mismo diagrama

🏆 Logros

Después de completar este proyecto, serás capaz de:

  • Preparar datos para el análisis de regresión lineal
  • Utilizar funciones de Numpy para calcular los parámetros de regresión lineal
  • Crear un diagrama de dispersión y superponer la línea de regresión lineal utilizando Matplotlib
  • Tener una mejor comprensión de la regresión lineal y sus aplicaciones prácticas en el análisis y visualización de datos

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL ml(("Machine Learning")) -.-> ml/BasicConceptsGroup(["Basic Concepts"]) ml(("Machine Learning")) -.-> ml/RegressionAlgorithmsGroup(["Regression Algorithms"]) ml(("Machine Learning")) -.-> ml/EvaluationMetricsGroup(["Evaluation Metrics"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) ml/BasicConceptsGroup -.-> ml/basic_concept("Basic Concept") ml/RegressionAlgorithmsGroup -.-> ml/linear_regression("Linear Regression") ml/EvaluationMetricsGroup -.-> ml/mse("Mean Squared Error") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills ml/basic_concept -.-> lab-300236{{"Ajuste y representación de regresión lineal"}} ml/linear_regression -.-> lab-300236{{"Ajuste y representación de regresión lineal"}} ml/mse -.-> lab-300236{{"Ajuste y representación de regresión lineal"}} ml/sklearn -.-> lab-300236{{"Ajuste y representación de regresión lineal"}} end

Convertir datos a una matriz de NumPy

En este paso, aprenderás a convertir los datos dados en una matriz de NumPy para manipularlos con mayor facilidad.

Abre el archivo linear_regression_plot.py.

Localiza la variable data al principio de la función linear_plot().

Convierte la lista data en una matriz de NumPy utilizando la función np.array().

data = np.array(data)

Ahora, la variable data es una matriz de NumPy, lo que la hará más fácil de trabajar en los siguientes pasos.

✨ Revisar Solución y Practicar

Calcular los parámetros de regresión lineal

En este paso, aprenderás a calcular los valores del coeficiente w y la intersección b a partir de los datos.

Continúa en la función linear_plot(), extrae los valores de x e y de la matriz de NumPy data.

x = data[:, 0]
y = data[:, 1]

Utiliza la función np.polyfit() para calcular los parámetros de regresión lineal w y b.

w, b = np.polyfit(x, y, 1)

Redondea los valores calculados de w y b a dos decimales utilizando la función round().

w = round(w, 2)
b = round(b, 2)

Ahora, tienes los valores del coeficiente w y la intersección b listos para ser utilizados en el siguiente paso.

✨ Revisar Solución y Practicar

Trazar la línea de regresión lineal

En este paso, aprenderás a trazar el diagrama de dispersión de muestra y dibujar la línea de ajuste en el gráfico basado en los parámetros calculados.

Continúa en la función linear_plot(), crea una nueva figura y eje de Matplotlib utilizando plt.subplots().

fig, ax = plt.subplots()

Trazar los puntos de datos utilizando la función ax.scatter().

ax.scatter(x, y, label="Data Points")

Trazar la línea de regresión lineal utilizando la función ax.plot() y los valores calculados de w y b.

ax.plot(x, w * x + b, color="red", label=f"Linear Fit: y = {w}x + {b}")

Agregar etiquetas y una leyenda al gráfico.

ax.set_xlabel("X")
ax.set_ylabel("Y")
ax.legend()

Finalmente, devuelve los valores de w, b y el objeto fig.

return w, b, fig

Ahora, has completado la función linear_plot(), que realiza una regresión lineal en los datos dados y devuelve los coeficientes y el objeto de trazado de Matplotlib.

✨ Revisar Solución y Practicar

Ejecutar la representación de regresión lineal

En este último paso, aprenderás a ejecutar tu script para ver en acción la representación de regresión lineal. Esta parte del código utilizará las funciones definidas anteriormente en linear_plot() para mostrar el diagrama de dispersión junto con la línea de regresión lineal.

El fragmento de código de Python proporcionado comprobará si el script se está ejecutando como el programa principal y, si es así, llamará a la función linear_plot() y mostrará el diagrama resultante.

if __name__ == "__main__":
    ## Llama a la función linear_plot para calcular los parámetros de regresión y generar el diagrama
    w, b, fig = linear_plot()
    ## Muestra el diagrama
    plt.show()

Aquí, if __name__ == "__main__": asegura que la función linear_plot() se llame solo cuando el script se ejecuta directamente, no cuando se importa como un módulo. Después de llamar a linear_plot(), que devuelve la pendiente w, la intersección b y el objeto de figura fig, plt.show() se utiliza para mostrar el diagrama en una ventana. Esto te permite inspeccionar visualmente el ajuste de la línea de regresión a los datos.

Ahora puedes presionar el botón "Run Cell" en la parte superior de la primera línea de linear_regression_plot.py y ver el resultado.

Linear regression plot result

Con esta configuración, puedes volver a ejecutar el script fácilmente con diferentes conjuntos de datos o ajustes en el cálculo de la regresión para ver una retroalimentación visual inmediata.

✨ Revisar Solución y Practicar

Resumen

¡Felicidades! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.