Вибір Ознак
Під час роботи з багатьма ознаками часто невідомо, які з них є важливими. Можна навчити модель з усіма ознаками, перевірити, які з них не є корисними, а потім перенавчити модель, використовуючи лише впливові ознаки.
Чому варто видаляти ознаки з моделі?
Додавання ознаки, не пов’язаної з цільовою змінною, вносить шум і погіршує передбачення. Велика кількість непотрібних ознак накопичує шум і ще більше знижує якість моделі.
Як визначити, чи ознаки є корисними чи ні?
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-значення для зросту матері та константи 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. Оберіть НЕПРАВИЛЬНЕ твердження.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
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
Вибір Ознак
Свайпніть щоб показати меню
Під час роботи з багатьма ознаками часто невідомо, які з них є важливими. Можна навчити модель з усіма ознаками, перевірити, які з них не є корисними, а потім перенавчити модель, використовуючи лише впливові ознаки.
Чому варто видаляти ознаки з моделі?
Додавання ознаки, не пов’язаної з цільовою змінною, вносить шум і погіршує передбачення. Велика кількість непотрібних ознак накопичує шум і ще більше знижує якість моделі.
Як визначити, чи ознаки є корисними чи ні?
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-значення для зросту матері та константи 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. Оберіть НЕПРАВИЛЬНЕ твердження.
Дякуємо за ваш відгук!