Exploratory Data Analysis: распределения и аномалии
Содержание курса
0 / 1 баллов
Найдите выбросы методом межквартильного размаха
В payload['df'] приходит DataFrame с числовым столбцом value. Найдите в нём выбросы и верните их описание одним словарём.
Границы строятся от квартилей, где Q1 и Q3 — 25-й и 75-й перцентили:
IQR = Q3 - Q1
нижняя граница = Q1 - 1.5 * IQR
верхняя граница = Q3 + 1.5 * IQR
Значение считается выбросом, если оно строго меньше нижней границы или строго больше верхней.
Верните словарь:
{
"outliers_indices": [...], # индексы строк с выбросами
"lower_bound": float, # нижняя граница
"upper_bound": float, # верхняя граница
"outliers_ratio": float, # доля выбросов от общего числа строк
}
Если выбросов нет, список пустой, а доля равна нулю.
Квантили считайте через pandas.Series.quantile() с интерполяцией по умолчанию: от метода зависят границы, а с ними и результат проверки.
Пример
value: [1, 2, 3, 4, 5, 100]
Q1 = 2.25, Q3 = 4.75, IQR = 2.5
нижняя граница = 2.25 - 1.5 * 2.5 = -1.5
верхняя граница = 4.75 + 1.5 * 2.5 = 8.5
Единственный выброс — 100, строка с индексом 5.
{
"outliers_indices": [5],
"lower_bound": -1.5,
"upper_bound": 8.5,
"outliers_ratio": 0.166667
}О данных в ответах
Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.
Как проверяется решение
Проверяются функции и их результаты. Собственный запуск выполняет ваш код без авторских тестов. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.
Отправьте решение, чтобы увидеть результаты тестов.
