Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Construcción de Regresión Lineal | Sección
Fundamentos del Aprendizaje Supervisado

bookConstrucción de Regresión Lineal

Ya conoces qué es la regresión lineal simple y cómo encontrar la recta 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:

123456
import 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
copy

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.

123456
import matplotlib.pyplot as plt X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
copy

Encontrar parámetros

Para implementar la regresión lineal en Scikit-learn, se utiliza la clase LinearRegression.

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

Parámetros

La clase LinearRegression tiene varios parámetros que controlan cómo se ajusta el modelo.

  • fit_intercept (por defecto=True): Decide si se calcula el intercepto (sesgo) para este modelo. Si se establece en False, no se utilizará intercepto en los cálculos (es decir, se espera que los datos estén centrados).
  • copy_X (por defecto=True): Si es True, X será copiado; de lo contrario, puede ser sobrescrito.
  • n_jobs (por defecto=None): El número de trabajos a utilizar para el cálculo. Esto solo proporcionará una aceleración para n_targets > 1 y problemas suficientemente grandes. None significa 1 a menos que esté en un contexto joblib.parallel_backend. -1 significa usar todos los procesadores.
  • positive (por defecto=False): Cuando se establece en True, fuerza a que los coeficientes sean positivos. Esta opción solo es compatible con arreglos densos.

Métodos comunes

  • fit(X, y): Ajustar el modelo lineal.
  • predict(X): Predecir usando el modelo lineal.
  • score(X, y): Retornar el coeficiente de determinación de la predicción.

Atributos

  • coef_: Coeficientes estimados para el problema de regresión lineal.
  • intercept_: Término independiente en el modelo lineal.

En Scikit-learn, se utiliza la clase LinearRegression del módulo linear_model. A diferencia de NumPy, aquí no se define el grado; esta clase está diseñada específicamente para modelos lineales. Se utiliza el método .fit() para calcular los parámetros.

A continuación, un ejemplo:

1234567891011121314
from sklearn.linear_model import LinearRegression import numpy as np # Convert the pandas Series to a NumPy array, then reshape X_reshaped = X.values.reshape(-1, 1) model = LinearRegression() model.fit(X_reshaped, y) # Train the model beta_0 = model.intercept_ # Get the intercept (beta_0) beta_1 = model.coef_[0] # Get the coefficient (beta_1) print('beta_0 is', beta_0) print('beta_1 is', beta_1)
copy
Note
Nota

Si no está familiarizado con la sintaxis model.intercept_ y model.coef_, esta es una convención de Scikit-learn. Los atributos que se calculan (aprenden) durante el proceso de entrenamiento siempre terminan con un guion bajo _ (por ejemplo, intercept_, coef_). El intercept_ es un valor único, mientras que coef_ es un arreglo que contiene los coeficientes para cada característica (en la regresión lineal simple, solo tiene un elemento).

Realización de predicciones

Ahora se puede graficar la línea y predecir nuevas variables utilizando el modelo entrenado.

123
plt.scatter(X, y) # Build a scatter plot plt.plot(X, model.predict(X_reshaped), color='red') # Plot the line using predictions plt.show()
copy

Ahora que se dispone del modelo entrenado, se puede utilizar el método .predict() para predecir nuevos valores.

123
X_new = np.array([[65], [70], [75]]) # Feature values (must be 2D) y_pred = model.predict(X_new) # Predict the target print('Predicted y: ', y_pred)
copy

Por lo tanto, es bastante sencillo obtener los parámetros de la regresión lineal. Sin embargo, algunas bibliotecas también pueden proporcionar información adicional.

question mark

¿Qué clase se utiliza para implementar la regresión lineal en Scikit-learn?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 3

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

bookConstrucción de Regresión Lineal

Desliza para mostrar el menú

Ya conoces qué es la regresión lineal simple y cómo encontrar la recta 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:

123456
import 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
copy

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.

123456
import matplotlib.pyplot as plt X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
copy

Encontrar parámetros

Para implementar la regresión lineal en Scikit-learn, se utiliza la clase LinearRegression.

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

Parámetros

La clase LinearRegression tiene varios parámetros que controlan cómo se ajusta el modelo.

  • fit_intercept (por defecto=True): Decide si se calcula el intercepto (sesgo) para este modelo. Si se establece en False, no se utilizará intercepto en los cálculos (es decir, se espera que los datos estén centrados).
  • copy_X (por defecto=True): Si es True, X será copiado; de lo contrario, puede ser sobrescrito.
  • n_jobs (por defecto=None): El número de trabajos a utilizar para el cálculo. Esto solo proporcionará una aceleración para n_targets > 1 y problemas suficientemente grandes. None significa 1 a menos que esté en un contexto joblib.parallel_backend. -1 significa usar todos los procesadores.
  • positive (por defecto=False): Cuando se establece en True, fuerza a que los coeficientes sean positivos. Esta opción solo es compatible con arreglos densos.

Métodos comunes

  • fit(X, y): Ajustar el modelo lineal.
  • predict(X): Predecir usando el modelo lineal.
  • score(X, y): Retornar el coeficiente de determinación de la predicción.

Atributos

  • coef_: Coeficientes estimados para el problema de regresión lineal.
  • intercept_: Término independiente en el modelo lineal.

En Scikit-learn, se utiliza la clase LinearRegression del módulo linear_model. A diferencia de NumPy, aquí no se define el grado; esta clase está diseñada específicamente para modelos lineales. Se utiliza el método .fit() para calcular los parámetros.

A continuación, un ejemplo:

1234567891011121314
from sklearn.linear_model import LinearRegression import numpy as np # Convert the pandas Series to a NumPy array, then reshape X_reshaped = X.values.reshape(-1, 1) model = LinearRegression() model.fit(X_reshaped, y) # Train the model beta_0 = model.intercept_ # Get the intercept (beta_0) beta_1 = model.coef_[0] # Get the coefficient (beta_1) print('beta_0 is', beta_0) print('beta_1 is', beta_1)
copy
Note
Nota

Si no está familiarizado con la sintaxis model.intercept_ y model.coef_, esta es una convención de Scikit-learn. Los atributos que se calculan (aprenden) durante el proceso de entrenamiento siempre terminan con un guion bajo _ (por ejemplo, intercept_, coef_). El intercept_ es un valor único, mientras que coef_ es un arreglo que contiene los coeficientes para cada característica (en la regresión lineal simple, solo tiene un elemento).

Realización de predicciones

Ahora se puede graficar la línea y predecir nuevas variables utilizando el modelo entrenado.

123
plt.scatter(X, y) # Build a scatter plot plt.plot(X, model.predict(X_reshaped), color='red') # Plot the line using predictions plt.show()
copy

Ahora que se dispone del modelo entrenado, se puede utilizar el método .predict() para predecir nuevos valores.

123
X_new = np.array([[65], [70], [75]]) # Feature values (must be 2D) y_pred = model.predict(X_new) # Predict the target print('Predicted y: ', y_pred)
copy

Por lo tanto, es bastante sencillo obtener los parámetros de la regresión lineal. Sin embargo, algunas bibliotecas también pueden proporcionar información adicional.

question mark

¿Qué clase se utiliza para implementar la regresión lineal en Scikit-learn?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 3
some-alt