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

Обработка выбросов с помощью винсоризации

Дана таблица basetable с двумя переменными: "sum\_donations" и "donor\_id". Переменная "sum_donations может содержать выбросы, если некоторые доноры пожертвовали исключительно крупные суммы. Чтобы устранить эту проблему, примените к переменной винсоризацию: замените 5% наибольших значений на значение верхнего 5-го перцентиля.

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

Средний уровень прогностической аналитики на Python

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

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

  • Выведите минимальное значение sum_donations и убедитесь, что оно не меньше 0. Затем выведите максимальное значение sum_donations.
  • Укажите подходящий нижний предел перцентиля. Поскольку все значения выше 0 являются реалистичными и встречаются часто, заменять значения ниже нижнего предела перцентиля не требуется.
  • Создайте новую переменную "sum\_donations\_winsorized" — винсоризованную версию переменной "sum\_donations".
  • Выведите максимальное значение sum_donations_winsorized.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

from scipy.stats.mstats import winsorize

# Check minimum sum of donations
print(____["____"].____())
print(____["____"].____())

# Fill out the lower limit
lower_limit = ____

# Winsorize the variable sum_donations
basetable["sum_donations_winsorized"] = ____(____["____"], limits=[lower_limit, 0.05])

# Check maximum sum of donations after winsorization
print(____["____"].____())
Редактировать и запускать код