Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Вибір Ознак | Секція
Основи Контрольованого Навчання

bookВибір Ознак

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

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

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

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

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

Щоб оцінити, чи мають ознаки значний вплив на цільову змінну, можна обчислити p-значення для кожної ознаки. Низьке p-значення свідчить про статистичну значущість ознаки.

1234567891011121314151617
import pandas as pd from sklearn.feature_selection import f_regression 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) X, y = df[['Father', 'Mother']], df['Height'] # f_regression returns F-statistic and p-values f_stat, p_values = f_regression(X, y) # Create a DataFrame to view results nicely results = pd.DataFrame({ 'Feature': X.columns, 'p_value': p_values }) print(results)
copy

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

У наведеному вище прикладі:

  • Father: (надзвичайно мале, високо значуще)
  • Mother: (дуже мале, високо значуще)

Обидві ознаки є хорошими предикторами для цільової змінної.

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

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

Note
Примітка

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

У нашому прикладі ми отримали p-значення для Mother's height та константи 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

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

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

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

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