Вибір Ознак
Свайпніть щоб показати меню
Під час роботи з багатьма ознаками часто невідомо, які з них є важливими. Можна навчити модель з усіма ознаками, перевірити, які з них не є корисними, а потім перенавчити модель, використовуючи лише значущі ознаки.
Чому варто видаляти ознаки з моделі?
Додавання ознаки, не пов’язаної з цільовою змінною, вносить шум і погіршує передбачення. Велика кількість непотрібних ознак накопичує шум і ще більше знижує якість моделі.
Як визначити, чи є ознаки хорошими чи поганими?
OLS надає статистичні тести під час навчання. Кожна ознака отримує результат t-тесту, який відображається у таблиці summary(), що вказує, чи має вона значущий вплив на цільову змінну.
123456789import 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
Нас цікавить p-значення для кожної ознаки.
Коротко: чим нижче p-значення, тим вища впевненість, що ознака є впливовою
У статистиці встановлюється рівень значущості, зазвичай 0,05. Якщо p-значення ознаки перевищує цей поріг, вона вважається незначущою.
На практиці дещо вищі p-значення (трохи більше 0,05) також можуть бути корисними для моделі. Безпечніше протестувати модель з такою ознакою та без неї. Але якщо p-значення дуже високе (>0,4), його можна впевнено видалити.
p-значення змінюється від 0 до 1, тому під низьким p-значенням мається на увазі менше 0,05, а під високим — зазвичай більше 0,3-0,5.
У нашому прикладі ми отримали p-значення для Mother's height та константи 0.087 і 0.051. Якщо видалити ознаки з p-значенням > 0.05, отримаємо результат, показаний нижче (ліворуч).
Навіть візуально можна побачити, що модель з константою (праворуч) є кращою, тому не варто її видаляти з моделі.
Малі набори даних часто дають вищі 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. Оберіть НЕПРАВИЛЬНЕ твердження.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Вибір Ознак
Під час роботи з багатьма ознаками часто невідомо, які з них є важливими. Можна навчити модель з усіма ознаками, перевірити, які з них не є корисними, а потім перенавчити модель, використовуючи лише значущі ознаки.
Чому варто видаляти ознаки з моделі?
Додавання ознаки, не пов’язаної з цільовою змінною, вносить шум і погіршує передбачення. Велика кількість непотрібних ознак накопичує шум і ще більше знижує якість моделі.
Як визначити, чи є ознаки хорошими чи поганими?
OLS надає статистичні тести під час навчання. Кожна ознака отримує результат t-тесту, який відображається у таблиці summary(), що вказує, чи має вона значущий вплив на цільову змінну.
123456789import 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
Нас цікавить p-значення для кожної ознаки.
Коротко: чим нижче p-значення, тим вища впевненість, що ознака є впливовою
У статистиці встановлюється рівень значущості, зазвичай 0,05. Якщо p-значення ознаки перевищує цей поріг, вона вважається незначущою.
На практиці дещо вищі p-значення (трохи більше 0,05) також можуть бути корисними для моделі. Безпечніше протестувати модель з такою ознакою та без неї. Але якщо p-значення дуже високе (>0,4), його можна впевнено видалити.
p-значення змінюється від 0 до 1, тому під низьким p-значенням мається на увазі менше 0,05, а під високим — зазвичай більше 0,3-0,5.
У нашому прикладі ми отримали p-значення для Mother's height та константи 0.087 і 0.051. Якщо видалити ознаки з p-значенням > 0.05, отримаємо результат, показаний нижче (ліворуч).
Навіть візуально можна побачити, що модель з константою (праворуч) є кращою, тому не варто її видаляти з моделі.
Малі набори даних часто дають вищі 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)
Дякуємо за ваш відгук!