Побудова Множинної Лінійної Регресії
Свайпніть щоб показати меню
Клас OLS дозволяє будувати множинну лінійну регресію так само, як і просту лінійну регресію. Проте, на жаль, функція np.polyfit() не підтримує випадок з кількома ознаками.
Ми будемо використовувати клас OLS.
Побудова матриці X̃
Маємо той самий набір даних, що й у прикладі з простою лінійною регресією, але тепер додано зріст матері як другу ознаку. Завантажимо його та переглянемо змінну 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())
Пам'ятайте, для ініціалізації об'єкта OLS(y, X_tilde) слід використовувати OLS. Як видно, змінна X вже містить дві ознаки в окремих стовпцях. Щоб отримати X_tilde, потрібно лише додати стовпець з одиницями на початку. Функція sm.add_constant(X) виконує саме цю операцію!
123# Create X_tilde X_tilde = sm.add_constant(X) print(X_tilde.head())
Знаходження параметрів
Чудово! Тепер можна побудувати модель, знайти параметри та зробити передбачення так само, як і в попередньому розділі.
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)
Тепер, коли наш навчальний набір має 2 ознаки, необхідно надати 2 ознаки для кожного нового екземпляра, який потрібно передбачити. Саме тому у наведеному вище прикладі використовується np.array([[65, 62],[70, 65],[75, 70]]). Це дозволяє передбачити y для 3 нових екземплярів: [Father:65,Mother:62], [Father:70, Mother:65], [Father:75, Mother:70].
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Побудова Множинної Лінійної Регресії
Клас OLS дозволяє будувати множинну лінійну регресію так само, як і просту лінійну регресію. Проте, на жаль, функція np.polyfit() не підтримує випадок з кількома ознаками.
Ми будемо використовувати клас OLS.
Побудова матриці X̃
Маємо той самий набір даних, що й у прикладі з простою лінійною регресією, але тепер додано зріст матері як другу ознаку. Завантажимо його та переглянемо змінну 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())
Пам'ятайте, для ініціалізації об'єкта OLS(y, X_tilde) слід використовувати OLS. Як видно, змінна X вже містить дві ознаки в окремих стовпцях. Щоб отримати X_tilde, потрібно лише додати стовпець з одиницями на початку. Функція sm.add_constant(X) виконує саме цю операцію!
123# Create X_tilde X_tilde = sm.add_constant(X) print(X_tilde.head())
Знаходження параметрів
Чудово! Тепер можна побудувати модель, знайти параметри та зробити передбачення так само, як і в попередньому розділі.
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)
Тепер, коли наш навчальний набір має 2 ознаки, необхідно надати 2 ознаки для кожного нового екземпляра, який потрібно передбачити. Саме тому у наведеному вище прикладі використовується np.array([[65, 62],[70, 65],[75, 70]]). Це дозволяє передбачити y для 3 нових екземплярів: [Father:65,Mother:62], [Father:70, Mother:65], [Father:75, Mother:70].
Дякуємо за ваш відгук!