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

bookВибір Ознак

Під час роботи з багатьма ознаками часто невідомо, які з них є важливими. Можна навчити модель з усіма ознаками, перевірити, які з них не є корисними, а потім перенавчити модель, використовуючи лише впливові ознаки.

Чому варто видаляти ознаки з моделі?

Додавання ознаки, не пов’язаної з цільовою змінною, вносить шум і погіршує передбачення. Велика кількість непотрібних ознак накопичує шум і ще більше знижує якість моделі.

Як визначити, чи ознаки є корисними чи ні?

OLS надає статистичні тести під час навчання. Кожна ознака отримує результат t-тесту, який відображається у таблиці summary(), і показує, чи має вона значущий вплив на цільову змінну.

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 X,y = df[['Father', 'Mother']], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Create X_tilde regression_model = sm.OLS(y, X_tilde).fit() # Initialize and train an OLS object print(regression_model.summary()) #Get the summary
copy

Нас цікавить p-значення для кожної ознаки.

Коротко кажучи, чим менше p-значення, тим вища впевненість у тому, що ознака є впливовою.

У статистиці встановлюється рівень значущості, зазвичай 0,05. Якщо p-значення ознаки перевищує цей поріг, вона вважається незначущою.

На практиці дещо вищі p-значення (трохи більше 0,05) також можуть бути корисними для моделі. Доцільно протестувати модель з такою ознакою та без неї. Але якщо p-значення дуже високе (>0,4), його можна впевнено видаляти.

Note
Примітка

p-значення змінюється від 0 до 1, тому під низьким p-значенням мається на увазі менше 0,05, а під високим — зазвичай більше 0,3-0,5.

У нашому прикладі ми отримали p-значення для зросту матері та константи 0.087 і 0.051 відповідно. Якщо видалити ознаки з p-значенням > 0.05, отримаємо результат, показаний нижче (ліворуч).

Навіть візуально можна побачити, що модель з константою (праворуч) є кращою, тому не варто її видаляти з моделі.

Note
Примітка

Невеликі набори даних часто дають вищі p-значення (0.05–0.2) навіть для значущих ознак. P-значення відображають рівень впевненості: зі збільшенням кількості даних легше відрізнити дійсно впливові ознаки від шумових.

Як видалити некорисні ознаки?

Потрібно видалити стовпець, що відповідає ознаці, з X_tilde. Це можна зробити за допомогою наступного коду:

X_tilde = X_tilde.drop(___, axis=1)

Наприклад, щоб видалити стовпці 'const' та 'Mother', використовуйте:

X_tilde = X_tilde.drop(['Mother', 'const'], axis=1)

Після цього створіть новий об'єкт OLS, використовуючи оновлений X_tilde:

regression_model=sm.OLS(y, X_tilde)

1. Які з ознак слід ЗАЛИШИТИ?

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

question mark

Які з ознак слід ЗАЛИШИТИ?

Select the correct answer

question mark

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

Select the correct answer

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Suggested prompts:

Can you explain what a p-value actually represents in this context?

How do I interpret the summary table from the OLS regression?

What should I do if both features have p-values just above 0.05?

Awesome!

Completion rate improved to 5.26

bookВибір Ознак

Свайпніть щоб показати меню

Під час роботи з багатьма ознаками часто невідомо, які з них є важливими. Можна навчити модель з усіма ознаками, перевірити, які з них не є корисними, а потім перенавчити модель, використовуючи лише впливові ознаки.

Чому варто видаляти ознаки з моделі?

Додавання ознаки, не пов’язаної з цільовою змінною, вносить шум і погіршує передбачення. Велика кількість непотрібних ознак накопичує шум і ще більше знижує якість моделі.

Як визначити, чи ознаки є корисними чи ні?

OLS надає статистичні тести під час навчання. Кожна ознака отримує результат t-тесту, який відображається у таблиці summary(), і показує, чи має вона значущий вплив на цільову змінну.

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 X,y = df[['Father', 'Mother']], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Create X_tilde regression_model = sm.OLS(y, X_tilde).fit() # Initialize and train an OLS object print(regression_model.summary()) #Get the summary
copy

Нас цікавить p-значення для кожної ознаки.

Коротко кажучи, чим менше p-значення, тим вища впевненість у тому, що ознака є впливовою.

У статистиці встановлюється рівень значущості, зазвичай 0,05. Якщо p-значення ознаки перевищує цей поріг, вона вважається незначущою.

На практиці дещо вищі p-значення (трохи більше 0,05) також можуть бути корисними для моделі. Доцільно протестувати модель з такою ознакою та без неї. Але якщо p-значення дуже високе (>0,4), його можна впевнено видаляти.

Note
Примітка

p-значення змінюється від 0 до 1, тому під низьким p-значенням мається на увазі менше 0,05, а під високим — зазвичай більше 0,3-0,5.

У нашому прикладі ми отримали p-значення для зросту матері та константи 0.087 і 0.051 відповідно. Якщо видалити ознаки з p-значенням > 0.05, отримаємо результат, показаний нижче (ліворуч).

Навіть візуально можна побачити, що модель з константою (праворуч) є кращою, тому не варто її видаляти з моделі.

Note
Примітка

Невеликі набори даних часто дають вищі p-значення (0.05–0.2) навіть для значущих ознак. P-значення відображають рівень впевненості: зі збільшенням кількості даних легше відрізнити дійсно впливові ознаки від шумових.

Як видалити некорисні ознаки?

Потрібно видалити стовпець, що відповідає ознаці, з X_tilde. Це можна зробити за допомогою наступного коду:

X_tilde = X_tilde.drop(___, axis=1)

Наприклад, щоб видалити стовпці 'const' та 'Mother', використовуйте:

X_tilde = X_tilde.drop(['Mother', 'const'], axis=1)

Після цього створіть новий об'єкт OLS, використовуючи оновлений X_tilde:

regression_model=sm.OLS(y, X_tilde)

1. Які з ознак слід ЗАЛИШИТИ?

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

question mark

Які з ознак слід ЗАЛИШИТИ?

Select the correct answer

question mark

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

Select the correct answer

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

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

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

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