Exploratory Data Analysis: распределения и аномалии
Содержание курса
0 / 1 баллов
Опишите распределение числового признака
В payload['df'] приходит DataFrame с числовым столбцом feature. Посчитайте по нему описательные статистики и три производных признака распределения.
Верните словарь:
{
"mean": float, # среднее
"median": float, # медиана
"std": float, # стандартное отклонение
"min": float, # минимум
"max": float, # максимум
"q25": float, # 25-й перцентиль
"q75": float, # 75-й перцентиль
"skewness": float, # скошенность
"kurtosis": float, # эксцесс
"is_symmetric": bool, # True, если |skewness| < 0.2
"has_outliers": bool, # True, если max > q75 * 3
"mean_median_diff_pct": float, # (mean - median) / median * 100
}
Считайте методами pandas: quantile() с интерполяцией по умолчанию, std() с ddof=1, skew() и kurt(). У scipy.stats.skew() и kurtosis() по умолчанию смещённые оценки и другие числа — им нужен bias=False.
Важно. Не округляйте результат — сравнение идёт с точностью до шести знаков, числа в примере показаны округлёнными только для читаемости. Флаги is_symmetric и has_outliers верните как обычный Python-bool: сравнение pandas-величин даёт numpy.bool_, который проверку не пройдёт — оберните результат в bool(...). Ключей в словаре должно быть ровно двенадцать, лишние не допускаются.
Пример
feature: [1, 2, 2, 3, 4, 100]
mean = 18.67 q25 = 2.0
median = 2.5 q75 = 3.75
std = 39.86 skewness = 2.45
min = 1 kurtosis = 5.99
max = 100
is_symmetric = False # 2.45 не меньше 0.2
has_outliers = True # 100 больше 3.75 * 3
mean_median_diff_pct = 646.67О данных в ответах
Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.
Как проверяется решение
Проверяются функции и их результаты. Собственный запуск выполняет ваш код без авторских тестов. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.
Отправьте решение, чтобы увидеть результаты тестов.
