Рубежный контроль №1 (весна 2025 года)¶

Тема: Методы обработки данных¶

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

Тема: Методы обработки данных.

Варианты заданий¶

Номер варианта Номер задачи №1 Номер задачи №2
1 1 21
2 2 22
... ... ...
22 7 33

Выбор варианта:

  • Для групп ИУ5-21М, ИУ5-22М, ИУ5-23М, ИУ5-24М: номер в списке группы.
  • Для групп ИУ5И-21М, ИУ5И-22М, ИУ5И-23М, ИУ5И-24М: 15 + номер в списке группы.
  • Для группы ИУ5-25МВ: 20 + номер в списке группы.

Дополнительные требования по группам:

  • ИУ5-21М, ИУ5И-21М: для пары произвольных колонок данных построить график "Диаграмма рассеяния".
  • ИУ5-22М, ИУ5И-22М: для произвольной колонки данных построить гистограмму.
  • ИУ5-23М, ИУ5И-23М: для произвольной колонки данных построить график "Ящик с усами (boxplot)".
  • ИУ5-24М, ИУ5И-24М: для произвольной колонки данных построить график "Скрипичная диаграмма (violin plot)".
  • ИУ5-25МВ: для произвольной колонки данных построить парные диаграммы (pairplot).

Условия выбора данных:

  • Набор данных выбирается произвольно.
  • Должен отличаться от лекционного примера.
  • Должен соответствовать условиям задачи (например, содержать пропуски, если задача на их устранение).

Студент: Папин Алексей Владимирович

Группа: ИУ5Ц-21М

Описание набора данных¶

В работе используется набор данных Global E-Commerce Sales Dataset (2021–2024). Это синтетический датасет, имитирующий транзакции в сфере электронной коммерции. Он содержит 10 000 записей и 26 признаков, включая:

  • Идентификаторы: ID заказа и клиента.
  • Временные признаки: Дата, год, месяц, квартал и сезон.
  • Географические данные: Регион и страна.
  • Категориальные данные: Сегмент клиента, категория и подкатегория товара, метод доставки, способ оплаты и статус заказа.
  • Количественные показатели: Цена за единицу, количество, скидка, выручка (Revenue), себестоимость (Cost), прибыль (Profit) и маржинальность.

Данный набор данных позволяет проводить глубокий анализ эффективности продаж, исследовать зависимости между затратами и прибылью, а также практиковать методы машинного обучения.

Задачи:¶

  1. Задача №1: Построить график "Диаграмма рассеяния (scatter plot)" для пары произвольных колонок данных
  2. Задача №2: Кодирование категориального признака методом Target (Mean) Encoding
  3. Задача №22: Масштабирование числового признака по максимальному значению (MaxAbs Scaling)

Импорт библиотек и загрузка данных¶

Размер набора данных: (10000, 26)

Первые 5 строк:
Order_ID Order_Date Year Month Quarter Season Customer_ID Customer_Gender Customer_Segment Region ... Discount Revenue Cost Profit Profit_Margin_% Shipping_Cost Shipping_Method Shipping_Days Payment_Method Order_Status
0 ORD-000001 2023-01-18 2023 1 Q1 Winter CUST-02791 Male New North America ... 0.00 3642.80 2444.11 1198.69 32.91 2.25 Economy 4 Google Pay Delivered
1 ORD-000002 2023-11-13 2023 11 Q4 Fall CUST-02763 Female Regular North America ... 0.25 33.88 28.32 5.56 16.41 4.72 Economy 5 Credit Card Delivered
2 ORD-000003 2022-04-28 2022 4 Q2 Spring CUST-05729 Male Regular North America ... 0.00 241.30 161.41 79.89 33.11 13.28 Standard 8 Credit Card Processing
3 ORD-000004 2021-10-22 2021 10 Q4 Fall CUST-06490 Female Regular Asia ... 0.00 654.50 369.16 285.34 43.60 31.11 Express 16 Google Pay Processing
4 ORD-000005 2023-08-06 2023 8 Q3 Summer CUST-07594 Female Premium Europe ... 0.20 178.82 118.69 60.13 33.63 8.44 Standard 5 Debit Card Delivered

5 rows × 26 columns

Информация о данных:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 10000 entries, 0 to 9999
Data columns (total 26 columns):
 #   Column            Non-Null Count  Dtype  
---  ------            --------------  -----  
 0   Order_ID          10000 non-null  object 
 1   Order_Date        10000 non-null  object 
 2   Year              10000 non-null  int64  
 3   Month             10000 non-null  int64  
 4   Quarter           10000 non-null  object 
 5   Season            10000 non-null  object 
 6   Customer_ID       10000 non-null  object 
 7   Customer_Gender   10000 non-null  object 
 8   Customer_Segment  10000 non-null  object 
 9   Region            10000 non-null  object 
 10  Country           10000 non-null  object 
 11  Category          10000 non-null  object 
 12  Sub_Category      10000 non-null  object 
 13  Product_Name      10000 non-null  object 
 14  Unit_Price        10000 non-null  float64
 15  Quantity          10000 non-null  int64  
 16  Discount          10000 non-null  float64
 17  Revenue           10000 non-null  float64
 18  Cost              10000 non-null  float64
 19  Profit            10000 non-null  float64
 20  Profit_Margin_%   10000 non-null  float64
 21  Shipping_Cost     10000 non-null  float64
 22  Shipping_Method   10000 non-null  object 
 23  Shipping_Days     10000 non-null  int64  
 24  Payment_Method    10000 non-null  object 
 25  Order_Status      10000 non-null  object 
