Data Science
Что такое Data Science
В 2012 году алгоритм магазина Target узнал о беременности подростка раньше её отца - по изменениям в паттерне покупок. Как горстка данных о лосьонах и витаминах превратилась в настолько точное предсказание? И почему для этого понадобилось не только Machine Learning, но целый конвейер из сбора данных, исследования, моделирования и умения рассказать историю?
- **Netflix** анализирует 500 млрд событий ежедневно (паузы, перемотки, время просмотра), чтобы рекомендовать следующий фильм - это целый data pipeline от логов до модели
- **Uber** использует EDA для обнаружения аномалий в ценообразовании: без исследовательского анализа баг в surge pricing стоил бы миллионы
- **Spotify Wrapped** - ежегодный отчёт для 500M пользователей - это пример мастерской коммуникации данных: те же числа, но поданные как личная история
Data Pipeline: путь данных от хаоса к решению
В 2012 году команда Target (крупная американская сеть магазинов) научилась определять беременность покупательниц **раньше, чем об этом узнавали их родственники**. Алгоритм анализировал историю покупок - лосьоны без запаха, витамины, хлопковые полотенца - и отправлял купоны на детские товары. Один разгневанный отец пришёл в магазин жаловаться, а через неделю извинился: его дочь действительно была беременна. Но чтобы это сработало, данные о миллионах покупок должны были пройти долгий путь от кассовых аппаратов до модели.
**Data pipeline** - это последовательность шагов, по которым данные проходят от источника до финального результата. Аналогия: нефтепровод. Сырая нефть (сырые данные) бесполезна - её нужно добыть, очистить, переработать и доставить потребителю. Точно так же сырые логи, CSV-файлы и API-ответы требуют обработки, прежде чем из них можно извлечь ценность.
Классический паттерн обработки данных - **ETL (Extract, Transform, Load)**: - **Extract** - извлечение данных из источников: базы данных (PostgreSQL, MongoDB), API (REST, GraphQL), файлы (CSV, JSON, Parquet), потоки (Kafka, IoT-сенсоры) - **Transform** - очистка и преобразование: удаление дубликатов, обработка пропусков, нормализация форматов, вычисление новых признаков - **Load** - загрузка в хранилище для анализа: data warehouse, data lake, аналитическая БД
**Источники данных в реальных проектах.** Netflix получает ~500 млрд событий в день от пользователей (что смотрели, на чём остановились, с какого устройства). Uber обрабатывает GPS-координаты миллионов поездок. Spotify анализирует 600 GB логов прослушивания ежедневно. Все эти данные проходят через ETL-пайплайны, прежде чем попасть в модели рекомендаций.
| Источник | Формат | Объём | Сложность |
|---|---|---|---|
| Реляционная БД (PostgreSQL) | Структурированный (таблицы) | ГБ–ТБ | Низкая - SQL-запросы |
| REST API | JSON | Зависит от rate limits | Средняя - пагинация, auth |
| Логи серверов | Текст / JSON | ТБ/день | Высокая - парсинг, фильтрация |
| IoT-сенсоры | Бинарный / потоки | Непрерывный поток | Высокая - real-time |
| Веб-скрапинг | HTML → структурированный | Зависит от сайта | Высокая - хрупкий |
**Garbage In - Garbage Out.** Самая продвинутая модель не спасёт плохие данные. Если в пайплайне не обработать дубликаты, пропуски и ошибки формата - модель будет учиться на мусоре и давать мусорные предсказания. По оценкам IBM, плохое качество данных обходится американской экономике в 3.1 триллиона ежегодно.
Компания получает данные о заказах из PostgreSQL, информацию о клиентах из REST API, и логи кликов из Kafka. Нужно объединить всё в единую таблицу и загрузить в BigQuery. Какой этап ETL отвечает за объединение данных из разных источников?
EDA: исследовательский анализ данных
В 1977 году математик **Джон Тьюки** опубликовал книгу «Exploratory Data Analysis», которая перевернула подход к статистике. До Тьюки стандартный подход был: сформулировать гипотезу → собрать данные → проверить гипотезу. Тьюки предложил обратное: **сначала посмотри на данные, дай им рассказать историю, и только потом формулируй гипотезы**. Этот принцип стал фундаментом Data Science.
Джон Тьюки и рождение EDA
Тьюки придумал термин «software» (программное обеспечение) и «bit» (бит). Его главная идея: «Лучше приблизительный ответ на правильный вопрос, чем точный ответ на неправильный». EDA - это способ найти правильные вопросы.
**EDA (Exploratory Data Analysis)** - это первый шаг работы с данными после загрузки. Цель: понять структуру, найти паттерны, обнаружить аномалии и выбросы, проверить качество. Это как осмотр пациента врачом перед назначением лечения - без диагностики лечение будет вслепую.
Три кита EDA: 1. **Структура** - сколько строк/столбцов, типы данных, пропуски, дубликаты 2. **Статистики** - среднее, медиана, квартили, стандартное отклонение, корреляции 3. **Визуализация** - распределения, выбросы, тренды, взаимосвязи между переменными
**Правило 5 минут:** Потратьте первые 5 минут на `.shape`, `.info()`, `.describe()` и `.value_counts()`. Эти 4 команды расскажут больше о данных, чем час гадания о том, какую модель выбрать. Многие новички сразу бросаются строить нейросеть, не посмотрев на данные - это как прописывать лекарство, не осмотрев пациента.
**Почему EDA важнее выбора модели.** Исследование Kaggle (2020) показало: победители соревнований тратят 40–60% времени на EDA и feature engineering, и лишь 10–20% на подбор модели. Правильно понятые данные + простая модель побьют плохо понятые данные + сложную модель почти всегда.
При EDA датасета Titanic обнаружено: в столбце Cabin 77% значений отсутствуют. Какое действие наиболее обоснованно на этапе EDA?
Моделирование: от гипотезы к предсказанию
Карта - это не территория. Глобус - не Земля. Модель прогноза погоды - не сама погода. **Модель** - это упрощение реальности, которое захватывает важные закономерности и отбрасывает несущественные детали. Статистик Джордж Бокс сказал знаменитую фразу: «Все модели неправильны, но некоторые полезны». Цель - не идеальная точность, а **достаточно хорошее приближение для принятия решений**.
В Data Science выделяют два типа моделей: - **Предсказательные (predictive)** - цель: максимально точно предсказать результат. Нас не волнует «почему», главное - «что будет». Пример: рекомендации Netflix, антиспам Gmail. - **Объяснительные (explanatory)** - цель: понять причинно-следственные связи. Нас волнует «почему». Пример: какие факторы влияют на отток клиентов, какие гены связаны с заболеванием.
| Модель | Тип задачи | Когда использовать | Сложность |
|---|---|---|---|
| Linear Regression | Регрессия | Линейные зависимости, интерпретируемость | Низкая |
| Logistic Regression | Классификация | Бинарная классификация, baseline | Низкая |
| Decision Tree | Оба | Нелинейные данные, интерпретируемость | Средняя |
| Random Forest | Оба | Универсальный выбор, хорош из коробки | Средняя |
| Gradient Boosting | Оба | Табличные данные, соревнования Kaggle | Высокая |
| Neural Network | Оба | Изображения, текст, большие данные | Высокая |
**Overfitting - главный враг модели.** Если модель идеально запомнила обучающие данные, но плохо работает на новых - она переобучилась. Это как студент, который зазубрил ответы к конкретным задачам, но не понял принцип. Поэтому данные **всегда** делят на train и test: модель учится на train, оценивается на test.
**Начинайте с простой модели.** Линейная регрессия или logistic regression за 5 минут дают baseline - точку отсчёта. Если она даёт 80% accuracy, а сложная нейросеть - 82%, стоит ли тратить недели? Часто - нет. Простые модели легче объяснить бизнесу, быстрее деплоить и дешевле поддерживать.
Модель предсказания цен на квартиры показывает MAE = $500 на обучающих данных, но MAE = $45,000 на тестовых. Что произошло?
Коммуникация: данные без истории - просто числа
В 2008 году Google запустил Google Flu Trends - систему, которая по поисковым запросам предсказывала эпидемии гриппа на 2 недели раньше CDC (Центра по контролю заболеваний). Модель была блестящей. Но проект провалился. Почему? Не потому что модель была плохой - а потому что **результаты были представлены без контекста**. Когда модель начала ошибаться (в 2013 она предсказала вдвое больше заболевших, чем было), никто не понял, почему. Не было коммуникации между data scientists и принимающими решения людьми.
**Data storytelling** - умение превращать числа в историю, которая побуждает к действию. Три компонента: - **Данные** - факты, метрики, результаты анализа - **Визуализация** - графики, дашборды, инфографика - **Нарратив** - контекст, причины, рекомендации Порознь они слабы: данные без визуализации - стена чисел, визуализация без нарратива - красивая, но непонятная, нарратив без данных - просто мнение.
**Jupyter Notebook** - основной инструмент data scientist'а для коммуникации. Это интерактивный документ, где код, визуализации и текст живут вместе. Но Jupyter - не единственный формат. Для руководства нужны executive dashboards (Tableau, Metabase), для инженеров - документация API модели, для аналитиков - воспроизводимые отчёты.
| Аудитория | Формат | Фокус | Пример |
|---|---|---|---|
| CEO / Board | 1-page executive summary | ROI, бизнес-метрики | «Модель сэкономит 2M/год» |
| Product Manager | Dashboard + рекомендации | Метрики продукта, A/B тесты | «Конверсия выросла на 12%» |
| Data Team | Jupyter notebook | Код, методология, воспроизводимость | «R² = 0.87, feature importance» |
| Инженеры | API docs + мониторинг | Latency, throughput, SLA | «p95 < 100ms, 99.9% uptime» |
**Распространённая ловушка:** красивые графики без actionable insights. Дашборд с 20 графиками - это не коммуникация, это информационная перегрузка. Хороший отчёт отвечает на три вопроса: **Что случилось?** (факт) → **Почему?** (причина) → **Что делать?** (рекомендация).
**Правило «So What?»** После каждого графика или числа задайте себе вопрос: «И что?». «Churn вырос на 3%» - и что? «Это значит, что мы теряем 150K/месяц после изменения ценовой модели» - вот теперь это actionable insight.
Data Science = Machine Learning. Главное - построить крутую модель.
ML - лишь один инструмент в арсенале data scientist'а. 80% работы - это сбор, очистка и исследование данных, а финальный этап - коммуникация результатов бизнесу.
По данным опросов Kaggle и Anaconda, data scientists тратят 45% времени на подготовку данных, 20% на EDA, 15% на моделирование и 20% на коммуникацию. Модель без качественных данных и понятной интерпретации - бесполезна. Netflix, Spotify, Airbnb подчёркивают: ценность data scientist'а не в умении обучить нейросеть, а в способности превратить данные в бизнес-решение.
Ключевые идеи
- **Data pipeline (ETL)** - данные проходят путь Extract → Transform → Load, прежде чем стать полезными. Garbage in = garbage out
- **EDA** - исследовательский анализ данных - важнее выбора модели. Четыре команды (shape, info, describe, value_counts) расскажут больше, чем час подбора гиперпараметров
- **Модель** - упрощение реальности. Начинайте с простых моделей (baseline), усложняйте только если простая не справляется
- **Коммуникация** - результат бесполезен, если не донесён до бизнеса. Формат зависит от аудитории: CEO нужен ROI, инженеру - API docs
- Вернёмся к истории Target: модель предсказала беременность не потому что была сложной, а потому что данные были качественно собраны (ETL), исследованы (EDA), модель проверена, а результат интегрирован в маркетинговую систему (коммуникация)
Связанные темы
Data Science - это интеграция множества дисциплин. Каждый следующий урок углубляет один из этапов:
- Python для Data Science — Инструменты для реализации всех этапов пайплайна: NumPy, Pandas, Matplotlib
- Описательная статистика — Математический фундамент EDA: средние, медианы, распределения
- Machine Learning: введение — Углубление в этап моделирования: типы ML, supervised vs unsupervised
Вопросы для размышления
- Вспомните последний раз, когда вы принимали решение на основе данных (выбор ресторана по рейтингу, покупка по отзывам). Какие этапы data pipeline вы неосознанно прошли?
- Почему компании с лучшими data scientists не всегда выигрывают? Какую роль играет качество данных и коммуникация?
- Если бы вам дали задачу предсказать отток клиентов, с чего бы вы начали - с выбора модели или с EDA? Почему?
Связанные уроки
- stat-01-sampling — Статистика - математическая основа EDA: распределения, корреляции и проверка гипотез
- ml-01-intro — ML-моделирование - третий этап Data Science pipeline, разбирается подробно в следующем курсе
- db-01-intro — Реляционные базы данных - один из основных источников данных в ETL-пайплайне
- ds-02 — Следующий урок охватывает Python-инструменты: NumPy, Pandas, Matplotlib
- se-01 — Принципы разработки ПО применимы к построению надёжных data pipelines