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

Зміст курсу

Лінійна Регресія з Python

Лінійна Регресія з Python

1. Проста Лінійна Регресія
2. Множинна Лінійна Регресія
3. Поліноміальна Регресія
4. Вибір Найкращої Моделі

book
Побудова Лінійної Регресії за Допомогою Statsmodels

У попередньому розділі ми використовували функцію з NumPy для обчислення параметрів.
Тепер ми використаємо клас-об'єкт замість функції для представлення лінійної регресії. Цей підхід потребує більше рядків коду для знаходження параметрів, але зберігає багато корисної інформації всередині об'єкта та робить прогнозування більш зрозумілим.

Побудова моделі лінійної регресії

У statsmodels для створення моделі лінійної регресії можна використовувати клас OLS.

Спочатку потрібно ініціалізувати об'єкт класу OLS за допомогою sm.OLS(y, X_tilde). Потім навчити його за допомогою методу fit().

model = sm.OLS(y, X_tilde)
model = model.fit()

Що еквівалентно:

model = sm.OLS(y, X_tilde).fit()
Note
Примітка

Конструктор класу OLS очікує на вхід певний масив X_tilde, який ми розглядали у нормальному рівнянні. Тому необхідно перетворити масив X на X_tilde. Це можна зробити за допомогою функції sm.add_constant().

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

Після навчання моделі параметри можна легко отримати за допомогою атрибута params.

12345678910111213141516
import statsmodels.api as sm # import statsmodels 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) # Open the file X, y = df['Father'], df['Height'] # Assign the variables # Get the correct form of input for OLS X_tilde = sm.add_constant(X) # 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 = regression_model.params print('beta_0 is: ', beta_0) print('beta_1 is: ', beta_1)
copy

Виконання прогнозів

Нові екземпляри можна легко передбачити за допомогою методу predict(), але для них також потрібно виконати попередню обробку вхідних даних:

1234567891011121314151617
import statsmodels.api as sm import pandas as pd import numpy as np 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) # Open the file X, y = df['Father'], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Preprocess regression_model = sm.OLS(y, X_tilde) # Initialize an OLS object regression_model = regression_model.fit() # Train the object # Predict new values X_new = np.array([65,70,75]) # 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(y_pred)
copy

Отримання підсумкової інформації

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

123456789101112
import statsmodels.api as sm 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 X, y = df['Father'], df['Height'] X_tilde = sm.add_constant(X) # Preprocess X regression_model = sm.OLS(y, X_tilde) # Initialize an OLS object regression_model = regression_model.fit() # Train the object # Print the summary print(regression_model.summary())
copy

Це велика кількість статистичних даних. Найважливіші частини цієї таблиці будуть розглянуті у наступних розділах.

question mark

Оберіть НЕПРАВИЛЬНЕ твердження.

Select the correct answer

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

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

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

Секція 1. Розділ 4

Запитати АІ

expand

Запитати АІ

ChatGPT

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

course content

Зміст курсу

Лінійна Регресія з Python

Лінійна Регресія з Python

1. Проста Лінійна Регресія
2. Множинна Лінійна Регресія
3. Поліноміальна Регресія
4. Вибір Найкращої Моделі

book
Побудова Лінійної Регресії за Допомогою Statsmodels

У попередньому розділі ми використовували функцію з NumPy для обчислення параметрів.
Тепер ми використаємо клас-об'єкт замість функції для представлення лінійної регресії. Цей підхід потребує більше рядків коду для знаходження параметрів, але зберігає багато корисної інформації всередині об'єкта та робить прогнозування більш зрозумілим.

Побудова моделі лінійної регресії

У statsmodels для створення моделі лінійної регресії можна використовувати клас OLS.

Спочатку потрібно ініціалізувати об'єкт класу OLS за допомогою sm.OLS(y, X_tilde). Потім навчити його за допомогою методу fit().

model = sm.OLS(y, X_tilde)
model = model.fit()

Що еквівалентно:

model = sm.OLS(y, X_tilde).fit()
Note
Примітка

Конструктор класу OLS очікує на вхід певний масив X_tilde, який ми розглядали у нормальному рівнянні. Тому необхідно перетворити масив X на X_tilde. Це можна зробити за допомогою функції sm.add_constant().

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

Після навчання моделі параметри можна легко отримати за допомогою атрибута params.

12345678910111213141516
import statsmodels.api as sm # import statsmodels 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) # Open the file X, y = df['Father'], df['Height'] # Assign the variables # Get the correct form of input for OLS X_tilde = sm.add_constant(X) # 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 = regression_model.params print('beta_0 is: ', beta_0) print('beta_1 is: ', beta_1)
copy

Виконання прогнозів

Нові екземпляри можна легко передбачити за допомогою методу predict(), але для них також потрібно виконати попередню обробку вхідних даних:

1234567891011121314151617
import statsmodels.api as sm import pandas as pd import numpy as np 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) # Open the file X, y = df['Father'], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Preprocess regression_model = sm.OLS(y, X_tilde) # Initialize an OLS object regression_model = regression_model.fit() # Train the object # Predict new values X_new = np.array([65,70,75]) # 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(y_pred)
copy

Отримання підсумкової інформації

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

123456789101112
import statsmodels.api as sm 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 X, y = df['Father'], df['Height'] X_tilde = sm.add_constant(X) # Preprocess X regression_model = sm.OLS(y, X_tilde) # Initialize an OLS object regression_model = regression_model.fit() # Train the object # Print the summary print(regression_model.summary())
copy

Це велика кількість статистичних даних. Найважливіші частини цієї таблиці будуть розглянуті у наступних розділах.

question mark

Оберіть НЕПРАВИЛЬНЕ твердження.

Select the correct answer

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

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

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

Секція 1. Розділ 4
some-alt