dtypes: float64(7), int64(4), object(15)
memory usage: 2.0+ MB

Описательная статистика:
Year Month Unit_Price Quantity Discount Revenue Cost Profit Profit_Margin_% Shipping_Cost Shipping_Days
count 10000.000000 10000.000000 10000.000000 10000.000000 10000.00000 10000.000000 10000.000000 10000.000000 10000.000000 10000.000000 10000.000000
mean 2022.756300 6.604300 236.307452 2.731300 0.17675 528.438770 384.674939 143.763831 23.648594 32.299889 11.436100
std 0.878628 3.406799 380.901351 2.038508 0.16167 1154.811538 828.069100 420.487992 21.496639 28.424003 5.347633
min 2021.000000 1.000000 10.010000 1.000000 0.00000 5.330000 4.850000 -1572.900000 -50.000000 2.000000 3.000000
25% 2022.000000 4.000000 42.767500 1.000000 0.00000 67.227500 50.017500 9.007500 13.497500 8.260000 7.000000
50% 2023.000000 7.000000 92.495000 2.000000 0.15000 164.600000 121.395000 34.745000 28.330000 20.300000 10.000000
75% 2023.000000 10.000000 221.822500 4.000000 0.30000 469.952500 339.020000 118.475000 39.082500 50.362500 15.000000
max 2024.000000 12.000000 2497.760000 10.000000 0.50000 19966.500000 15729.670000 9144.150000 54.990000 99.990000 25.000000

Анализ описательной статистики¶

На основе полученных данных можно сделать следующие выводы:

  1. Revenue (Выручка):

    • Асимметрия: Среднее значение (528.44) значительно превышает медиану (164.60), что указывает на правостороннее смещение распределения.
    • Выбросы: Максимальное значение (19 966.50) аномально велико по сравнению с 75-м процентилем (469.95). Это свидетельствует о наличии экстремальных заказов.
  2. Profit (Прибыль):

    • Убытки: Минимальное значение отрицательное (-1572.90), что говорит о наличии заказов с убытком.
    • Выбросы: Максимальное значение (9144.15) многократно превышает 75-й процентиль (118.48), что также указывает на наличие выбросов.
    • Разброс: Высокое стандартное отклонение (420.49) относительно медианы (34.75) подтверждает неоднородность данных.

Вывод: Наличие экстремальных значений в признаках Revenue и Profit требует проведения предобработки данных (удаления выбросов) для корректного построения графиков.


Предобработка данных: удаление выбросов¶

Проанализируем признаки Revenue (выручка) и Profit (прибыль) на наличие выбросов с помощью метода межквартильного размаха (IQR).

No description has been provided for this image
Обнаружение выбросов (метод IQR):
Revenue: выбросов = 1177 из 10000 (11.8%)
  Границы: [-536.86, 1074.04]
Profit: выбросов = 898 из 8823 (10.2%)
  Границы: [-100.85, 188.63]
No description has been provided for this image
Размер данных до обработки: (10000, 26)
Размер данных после обработки: (7925, 26)
Удалено строк: 2075

Описательная статистика после удаления выбросов:
Revenue Profit
count 7925.000000 7925.000000
mean 174.636753 38.089692
std 174.047738 48.895000
min 5.330000 -100.730000
25% 54.510000 6.770000
50% 112.950000 24.190000
75% 236.050000 60.190000
max 1063.290000 188.620000

Результат: Выбросы удалены из признаков Revenue и Profit методом IQR. Дальнейший анализ проводится на очищенном наборе данных df_clean.


Задача №1. Диаграмма рассеяния (Scatter Plot)¶

Построим scatter plot для пары признаков Revenue (выручка) и Profit (прибыль), чтобы проанализировать их корреляцию на очищенных данных.

No description has been provided for this image

Анализ диаграммы рассеяния¶

На основе построенного графика можно сделать следующие выводы:

  1. Линейная корреляция: Наблюдается ярко выраженная положительная линейная зависимость между выручкой (Revenue) и прибылью (Profit). Это логично для торговых операций: чем выше объем продаж в денежном эквиваленте, тем выше итоговая прибыль.
  2. Плотность данных: Основная масса заказов сосредоточена в диапазоне выручки до 400 USD и прибыли до 100 USD.
  3. Разброс (Дисперсия): С увеличением выручки разброс значений прибыли также увеличивается (форма «воронки»), что может быть связано с различиями в маржинальности разных категорий товаров или вариативностью затрат на логистику.
  4. Эффективность очистки: Благодаря предварительному удалению выбросов методом IQR, масштаб графика позволяет детально рассмотреть структуру взаимосвязи, которая была бы скрыта при наличии экстремальных значений.

