Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Вибір Ознак | Множинна Лінійна Регресія
Лінійна регресія з 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

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

Виберіть усі правильні відповіді

question mark

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

Виберіть правильну відповідь

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

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