НачатьНачать бесплатно

Удаление статистических выбросов

Удаление верхних N% данных — полезный способ избавиться от явно ошибочных значений, однако у него есть недостаток: одинаковая доля точек удаляется всегда, даже если данные корректны. Распространённая альтернатива — удалять значения, которые отклоняются от среднего более чем на три стандартных отклонения. Для этого нужно вычислить среднее и стандартное отклонение нужного столбца, определить верхнюю и нижнюю границы и применить их как маску к DataFrame. Этот метод удаляет только те значения, которые действительно сильно отличаются от остальных, и отсекает меньше точек, если данные расположены близко друг к другу.

Это упражнение является частью курса

Конструирование признаков для машинного обучения в Python

Посмотреть курс

Инструкции к упражнению

  • Вычислите стандартное отклонение и среднее значение столбца ConvertedSalary в DataFrame so_numeric_df.
  • Рассчитайте верхнюю и нижнюю границы как значения, отстоящие от среднего на три стандартных отклонения в обоих направлениях.
  • Отфильтруйте DataFrame 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()
Редактировать и запускать код