Construcción de Regresión Lineal Múltiple
Desliza para mostrar el menú
La clase OLS permite construir una regresión lineal múltiple de la misma manera que la regresión lineal simple. Sin embargo, la función np.polyfit() no admite el caso de múltiples características.
Utilizaremos la clase OLS.
Construcción de la matriz X̃
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:
123456789import pandas as pd import statsmodels.api as sm 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())
Recuerda que debemos usar OLS(y, X_tilde) para inicializar el objeto OLS. Como puedes ver, la variable X ya contiene dos características en columnas separadas. Por lo tanto, para obtener X_tilde, solo necesitamos añadir unos como primera columna. ¡La función sm.add_constant(X) hace exactamente eso!
123# Create X_tilde X_tilde = sm.add_constant(X) print(X_tilde.head())
Encontrar los parámetros
¡Excelente! Ahora podemos construir el modelo, encontrar los parámetros y realizar predicciones de la misma manera que hicimos en la sección anterior.
12345678910111213141516import numpy as np # Initialize an OLS object regression_model = sm.OLS(y, X_tilde) # Train the object regression_model = regression_model.fit() # Get the paramters beta_0, beta_1, beta_2 = regression_model.params print('beta_0 is: ', beta_0) print('beta_1 is: ', beta_1) print('beta_2 is: ', beta_2) # Predict new values X_new = np.array([[65, 62],[70, 65],[75, 70]]) # Feature values of new instances X_new_tilde = sm.add_constant(X_new) # Preprocess X_new y_pred = regression_model.predict(X_new_tilde) # Predict the target print('Predictions:', y_pred)
Ahora que nuestro conjunto de entrenamiento tiene 2 características, necesitamos proporcionar 2 características para cada nueva instancia que queremos predecir. Por eso se utilizó np.array([[65, 62],[70, 65],[75, 70]]) en el ejemplo anterior. Predice y para 3 nuevas instancias: [Father:65,Mother:62], [Father:70, Mother:65], [Father:75, Mother:70].
¡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
Construcción de Regresión Lineal Múltiple
La clase OLS permite construir una regresión lineal múltiple de la misma manera que la regresión lineal simple. Sin embargo, la función np.polyfit() no admite el caso de múltiples características.
Utilizaremos la clase OLS.
Construcción de la matriz X̃
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:
123456789import pandas as pd import statsmodels.api as sm 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())
Recuerda que debemos usar OLS(y, X_tilde) para inicializar el objeto OLS. Como puedes ver, la variable X ya contiene dos características en columnas separadas. Por lo tanto, para obtener X_tilde, solo necesitamos añadir unos como primera columna. ¡La función sm.add_constant(X) hace exactamente eso!
123# Create X_tilde X_tilde = sm.add_constant(X) print(X_tilde.head())
Encontrar los parámetros
¡Excelente! Ahora podemos construir el modelo, encontrar los parámetros y realizar predicciones de la misma manera que hicimos en la sección anterior.
12345678910111213141516import numpy as np # Initialize an OLS object regression_model = sm.OLS(y, X_tilde) # Train the object regression_model = regression_model.fit() # Get the paramters beta_0, beta_1, beta_2 = regression_model.params print('beta_0 is: ', beta_0) print('beta_1 is: ', beta_1) print('beta_2 is: ', beta_2) # Predict new values X_new = np.array([[65, 62],[70, 65],[75, 70]]) # Feature values of new instances X_new_tilde = sm.add_constant(X_new) # Preprocess X_new y_pred = regression_model.predict(X_new_tilde) # Predict the target print('Predictions:', y_pred)
Ahora que nuestro conjunto de entrenamiento tiene 2 características, necesitamos proporcionar 2 características para cada nueva instancia que queremos predecir. Por eso se utilizó np.array([[65, 62],[70, 65],[75, 70]]) en el ejemplo anterior. Predice y para 3 nuevas instancias: [Father:65,Mother:62], [Father:70, Mother:65], [Father:75, Mother:70].
¡Gracias por tus comentarios!