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 Múltiple | Sección
Fundamentos del Aprendizaje Supervisado

bookConstrucción de Regresión Lineal Múltiple

La clase LinearRegression permite construir una Regresión Lineal Múltiple de la misma manera que una Regresión Lineal Simple. Gestiona automáticamente múltiples características (columnas) en la matriz de entrada.

Preparación de los datos

Disponemos del mismo conjunto de datos del ejemplo de regresión lineal simple, pero ahora incluye la altura de la madre como segunda característica. Lo cargaremos y observaremos su variable X:

12345678
import pandas as pd file_link='https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/heights_two_feature.csv' df = pd.read_csv(file_link) # Open the file # Assign the variables X = df[['Father', 'Mother']] y = df['Height'] print(X.head())
copy

Por defecto, el parámetro fit_intercept=True está activado, por lo que el modelo calcula automáticamente el término de sesgo ()! Podemos pasar el DataFrame X (que ya es 2D) directamente al modelo.

Encontrar los parámetros

¡Excelente! Ahora podemos construir el modelo, encontrar los parámetros y realizar predicciones.

12345678910111213141516171819202122
from sklearn.linear_model import LinearRegression import numpy as np # Initialize the model model = LinearRegression() # Train the model (No need to add constant!) model.fit(X, y) # Get the parameters beta_0 = model.intercept_ beta_1 = model.coef_[0] # Coefficient for 'Father' beta_2 = model.coef_[1] # Coefficient for 'Mother' print('beta_0 is: ', beta_0) print('beta_1 is: ', beta_1) print('beta_2 is: ', beta_2) # Predict new values # Feature values of new instances: [[Father, Mother], [Father, Mother], ...] X_new = np.array([[65, 62], [70, 65], [75, 70]]) y_pred = model.predict(X_new) # Predict the target print('Predictions:', y_pred)
copy
Note
Nota

Ahora que nuestro conjunto de entrenamiento tiene 2 características, debemos proporcionar 2 características para cada nueva instancia que deseamos predecir. Por eso se utilizó np.array([[65, 62],[70, 65],[75, 70]]). Además, ten en cuenta que model.coef_ devuelve un arreglo de coeficientes que corresponde al orden de las columnas en X. Como X era ['Father', 'Mother'], coef_[0] es la pendiente para Father y coef_[1] es para Mother.

question mark

¿La clase LinearRegression requiere agregar una columna constante manualmente?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 7

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 Múltiple

Desliza para mostrar el menú

La clase LinearRegression permite construir una Regresión Lineal Múltiple de la misma manera que una Regresión Lineal Simple. Gestiona automáticamente múltiples características (columnas) en la matriz de entrada.

Preparación de los datos

Disponemos del mismo conjunto de datos del ejemplo de regresión lineal simple, pero ahora incluye la altura de la madre como segunda característica. Lo cargaremos y observaremos su variable X:

12345678
import pandas as pd file_link='https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/heights_two_feature.csv' df = pd.read_csv(file_link) # Open the file # Assign the variables X = df[['Father', 'Mother']] y = df['Height'] print(X.head())
copy

Por defecto, el parámetro fit_intercept=True está activado, por lo que el modelo calcula automáticamente el término de sesgo ()! Podemos pasar el DataFrame X (que ya es 2D) directamente al modelo.

Encontrar los parámetros

¡Excelente! Ahora podemos construir el modelo, encontrar los parámetros y realizar predicciones.

12345678910111213141516171819202122
from sklearn.linear_model import LinearRegression import numpy as np # Initialize the model model = LinearRegression() # Train the model (No need to add constant!) model.fit(X, y) # Get the parameters beta_0 = model.intercept_ beta_1 = model.coef_[0] # Coefficient for 'Father' beta_2 = model.coef_[1] # Coefficient for 'Mother' print('beta_0 is: ', beta_0) print('beta_1 is: ', beta_1) print('beta_2 is: ', beta_2) # Predict new values # Feature values of new instances: [[Father, Mother], [Father, Mother], ...] X_new = np.array([[65, 62], [70, 65], [75, 70]]) y_pred = model.predict(X_new) # Predict the target print('Predictions:', y_pred)
copy
Note
Nota

Ahora que nuestro conjunto de entrenamiento tiene 2 características, debemos proporcionar 2 características para cada nueva instancia que deseamos predecir. Por eso se utilizó np.array([[65, 62],[70, 65],[75, 70]]). Además, ten en cuenta que model.coef_ devuelve un arreglo de coeficientes que corresponde al orden de las columnas en X. Como X era ['Father', 'Mother'], coef_[0] es la pendiente para Father y coef_[1] es para Mother.

question mark

¿La clase LinearRegression requiere agregar una columna constante manualmente?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

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