Постановка ML-задачи и работа с данными

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
О данных в ответах

Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.

РешениеPython · Python 3.12 (data: numpy, pandas, sklearn...)
Как проверяется решение

Проверяются функции и их результаты. Собственный запуск выполняет ваш код без авторских тестов. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.

Отправьте решение, чтобы увидеть результаты тестов.

Начать заново?

Помощник начнёт новый диалог по этой задаче. Текущая переписка останется в истории до конца срока хранения.

О переписке

Можно приложить до трёх фото PNG, JPEG или WebP по 5 МБ.

Переписка и фото хранятся 90 дней после последнего принятого сообщения. Преподаватель получит доступ к диалогу, когда вы попросите его помочь.

Проверка решения остаётся отдельным действием.