Вывод по задаче №1: Диаграмма рассеяния подтверждает гипотезу о прямой зависимости прибыли от выручки и демонстрирует отсутствие аномальных отклонений в очищенном наборе данных.


Задача №2. Target (Mean) Encoding¶

Проведём кодирование категориального признака Shipping_Method (метод доставки) методом Target Encoding. Целевая переменная — Shipping_Days (дни доставки).

Уникальные значения 'Shipping_Method':
Shipping_Method
Economy      2007
Overnight    1990
Express      1982
Standard     1946
Name: count, dtype: int64

Количество уникальных значений: 4
Среднее время доставки по методам (Target Encoding):
Shipping_Method
Economy      11.474340
Express      11.226034
Overnight    11.519095
Standard     11.393114
Name: Shipping_Days, dtype: float64
Словарь кодирования:
{'Economy': 11.47433981066268, 'Express': 11.226034308779012, 'Overnight': 11.519095477386935, 'Standard': 11.39311408016444}

Результат кодирования (первые 10 строк):
Shipping_Method Shipping_Method_Encoded Shipping_Days
1 Economy 11.474340 5
2 Standard 11.393114 8
4 Standard 11.393114 5
5 Overnight 11.519095 18
6 Economy 11.474340 11
7 Express 11.226034 18
8 Express 11.226034 13
9 Economy 11.474340 5
10 Economy 11.474340 24
12 Economy 11.474340 6
No description has been provided for this image

Интерпретация:

  • Target Encoding заменяет категориальные значения на среднее значение целевой переменной
  • Различия между методами доставки незначительны из-за синтетического характера данных

Задача №22. Масштабирование по максимальному значению (MaxAbs Scaling)¶

Проведём масштабирование числового признака Profit (прибыль) методом MaxAbs Scaling.

Статистика признака 'Profit' до масштабирования:
count    7925.000000
mean       38.089692
std        48.895000
min      -100.730000
25%         6.770000
50%        24.190000
75%        60.190000
max       188.620000
Name: Profit, dtype: float64

Максимальное значение: 188.62
Минимальное значение: -100.73
Результат масштабирования (первые 10 строк):
Profit Profit_Scaled
1 5.56 0.029477
2 79.89 0.423550
4 60.13 0.318789
5 118.78 0.629732
6 19.49 0.103329
7 -50.80 -0.269325
8 4.75 0.025183
9 -14.77 -0.078306
10 66.85 0.354416
12 -14.50 -0.076874
Статистика признака 'Profit' после масштабирования:
count    7925.000000
mean        0.201939
std         0.259225
min        -0.534037
25%         0.035892
50%         0.128247
75%         0.319107
max         1.000000
Name: Profit_Scaled, dtype: float64

Максимальное значение после масштабирования: 1.000000
Минимальное значение после масштабирования: -0.534037
No description has been provided for this image

Интерпретация:

  • MaxAbs Scaling делит каждое значение на максимальное абсолютное значение признака
  • Максимальное значение после масштабирования равно 1.0
  • Отрицательные значения прибыли (убытки) сохраняют знак после масштабирования

Заключение¶

В ходе выполнения рубежного контроля №1 были решены следующие задачи и сделаны выводы:

  1. Предобработка данных (Очистка от выбросов):

    • Использование метода межквартильного размаха (IQR) позволило выявить и исключить около 20% аномальных значений в признаках Revenue и Profit. Это критически важный этап, так как экстремальные выбросы (максимальная выручка в 20 000 при медиане 164) искажали бы статистические показатели и визуализацию.
  2. Задача №1 (Диаграмма рассеяния):

    • Построенный график продемонстрировал сильную положительную корреляцию между выручкой и прибылью. Характер распределения (форма «воронки») указывает на то, что с ростом объема сделки увеличивается и вариативность прибыли, что может свидетельствовать о разной маржинальности товаров. Очистка данных позволила визуализировать основную массу заказов в сопоставимом масштабе.
  3. Задача №2 (Target Encoding):

    • Применение целевого кодирования к признаку Shipping_Method позволило перевести категориальные данные в числовой формат, сохранив информацию о взаимосвязи метода доставки со временем ожидания (Shipping_Days). Несмотря на то, что в синтетических данных средние значения по группам близки (11.2–11.5 дней), метод успешно продемонстрировал возможность подготовки признаков для моделей машинного обучения.
  4. Задача №22 (MaxAbs Scaling):

    • Масштабирование признака Profit методом MaxAbs привело все значения к диапазону [-0.53, 1.0]. Данный метод был выбран как оптимальный для сохранения знака прибыли (убыток остается отрицательным) и разреженности данных, что важно для корректной работы линейных алгоритмов и нейронных сетей.