Construcción de Regresión Lineal Utilizando NumPy
Ya conoces qué es la regresión lineal simple y cómo encontrar la línea que mejor se ajusta a los datos. Ahora recorrerás todos los pasos para construir una regresión lineal utilizando un conjunto de datos real.
Carga de datos
Disponemos de un archivo, simple_height_data.csv, con los datos de nuestros ejemplos. Cargaremos el archivo y lo revisaremos:
123456import pandas as pd file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file print(df.head()) # Print the first 5 instances from a dataset
El conjunto de datos tiene dos columnas: la primera es 'Father', que es la característica de entrada, y la segunda es 'Height', que es nuestra variable objetivo.
Asignaremos los valores objetivo a la variable y y los valores de la característica a X, y construiremos un diagrama de dispersión.
1234X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
Encontrar parámetros
Ahora, NumPy tiene una función útil para encontrar los parámetros de la regresión lineal.
La regresión lineal es una regresión polinómica de grado 1 (hablaremos sobre regresión polinómica en secciones posteriores). Por eso necesitamos establecer deg=1 para obtener los parámetros de la regresión lineal.
Aquí tienes un ejemplo:
123beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters print('beta_0 is', beta_0) print('beta_1 is', beta_1)
Si no estás familiarizado con la sintaxis beta_1, beta_0 = np.polyfit(X,y,1), esto se llama desempaquetado. Si tienes un iterador (por ejemplo, una lista, un array de NumPy o una serie de pandas) que contiene dos elementos, escribir
a, b = my_iterator
es equivalente a
a = my_iterator[0]
b = my_iterator[1]
Y como el retorno de la función polyfit() es un array de NumPy con dos valores, se permite hacer esto.
Realización de predicciones
Ahora podemos graficar la línea y predecir nuevas variables utilizando los parámetros.
123plt.scatter(X,y) # Build a scatter plot plt.plot(X, beta_0 + beta_1 * X, color='red') # Plot the line plt.show()
Ahora que tenemos los parámetros, podemos utilizar la ecuación de regresión lineal para predecir nuevos valores.
123X_new = np.array([65, 70, 75]) # Feature values of new instances y_pred = beta_0 + beta_1 * X_new # Predict the target print('Predicted y: ', y_pred)
Por lo tanto, es bastante sencillo obtener los parámetros de la regresión lineal. Sin embargo, algunas bibliotecas también pueden proporcionarte información adicional.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Can you explain what the parameters beta_0 and beta_1 represent?
How can I interpret the scatterplot and the fitted line?
What extra information can other libraries provide for linear regression?
Awesome!
Completion rate improved to 5.26
Construcción de Regresión Lineal Utilizando NumPy
Desliza para mostrar el menú
Ya conoces qué es la regresión lineal simple y cómo encontrar la línea que mejor se ajusta a los datos. Ahora recorrerás todos los pasos para construir una regresión lineal utilizando un conjunto de datos real.
Carga de datos
Disponemos de un archivo, simple_height_data.csv, con los datos de nuestros ejemplos. Cargaremos el archivo y lo revisaremos:
123456import pandas as pd file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file print(df.head()) # Print the first 5 instances from a dataset
El conjunto de datos tiene dos columnas: la primera es 'Father', que es la característica de entrada, y la segunda es 'Height', que es nuestra variable objetivo.
Asignaremos los valores objetivo a la variable y y los valores de la característica a X, y construiremos un diagrama de dispersión.
1234X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
Encontrar parámetros
Ahora, NumPy tiene una función útil para encontrar los parámetros de la regresión lineal.
La regresión lineal es una regresión polinómica de grado 1 (hablaremos sobre regresión polinómica en secciones posteriores). Por eso necesitamos establecer deg=1 para obtener los parámetros de la regresión lineal.
Aquí tienes un ejemplo:
123beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters print('beta_0 is', beta_0) print('beta_1 is', beta_1)
Si no estás familiarizado con la sintaxis beta_1, beta_0 = np.polyfit(X,y,1), esto se llama desempaquetado. Si tienes un iterador (por ejemplo, una lista, un array de NumPy o una serie de pandas) que contiene dos elementos, escribir
a, b = my_iterator
es equivalente a
a = my_iterator[0]
b = my_iterator[1]
Y como el retorno de la función polyfit() es un array de NumPy con dos valores, se permite hacer esto.
Realización de predicciones
Ahora podemos graficar la línea y predecir nuevas variables utilizando los parámetros.
123plt.scatter(X,y) # Build a scatter plot plt.plot(X, beta_0 + beta_1 * X, color='red') # Plot the line plt.show()
Ahora que tenemos los parámetros, podemos utilizar la ecuación de regresión lineal para predecir nuevos valores.
123X_new = np.array([65, 70, 75]) # Feature values of new instances y_pred = beta_0 + beta_1 * X_new # Predict the target print('Predicted y: ', y_pred)
Por lo tanto, es bastante sencillo obtener los parámetros de la regresión lineal. Sin embargo, algunas bibliotecas también pueden proporcionarte información adicional.
¡Gracias por tus comentarios!