Вилучення статистичних викидів
Хоча видалення верхніх N% даних корисне, щоб прибрати явно хибні точки, воно має недолік: завжди вилучається однакова частка точок, навіть якщо дані коректні. Поширена альтернатива — видаляти дані, що лежать далі ніж на три стандартні відхилення від середнього. Це можна реалізувати, спершу обчисливши середнє та стандартне відхилення відповідного стовпця, щоб знайти верхню та нижню межі, і застосувавши ці межі як маску до датафрейму. Такий підхід гарантує, що буде вилучено лише справді нетипові дані, і він прибере менше точок, якщо дані щільно згруповані.
Ця вправа є частиною курсу
Feature Engineering для машинного навчання в Python
Інструкції до вправи
- Обчисліть стандартне відхилення та середнє значення стовпця
ConvertedSalaryуso_numeric_df. - Обчисліть верхню й нижню межі як три стандартні відхилення від середнього в обох напрямах.
- Обріжте датафрейм
so_numeric_df, щоб залишити всі рядки, деConvertedSalaryпотрапляє в межі міжlowerтаupper.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Find the mean and standard dev
std = so_numeric_df['ConvertedSalary'].____
mean = so_numeric_df['ConvertedSalary'].____
# Calculate the cutoff
cut_off = std * 3
lower, upper = mean - cut_off, ____
# Trim the outliers
trimmed_df = so_numeric_df[(so_numeric_df['ConvertedSalary'] < ____) \
& (so_numeric_df['ConvertedSalary'] > ____)]
# The trimmed box plot
trimmed_df[['ConvertedSalary']].boxplot()
plt.show()