This commit is contained in:
2025-12-16 01:51:05 +03:00
parent a1bc89c481
commit c963b1e5ac
123 changed files with 5644 additions and 3802 deletions

View File

@@ -0,0 +1,55 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "3d3a9c98",
"metadata": {},
"source": [
"# EDA «Коммуникации в Городе»\n",
"\n",
"## Кратко о данных\n",
"- 118189 строк, 8339 клиентов, 35 исходных столбцов + инженерные (totals, CTR/CR, флаги).\n",
"- Диапазон дат: 20250109 — 20251104 (284 дня).\n",
"- Категории сервисов: ent, super, transport, shopping, hotel, avia; активные и пассивные показы/клики, заказы по категориям.\n",
"- Дубликаты по ключу (id, business_dt): нет.\n",
"\n",
"## Качество данных\n",
"- Пропуски: несущественные (NaN почти нет), отрицательных значений не обнаружено.\n",
"- Возраст: 1580 лет, p1/p99 = 22/68, мусора (<14 или >100) нет.\n",
"- Гендер: 68.5% M, 31.5% F. Платформа после нормализации: ~52.5% iOS, ~46.7% Android, 1.1% iPadOS.\n",
"- Признаки «заспамленности» и агрегаты на клиента добавлены: imp/click/order totals, CTR/CR, contact_days, avg_impressions_per_contact_day, order_categories_count.\n",
"\n",
"## Каналы и эффективность (агрегировано по всем строкам)\n",
"- Active impressions ≈ 219.5k, passive impressions ≈ 473.1k.\n",
"- Active clicks ≈ 147.3k (CTR_active ≈ 0.67), passive clicks ≈ 18.1k (CTR_passive ≈ 0.038).\n",
"- Заказы всего: 12439; CR click→order ≈ 7.5%, CR imp→order ≈ 1.8%.\n",
"- Дневных точек: 284; daily агрегаты подготовлены (CTR/CR, day_of_week).\n",
"\n",
"## Демография и устройство vs эффективность (по клиентским агрегатам)\n",
"- Таблицы по полу/возрастным группам/платформам готовы в `04_clients_segmentation.ipynb` (средние impressions/clicks/orders и CTR/CR).\n",
"- Гипотезы: в 05-м ноутбуке добавлены примеры MannWhitney по CTR active vs passive и по полу; можно расширять на платформы и возраст.\n",
"\n",
"## Лаги и сезонность\n",
"- Дневные ряды и метрики CTR/CR по времени и по дням недели — см. `03_time_and_lags.ipynb`.\n",
"- Лаги: реализованы кросс-корреляции orders vs impressions/clicks (hotel, avia) для lag 07; по клиентам — first_imp/click/order и распределения дней до заказа.\n",
"\n",
"## Сегменты и «усталость»\n",
"- Сегменты каналов: only_active / only_passive / both + метрики; бины по числу категорий заказов.\n",
"- «Заспамленность»: bin по avg_impressions_per_contact_day с CTR/CR; stacked доли категорий заказов по возрасту.\n",
"\n",
"## Модели как часть EDA\n",
"- На клиентском уровне собран датасет для задачи `has_any_order`; pipeline с OHE + StandardScaler + LogisticRegression и RandomForest (ROC-AUC и важности).\n",
"- Выводы по коэффициентам/важности доступны в `05_exploratory_models.ipynb`.\n",
"\n",
"## Что делать дальше\n",
"- Прогнать все ноутбуки end-to-end (данные готовы, зависимости в `.venv`): `jupyter lab` или `jupyter nbconvert --execute`.\n",
"- Уточнить нормализацию категорий (при необходимости) и при желании сохранить `dataset/ds_clean.parquet` (флаг в `01_load_and_clean.ipynb`).\n",
"- Добавить/актуализировать бизнес-гипотезы (категории, платформы, возраст) и зафиксировать p-value в таблице гипотез.\n",
"- При необходимости усилить визуализацию: календарные heatmap по CTR, ECDF лагов по каждой категории, PDP для топ-фичей модели.\n"
]
}
],
"metadata": {},
"nbformat": 4,
"nbformat_minor": 5
}