Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Побудова Множинної Лінійної Регресії | Множинна Лінійна Регресія
Лінійна Регресія з Python

bookПобудова Множинної Лінійної Регресії

Клас OLS дозволяє будувати множинну лінійну регресію так само, як і просту лінійну регресію. Проте, на жаль, функція np.polyfit() не підтримує випадок з декількома ознаками.

Ми будемо використовувати клас OLS.

Побудова матриці X̃

Маємо той самий набір даних, що й у прикладі з простою лінійною регресією, але тепер він містить зріст матері як другу ознаку. Завантажимо його та розглянемо змінну X:

123456789
import 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())
copy

Пам'ятайте, для ініціалізації об'єкта OLS(y, X_tilde) слід використовувати OLS. Як видно, змінна X вже містить дві ознаки в окремих стовпцях. Тому, щоб отримати X_tilde, потрібно лише додати 1 як перший стовпець. Функція sm.add_constant(X) виконує саме цю дію!

1234567891011
import 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'] # Create X_tilde X_tilde = sm.add_constant(X) print(X_tilde.head())
copy

Знаходження параметрів

Чудово! Тепер ми можемо побудувати модель, знайти параметри та зробити передбачення так само, як і в попередньому розділі.

12345678910111213141516171819202122
import pandas as pd import statsmodels.api as sm import numpy as np 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 X,y = df[['Father', 'Mother']], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Create X_tilde # 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)
copy
Note
Примітка

Тепер, коли наш навчальний набір має 2 ознаки, потрібно вказати 2 ознаки для кожного нового екземпляра, для якого потрібно зробити передбачення. Саме тому у наведеному вище прикладі використовується np.array([[65, 62],[70, 65],[75, 70]]). Це дозволяє передбачити y для 3 нових екземплярів: [Father:65,Mother:62], [Father:70, Mother:65], [Father:75, Mother:70].

question mark

Що робить sm.add_constant(X)?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

bookПобудова Множинної Лінійної Регресії

Клас OLS дозволяє будувати множинну лінійну регресію так само, як і просту лінійну регресію. Проте, на жаль, функція np.polyfit() не підтримує випадок з декількома ознаками.

Ми будемо використовувати клас OLS.

Побудова матриці X̃

Маємо той самий набір даних, що й у прикладі з простою лінійною регресією, але тепер він містить зріст матері як другу ознаку. Завантажимо його та розглянемо змінну X:

123456789
import 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())
copy

Пам'ятайте, для ініціалізації об'єкта OLS(y, X_tilde) слід використовувати OLS. Як видно, змінна X вже містить дві ознаки в окремих стовпцях. Тому, щоб отримати X_tilde, потрібно лише додати 1 як перший стовпець. Функція sm.add_constant(X) виконує саме цю дію!

1234567891011
import 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'] # Create X_tilde X_tilde = sm.add_constant(X) print(X_tilde.head())
copy

Знаходження параметрів

Чудово! Тепер ми можемо побудувати модель, знайти параметри та зробити передбачення так само, як і в попередньому розділі.

12345678910111213141516171819202122
import pandas as pd import statsmodels.api as sm import numpy as np 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 X,y = df[['Father', 'Mother']], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Create X_tilde # 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)
copy
Note
Примітка

Тепер, коли наш навчальний набір має 2 ознаки, потрібно вказати 2 ознаки для кожного нового екземпляра, для якого потрібно зробити передбачення. Саме тому у наведеному вище прикладі використовується np.array([[65, 62],[70, 65],[75, 70]]). Це дозволяє передбачити y для 3 нових екземплярів: [Father:65,Mother:62], [Father:70, Mother:65], [Father:75, Mother:70].

question mark

Що робить sm.add_constant(X)?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 3
some-alt