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

Exploratory Data Analysis: распределения и аномалии

Содержание курса

3. Когда среднее врёт: ловушка скошенного распределения

Среднее — удобная метрика, но у неё есть слабое место: оно чувствительно к крайним значениям. Один магазин с продажами 41 551 тянет среднее вверх, хотя 75% магазинов зарабатывают меньше 7 856. Посмотрим на конкретные числа из rossmann_train.csv:

  • Sales: mean ≈ 5 774, median ≈ 5 744 — разрыв небольшой, но max = 41 551 создаёт правый хвост.
  • Customers: mean ≈ 633, median ≈ 609, max = 7 388 — схожая картина. Пока разрыв между mean и median умеренный — всё выглядит прилично. Но стоит включить в выборку дни с Open=0, где Sales=0, и среднее резко просядет, а медиана останется примерно на месте. Именно так проявляется смещение среднего при смеси режимов. Проверить это легко:

import pandas as pd

df = pd.read_csv('rossmann_train.csv')

print('Все строки:')
print(df['Sales'].agg(['mean', 'median']))

print('\nТолько открытые магазины:')
df_open = df[df['Open'] == 1]
print(df_open['Sales'].agg(['mean', 'median']))

В выводе будет видно, что среднее на полной выборке заметно ниже, чем на отфильтрованной — за счёт нулей от закрытых дней. Медиана реагирует на этот эффект слабее. Вторая ловушка — автоматическое удаление выбросов. Когда видишь Sales = 41 551, первый импульс — выкинуть эту строку как аномалию. Но это может быть реальная акция или крупный магазин в праздник. Удалив такие строки, вы получите модель, которая систематически недооценивает продажи в пиковые периоды. Практическое правило: прежде чем интерпретировать mean или удалять экстремальные значения, посмотри на форму распределения и разберись в контексте точки. Выброс и ошибка — разные вещи, и только предметный анализ позволяет их различить.

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

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

О переписке

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

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

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