Аналитик данных (Профессиональный уровень)
Курс для опытных аналитиков, которые хотят перейти к продвинутым методам анализа, ML-моделям и управлению data-проектами.
Что предстоит пройти:
-
Продвинутый SQL (оконные функции, оптимизация запросов)
-
Python для анализа (Pandas, NumPy, автоматизация отчётов)
-
Статистика и ML (линейная регрессия, кластеризация, A/B-тесты)
-
Data Engineering (ETL-пайплайны, Airflow, DWH)
-
Визуализация и storytelling (Tableau, Power BI, презентации для C-level)
После курса учащийся:
✅ Должен уметь:
-
Писать сложные SQL-запросы для обработки Teradata/PostgreSQL.
-
Строить и интерпретировать ML-модели (Scikit-learn).
-
Разрабатывать дашборды с интерактивными отчётами.
-
Автоматизировать сбор данных через API и веб-скрапинг.
✅ Должен знать:
-
Принципы работы распределённых систем (Hadoop, Spark).
-
Методы feature engineering для ML.
-
Best practices управления data-проектами.
Формат обучения:
🔹 Кейс-стади (разбор реальных задач из Uber, Netflix, банков).
🔹 Практика на облачных платформах (Google Cloud, AWS).
🔹 Защита итогового проекта перед экспертами.
Хотите узнать, насколько вам необходим этот курс и действительно ли вы разобрались в теме?
Пройдите короткий тест — он поможет определить, стоит ли углубляться в эту тему, или вы уже готовы двигаться дальше.
1. Что такое оконные функции в SQL?
Оконные функции (OVER, PARTITION BY) выполняют вычисления над набором строк, связанных с текущей строкой, без группировки. Пример: RANK(), SUM() OVER().
2. Как оптимизировать медленный SQL-запрос?
-
Добавить индексы на поля в WHERE/JOIN;
-
Уменьшить вложенные подзапросы;
-
Использовать EXPLAIN для анализа плана выполнения.
3. В чём разница между INNER JOIN и LEFT JOIN?
INNER JOIN возвращает только совпадающие строки, LEFT JOIN — все строки из левой таблицы + совпадения справа (или NULL).
4. Как работать с JSON в PostgreSQL?
Через операторы -> (получить поле) и #> (путь). Функции: jsonb_set(), jsonb_agg().
5. Что такое Common Table Expressions (CTE)?
Временные результаты запроса с помощью WITH. Улучшают читаемость сложных запросов.
6. Как сделать рекурсивный запрос в SQL?
Через RECURSIVE в CTE. Пример: поиск иерархии сотрудников.
7. Для чего нужны индексы GIN и GiST в PostgreSQL?
GIN — для составных типов (массивы, JSON), GiST — для геоданных и полнотекстового поиска.
8. Как реализовать скользящее среднее в SQL?
Через оконные функции: AVG(value) OVER (ORDER BY date ROWS BETWEEN 2 PRECEDING AND CURRENT ROW).
9. Что такое нормализация базы данных?
Устранение избыточности путём разделения данных на связанные таблицы (1NF, 2NF, 3NF).
10. Как обработать выбросы в Pandas?
Методы: IQR (межквартильный размах), z-оценки, winsorization. Код: df[(np.abs(stats.zscore(df)) < 3].
11. Как ускорить работу Pandas с большими данными?
-
Использовать типы category;
-
Chunksize для постепенной загрузки;
-
Dask вместо Pandas.
12. В чём разница между merge() и join() в Pandas?
merge() — гибкое объединение по столбцам, join() — только по индексам.
13. Как применить функцию к каждой строке DataFrame?
df.apply(lambda row: func(row['col']), axis=1). Для скорости — vectorized operations.
14. Что такое MultiIndex в Pandas?
Иерархические индексы для работы с многомерными данными. Пример: df.set_index(['col1', 'col2']).
15. Как обработать пропуски во временном ряду?
Методы: интерполяция, forward fill, прогнозирование. Код: df.interpolate(method='time').
16. Как сделать сводную таблицу в Pandas?
pd.pivot_table(data=df, index='col1', columns='col2', values='col3', aggfunc='mean').
17. Как соединить два DataFrame по условию?
pd.merge(left, right, how='inner', on='key') или через join().
18. Как переиндексировать временной ряд?
df.asfreq('D') — для заполнения пропущенных дат.
19. Как посчитать скользящее среднее в Pandas?
df['column'].rolling(window=7).mean().
20. Как визуализировать корреляционную матрицу?
sns.heatmap(df.corr(), annot=True).
21. Что такое Feature Engineering?
Создание новых признаков для ML (например, извлечение дня недели из даты).
22. Как кодировать категориальные переменные?
One-Hot Encoding (pd.get_dummies()), Label Encoding, Target Encoding.
23. Как выбрать важные признаки для ML?
Методы: feature_importances_, SHAP, ANOVA.
24. Что делает StandardScaler?
Стандартизирует данные: (x - mean) / std.
25. Как бороться с дисбалансом классов?
Методы: SMOTE, undersampling, веса классов в model.fit(class_weight='balanced').
26. Как интерпретировать p-value?
Если p < 0.05, отвергаем нулевую гипотезу (есть статистическая значимость).
27. Когда использовать t-test, а когда ANOVA?
t-test — для 2 групп, ANOVA — для 3+.
28. Как провести A/B-тест правильно?
-
Рассчитать размер выборки;
-
Проверить однородность групп;
-
Использовать критерий Манна-Уитни для ненормальных данных.
29. Что такое Bootstrap в статистике?
Метод оценки распределения через многократную выборку с повторением.
30. Как считать доверительные интервалы?
stats.norm.interval(0.95, loc=mean, scale=std).
31. Как настроить гиперпараметры модели?
GridSearchCV или RandomizedSearchCV в sklearn.
32. В чём разница между Random Forest и Gradient Boosting?
RF — бэггинг (параллельные деревья), GB — бустинг (последовательные, с коррекцией ошибок).
33. Как оценить качество кластеризации?
Метрики: silhouette_score, elbow method.
34. Как интерпретировать матрицу ошибок?
Accuracy = (TP+TN)/total; Precision = TP/(TP+FP); Recall = TP/(TP+FN).
35. Что такое ROC-AUC?
Метрика качества бинарной классификации (1 — идеально, 0.5 — случайно).
36. Как развернуть ML-модель в production?
Через Flask/FastAPI + Docker или облачные сервисы (AWS SageMaker).
37. Как мониторить дрейф данных?
Сравнивать распределения признаков (KS-тест) и метрик модели.
38. Что такое Airflow?
Инструмент для оркестрации ETL-пайплайнов (на Python).
39. Как создать DAG в Airflow?
Определить задачи как Python-операторы и задать зависимости через >>.
40. Как настроить расписание в Airflow?
Через schedule_interval (cron-формат или timedelta).
41. Как обрабатывать ошибки в Airflow?
retries, retry_delay и callback-функции.
42. Что такое Slowly Changing Dimensions (SCD)?
Стратегии обновления измерений в DWH (типы 1-3).
43. Как реализовать SCD Type 2?
Добавлять поля valid_from/valid_to и флаг is_current.
44. В чём разница между ETL и ELT?
ETL — трансформация перед загрузкой, ELT — после (как в BigQuery).
45. Как проектировать витрины данных?
По принципам звезды/снежинки (факты + измерения).
46. Как ускорить запросы в ClickHouse?
-
Правильный порядок PRIMARY KEY;
-
MATERIALIZED VIEW;
- Использовать партиции.
47. Как визуализировать данные в Power BI?
Через DAX-формулы и настройку визуалов (матрицы, графики, карты).
48. Что такое DAX?
Язык формул в Power BI для расчётов (аналог Excel, но с контекстом фильтров).
49. Как считать накопительный итог в DAX?
TOTALYTD(SUM(Table[Sales]), 'Date'[Date]).
50. Как оптимизировать производительность Power BI?
-
Уменьшить кол-во визуалов;
-
Использовать агрегации;
-
Выключать авто-обновление.
51. Как настроить RLS в Power BI?
Через "Управление ролями" и DAX-фильтры (например, [Region] = USERNAME()).
52. Как сделать динамический заголовок в Power BI?
Через DAX: "Sales: " & SELECTEDVALUE('Table'[Metric]).
53. Как работать с API в Python?
Через библиотеку requests: requests.get(url, params=params).json().
54. Как парсить сайты с помощью BeautifulSoup?
soup = BeautifulSoup(html, 'lxml'); soup.find_all('div', class_='name').
55. Как обходить защиту от парсинга?
-
headers с User-Agent;
-
Прокси;
-
Selenium для JS-сайтов.
56. Как асинхронно парсить данные?
Через asyncio + aiohttp для одновременных запросов.
57. Как хранить скачанные данные?
В SQLite, Parquet или S3 (через boto3).
58. Как настроить мониторинг пайплайна?
Логи в ELK (Elasticsearch, Logstash, Kibana) или Prometheus + Grafana.
59. Что такое Data Contracts?
Соглашения между командами о формате и качестве данных.
60. Как документировать дата-проекты?
Через Data Dictionary (описание таблиц) и инструменты вроде DataHub.
61. Как проводить код-ревью в аналитике?
Проверять: SQL-оптимизацию, обработку крайних случаев, названия переменных.
62. Как презентовать результаты бизнесу?
Правило 10/20/30: 10 слайдов, 20 минут, шрифт 30pt.
63. Как считать ROI дата-проекта?
(Прибыль от проекта — Затраты) / Затраты * 100%.
64. Как работать с геоданными в Python?
Библиотеки geopandas, folium для карт и анализа.
65. Как кластеризовать точки на карте?
Алгоритм DBSCAN или K-means с геокоординатами.
66. Как визуализировать маршруты?
Через OSMnx + NetworkX для построения графов дорог.
67. Как предсказывать временные ряды?
Методы: ARIMA, Prophet, LSTM (для сложных паттернов).
68. Как оценивать качество прогноза?
Метрики: MAE, RMSE, MAPE, WMAPE (взвешенная ошибка).
69. Как детектировать аномалии во временных рядах?
Isolation Forest, One-Class SVM или статистические методы (скользящее STD).
70. Как делать feature engineering для временных рядов?
Лаггированные признаки, скользящие статистики, Fourier-преобразование.
71. Как деплоить ML-модель на AWS?
Через SageMaker Pipelines или EC2 + Flask.
72. Как настроить CI/CD для ML?
GitHub Actions + тесты на качество модели (например, ROC-AUC > 0.8).
73. Что такое MLOps?
Практики DevOps для ML: версионирование данных, мониторинг, автоматизация.
74. Как считать стоимость владения data-продуктом?
Затраты на инфраструктуру + зарплаты команды + поддержку.
75. Какие тренды в аналитике данных в 2024?
-
Генеративный AI для анализа;
-
Data Mesh;
-
Реальное время (Real-time Analytics).
Вопрос 1. Какая оконная функция SQL используется для присвоения порядкового номера строкам в результате запроса?
A) SUM()
B) ROW_NUMBER()
C) COUNT()
D) AVG()
Ответ: B
Вопрос 2. Какой метод Pandas используется для объединения таблиц по общему столбцу?
A) concat()
B) merge()
C) join()
D) append()
Ответ: B
Вопрос 3. Что означает параметр test_size в train_test_split() из sklearn?
A) Количество деревьев в Random Forest
B) Доля данных для тестовой выборки
C) Размер скользящего окна
D) Количество признаков
Ответ: B
Вопрос 4. Какой тип JOIN возвращает все строки из левой таблицы и соответствующие строки из правой?
A) INNER JOIN
B) LEFT JOIN
C) RIGHT JOIN
D) FULL JOIN
Ответ: B
Вопрос 5. Какая библиотека Python используется для работы с геоданными?
A) Matplotlib
B) Geopandas
C) Seaborn
D) Scipy
Ответ: B
Вопрос 6. Какой оператор DAX вычисляет накопительный итог?
A) SUM()
B) TOTALYTD()
C) AVERAGE()
D) COUNTROWS()
Ответ: B
Вопрос 7. Что делает метод fit_transform() в sklearn?
A) Только преобразует данные
B) Обучает модель и преобразует данные
C) Только обучает модель
D) Удаляет пропущенные значения
Ответ: B
Вопрос 8. Какой алгоритм машинного обучения относится к обучению без учителя?
A) Линейная регрессия
B) K-ближайших соседей
C) K-средних
D) Дерево решений
Ответ: C
Вопрос 9. Какой инструмент используется для оркестрации ETL-пайплайнов?
A) Tableau
B) Airflow
C) Power BI
D) Excel
Ответ: B
Вопрос 10. Какой тип индекса PostgreSQL лучше подходит для работы с JSON?
A) B-tree
B) Hash
C) GIN
D) GiST
Ответ: C
Вопрос 11. Какой метод Pandas используется для обработки пропущенных значений?
A) dropna()
B) fillna()
C) replace()
D) interpolate()
Ответ: A
Вопрос 12. Что такое SCD Type 2 в хранилищах данных?
A) Перезапись истории
B) Хранение полной истории изменений
C) Только последнее состояние
D) Удаление старых данных
Ответ: B
Вопрос 13. Какой алгоритм используется для обнаружения аномалий?
A) Линейная регрессия
B) Isolation Forest
C) K-средних
D) Градиентный бустинг
Ответ: B
Вопрос 14. Какой оператор SQL используется для фильтрации групп?
A) WHERE
B) GROUP BY
C) HAVING
D) ORDER BY
Ответ: C
Вопрос 15. Какой инструмент используется для интерактивной визуализации данных?
A) Tableau
B) PostgreSQL
C) Apache Spark
D) Scikit-learn
Ответ: A
Вопрос 16. Какой метод используется для оценки важности признаков в Random Forest?
A) feature_importances_
B) coefficients_
C) p-values
D) R-squared
Ответ: A
Вопрос 17. Какой тип диаграммы лучше всего показывает распределение данных?
A) Круговая
B) Гистограмма
C) Линейная
D) Пузырьковая
Ответ: B
Вопрос 18. Какой оператор Python используется для асинхронных HTTP-запросов?
A) requests
B) aiohttp
C) urllib
D) httpx
Ответ: B
Вопрос 19. Что такое ELK-стек?
A) Elasticsearch, Logstash, Kibana
B) Excel, Linux, Kafka
C) ETL, Looker, Kubernetes
D) Airflow, Luigi, Prefect
Ответ: A
Вопрос 20. Какой алгоритм лучше всего подходит для прогнозирования временных рядов?
A) KNN
B) ARIMA
C) SVM
D) DBSCAN
Ответ: B
Вопрос 21. Какой метод Pandas используется для изменения типа данных столбца?
A) astype()
B) dtype()
C) convert()
D) change_type()
Ответ: A
Вопрос 22. Какой инструмент используется для работы с большими данными?
A) Apache Spark
B) SQLite
C) Microsoft Access
D) Excel
Ответ: A
Вопрос 23. Какой тип репликации PostgreSQL обеспечивает наименьшую задержку?
A) Синхронная
B) Асинхронная
C) Логическая
D) Физическая
Ответ: A
Вопрос 24. Какой алгоритм использует бустинг?
A) Random Forest
B) XGBoost
C) K-means
D) PCA
Ответ: B
Вопрос 25. Какой метод используется для уменьшения размерности данных?
A) Линейная регрессия
B) PCA
C) KNN
D) SVM
Ответ: B
Вопрос 26. Какой оператор SQL используется для создания представления?
A) CREATE TABLE
B) CREATE VIEW
C) CREATE INDEX
D) CREATE FUNCTION
Ответ: B
Вопрос 27. Какой инструмент используется для версионирования данных?
A) Git
B) DVC
C) Docker
D) Kubernetes
Ответ: B
Вопрос 28. Какой алгоритм лучше всего подходит для кластеризации?
A) Линейная регрессия
B) K-средних
C) Дерево решений
D) SVM
Ответ: B
Вопрос 29. Какой метод используется для оценки качества кластеризации?
A) ROC-AUC
B) Silhouette score
C) R-squared
D) MAE
Ответ: B
Вопрос 30. Какой оператор SQL используется для рекурсивных запросов?
A) LOOP
B) RECURSIVE
C) ITERATE
D) CYCLE
Ответ: B
Вопрос 31. Какой инструмент используется для мониторинга ML-моделей в продакшене?
A) Prometheus
B) Tableau
C) Power BI
D) Excel
Ответ: A
Вопрос 32. Какой алгоритм лучше всего подходит для обработки естественного языка?
A) Random Forest
B) LSTM
C) K-means
D) PCA
Ответ: B
Вопрос 33. Какой метод используется для балансировки классов?
A) SMOTE
B) PCA
C) One-Hot Encoding
D) Normalization
Ответ: A
Вопрос 34. Какой оператор SQL используется для транзакций?
A) BEGIN TRANSACTION
B) START TRANSACTION
C) OPEN TRANSACTION
D) RUN TRANSACTION
Ответ: A
Вопрос 35. Какой инструмент используется для контейнеризации приложений?
A) Docker
B) Apache Spark
C) PostgreSQL
D) Tableau
Ответ: A
Вопрос 36. Какой алгоритм лучше всего подходит для рекомендательных систем?
A) Линейная регрессия
B) Коллаборативная фильтрация
C) K-means
D) SVM
Ответ: B
Вопрос 37. Какой метод используется для обработки категориальных переменных?
A) One-Hot Encoding
B) Normalization
C) Standardization
D) Log Transformation
Ответ: A
Вопрос 38. Какой оператор SQL используется для создания индекса?
A) CREATE INDEX
B) ADD INDEX
C) MAKE INDEX
D) NEW INDEX
Ответ: A
Вопрос 39. Какой инструмент используется для оркестрации контейнеров?
A) Kubernetes
B) Docker
C) Apache Spark
D) PostgreSQL
Ответ: A
Вопрос 40. Какой алгоритм лучше всего подходит для обработки изображений?
A) Random Forest
B) CNN
C) K-means
D) PCA
Ответ: B
Вопрос 41. Какой метод используется для нормализации данных?
A) MinMaxScaler
B) One-Hot Encoding
C) Label Encoding
D) SMOTE
Ответ: A
Вопрос 42. Какой оператор SQL используется для удаления данных?
A) DELETE
B) REMOVE
C) DROP
D) ERASE
Ответ: A
Вопрос 43. Какой инструмент используется для потоковой обработки данных?
A) Apache Kafka
B) PostgreSQL
C) Tableau
D) Power BI
Ответ: A
Вопрос 44. Какой алгоритм лучше всего подходит для обнаружения мошенничества?
A) Линейная регрессия
B) Isolation Forest
C) K-means
D) PCA
Ответ: B
Вопрос 45. Какой метод используется для работы с пропущенными значениями?
A) Interpolation
B) One-Hot Encoding
C) Label Encoding
D) SMOTE
Ответ: A
Вопрос 46. Какой оператор SQL используется для обновления данных?
A) UPDATE
B) CHANGE
C) MODIFY
D) ALTER
Ответ: A
Вопрос 47. Какой инструмент используется для работы с графами?
A) Neo4j
B) PostgreSQL
C) Tableau
D) Power BI
Ответ: A
Вопрос 48. Какой алгоритм лучше всего подходит для анализа тональности текста?
A) Random Forest
B) SVM
C) K-means
D) PCA
Ответ: B
Вопрос 49. Какой метод используется для уменьшения переобучения?
A) Регуляризация
B) One-Hot Encoding
C) Label Encoding
D) SMOTE
Ответ: A
Вопрос 50. Какой оператор SQL используется для создания таблицы?
A) CREATE TABLE
B) MAKE TABLE
C) NEW TABLE
D) BUILD TABLE
Ответ: A
Вопрос 51. Какой инструмент используется для работы с большими объемами данных в памяти?
A) Apache Spark
B) PostgreSQL
C) Tableau
D) Power BI
Ответ: A
Вопрос 52. Какой алгоритм лучше всего подходит для обработки временных рядов?
A) ARIMA
B) KNN
C) SVM
D) PCA
Ответ: A
Вопрос 53. Какой метод используется для выбора признаков?
A) PCA
B) One-Hot Encoding
C) Label Encoding
D) SMOTE
Ответ: A
Вопрос 54. Какой оператор SQL используется для выборки данных?
A) SELECT
B) GET
C) FETCH
D) PULL
Ответ: A
Вопрос 55. Какой инструмент используется для работы с NoSQL базами данных?
A) MongoDB
B) PostgreSQL
C) Tableau
D) Power BI
Ответ: A
Вопрос 56. Какой алгоритм лучше всего подходит для классификации текста?
A) Random Forest
B) Naive Bayes
C) K-means
D) PCA
Ответ: B
Вопрос 57. Какой метод используется для работы с несбалансированными данными?
A) SMOTE
B) PCA
C) One-Hot Encoding
D) Normalization
Ответ: A
Вопрос 58. Какой оператор SQL используется для сортировки данных?
A) ORDER BY
B) SORT BY
C) ARRANGE BY
D) GROUP BY
Ответ: A
Вопрос 59. Какой инструмент используется для работы с облачными хранилищами данных?
A) Amazon S3
B) PostgreSQL
C) Tableau
D) Power BI
Ответ: A
Вопрос 60. Какой алгоритм лучше всего подходит для регрессии?
A) Линейная регрессия
B) KNN
C) SVM
D) PCA
Ответ: A
Вопрос 61. Какой метод используется для работы с выбросами?
A) IQR
B) PCA
C) One-Hot Encoding
D) Normalization
Ответ: A
Вопрос 62. Какой оператор SQL используется для группировки данных?
A) GROUP BY
B) ORDER BY
C) SORT BY
D) ARRANGE BY
Ответ: A
Вопрос 63. Какой инструмент используется для работы с распределенными вычислениями?
A) Apache Hadoop
B) PostgreSQL
C) Tableau
D) Power BI
Ответ: A
Вопрос 64. Какой алгоритм лучше всего подходит для уменьшения размерности?
A) PCA
B) KNN
C) SVM
D) Random Forest
Ответ: A
Вопрос 65. Какой метод используется для работы с категориальными переменными?
A) One-Hot Encoding
B) PCA
C) IQR
D) Normalization
Ответ: A
Вопрос 66. Какой оператор SQL используется для ограничения количества возвращаемых строк?
A) LIMIT
B) TOP
C) FIRST
D) ROWS
Ответ: A
Вопрос 67. Какой инструмент используется для работы с графами?
A) NetworkX
B) PostgreSQL
C) Tableau
D) Power BI
Ответ: A
Вопрос 68. Какой алгоритм лучше всего подходит для обработки изображений?
A) CNN
B) KNN
C) SVM
D) PCA
Ответ: A
Вопрос 69. Какой метод используется для работы с пропущенными значениями?
A) fillna()
B) PCA
C) One-Hot Encoding
D) Normalization
Ответ: A
Вопрос 70. Какой оператор SQL используется для объединения таблиц?
A) JOIN
B) MERGE
C) COMBINE
D) UNION
Ответ: A
Вопрос 71. Какой инструмент используется для работы с потоковыми данными?
A) Apache Flink
B) PostgreSQL
C) Tableau
D) Power BI
Ответ: A
Вопрос 72. Какой алгоритм лучше всего подходит для обработки естественного языка?
A) BERT
B) KNN
C) SVM
D) PCA
Ответ: A
Вопрос 73. Какой метод используется для работы с временными рядами?
A) ARIMA
B) PCA
C) One-Hot Encoding
D) Normalization
Ответ: A
Вопрос 74. Какой оператор SQL используется для создания индекса?
A) CREATE INDEX
B) ADD INDEX
C) MAKE INDEX
D) NEW INDEX
Ответ: A
Вопрос 75. Какой инструмент используется для работы с большими данными в реальном времени?
A) Apache Kafka
B) PostgreSQL
C) Tableau
D) Power BI
Ответ: A
Билет 1
Теоретическая часть:
-
Что такое оконные функции в SQL? Приведите пример использования.
Ответ: Оконные функции выполняют вычисления над набором строк, связанных с текущей строкой. -
Какие методы борьбы с переобучением в ML вы знаете?
Ответ: Регуляризация (L1/L2), кросс-валидация, dropout (для нейросетей), упрощение модели.
Практическая часть:
Задание: Напишите SQL-запрос для расчета скользящего среднего продаж за 7 дней.
Ответ:
SELECT
date,
sales,
AVG(sales) OVER (ORDER BY date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) as moving_avg
FROM sales_data;
Билет 2
Теоретическая часть:
-
Объясните разницу между ETL и ELT.
Ответ: ETL (Extract, Transform, Load) — трансформация данных перед загрузкой в хранилище. ELT (Extract, Load, Transform) — данные сначала загружаются, затем трансформируются. -
Что такое Feature Engineering? Приведите 2 примера.
Ответ: Создание новых признаков для ML. Примеры: извлечение дня недели из даты, агрегация сумм покупок по клиенту.
Практическая часть:
Задание: В Pandas обработайте пропуски в столбце "age": замените их медианным значением.
Ответ:
df['age'] = df['age'].fillna(df['age'].median())
Билет 3
Теоретическая часть:
-
Что такое SCD (Slowly Changing Dimensions)? Опишите Type 2.
Ответ: Метод отслеживания изменений в измерениях. Type 2 — хранение полной истории с полями valid_from.valid_from
,valid_to
и флагомis_current
. -
Для чего нужен Apache Airflow?
Ответ: Для оркестрации и мониторинга ETL-пайплайнов через направленные ациклические графы (DAG).
Практическая часть:
Задание: Напишите DAG для Airflow, который запускает ETL-скрипт ежедневно в 8:00.
Ответ:
from airflow import DAG
from airflow.operators.bash import BashOperator
from datetime import datetime
dag = DAG(
'daily_etl',
schedule_interval='0 8 * * *',
start_date=datetime(2023, 1, 1)
)
task = BashOperator(
task_id='run_etl',
bash_command='python /scripts/etl.py',
dag=dag
)
Билет 4
Теоретическая часть:
-
Что делает метод
fit_transform()
в sklearn?
Ответ: Обучает модель на данных и сразу применяет трансформацию (например, для StandardScaler). -
Как оценить качество кластеризации?
Ответ: Метрики: silhouette score, elbow method, Davies-Bouldin index.
Практическая часть:
Задание: Разделите данные на тренировочную и тестовую выборки (70/30) с использованием train_test_split .
Ответ:
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
Билет 5
Теоретическая часть:
-
Что такое ROC-AUC? Как интерпретировать значение 0.9?
Ответ: Метрика качества бинарной классификации. 0.9 — отличная модель (1 — идеально, 0.5 — случайное угадывание). -
Какие типы индексов есть в PostgreSQL?
Ответ: B-tree, Hash, GIN, GiST, BRIN.
Практическая часть:
Задание: Посчитайте количество уникальных значений в столбце "product_id" с помощью Pandas.
Ответ:
unique_count = df['product_id'].nunique()
Билет 6
Теоретическая часть:
-
Что такое SMOTE? В каких случаях применяется?
Ответ: Метод генерации синтетических примеров для балансировки несбалансированных данных. -
Как работает алгоритм XGBoost?
Ответ: Градиентный бустинг с оптимизацией через вторые производные, регуляризацией и обработкой пропусков.
Практическая часть:
Задание: Примените One-Hot Encoding к категориальному столбцу "category" в Pandas.
Ответ:
df_encoded = pd.get_dummies(df, columns=['category'])
Билет 7
Теоретическая часть:
-
Что такое Data Lake? Чем отличается от Data Warehouse?
Ответ: Data Lake хранит сырые данные любого формата, DWH — структурированные данные для анализа. -
Как работает оконная функция
ROW_NUMBER()
?
Ответ: Присваивает уникальный номер каждой строке в рамках партиции.
Практическая часть:
Задание: Напишите SQL-запрос для выбора топ-3 самых дорогих товаров в каждой категории.
Ответ:
WITH ranked_products AS (
SELECT
product_id,
category,
price,
ROW_NUMBER() OVER (PARTITION BY category ORDER BY price DESC) as rank
FROM products
)
SELECT * FROM ranked_products WHERE rank <= 3;
Билет 8
Теоретическая часть:
-
Что такое DAG в Airflow?
Ответ: Directed Acyclic Graph — граф задач без циклов, определяющий порядок выполнения. -
Как работает алгоритм Isolation Forest?
Ответ: Строит "деревья изоляции" для обнаружения аномалий через случайные разбиения данных.
Практическая часть:
Задание: Рассчитайте коэффициент корреляции Пирсона между столбцами "age" и "income".
Ответ:
correlation = df['age'].corr(df['income'])
Билет 9
Теоретическая часть:
-
Что такое параметр test_size в train_test_split ?
Ответ: Доля данных, выделяемых для тестовой выборки (например, 0.3 для 30%). -
Как работает метод groupby() в Pandas?
Ответ: Группирует данные по указанному столбцу для агрегации (например, groupby('category').sum() ).
Практическая часть:
Задание: Создайте сводную таблицу в Pandas, показывающую средний доход по возрасту и полу.
Ответ:
pivot_table = df.pivot_table(values='income', index='age', columns='gender', aggfunc='mean')
Билет 10
Теоретическая часть:
-
Что такое регуляризация в ML?
Ответ: Метод уменьшения переобучения через штраф за сложность модели (L1 — лассо, L2 — ридж). - Как работает оператор HAVING в SQL?
Ответ: Фильтрует результаты агрегации (аналог WHERE для GROUP BY)
Практическая часть:
Задание: Напишите SQL-запрос для выбора категорий с суммарными продажами > 1000.
Ответ:
SELECT category, SUM(sales) as total_sales
FROM products
GROUP BY category
HAVING SUM(sales) > 1000;
Билет 11
Теоретическая часть:
-
Что такое материализованные представления (Materialized Views) в PostgreSQL? Чем они отличаются от обычных представлений?
Ответ: Материализованные представления физически хранят результат запроса и могут обновляться по расписанию, тогда как обычные представления выполняют запрос при каждом обращении. -
Объясните принцип работы алгоритма градиентного бустинга (Gradient Boosting).
Ответ: Последовательное построение ансамбля слабых моделей (обычно деревьев), где каждая следующая модель обучается на ошибках предыдущих с применением градиентного спуска.
Практическая часть:
Задание: Создайте материализованное представление в PostgreSQL, содержащее среднюю зарплату по отделам.
Ответ:
CREATE MATERIALIZED VIEW avg_salary_by_dept AS
SELECT department, AVG(salary) as avg_salary
FROM employees
GROUP BY department;
Билет 12
Теоретическая часть:
-
Что такое партиционирование таблиц в PostgreSQL? Какие преимущества оно дает?
Ответ: Разделение таблицы на физические части по значению столбца. Преимущества: ускорение запросов, упрощение управления большими таблицами. -
Опишите процесс кросс-валидации в машинном обучении.
Ответ: Метод оценки модели путем разделения данных на k частей (фолдов), где модель обучается на k-1 фолдах и проверяется на оставшемся.
Практическая часть:
Задание: Реализуйте 5-кратную кросс-валидацию для модели линейной регрессии.
Ответ:
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LinearRegression
scores = cross_val_score(LinearRegression(), X, y, cv=5)
Билет 13
Теоретическая часть:
-
Что такое транзакции в базах данных? Назовите их свойства (ACID).
Ответ: ACID: Atomicity (атомарность), Consistency (согласованность), Isolation (изолированность), Durability (долговечность). -
Как работает алгоритм Apriori для поиска ассоциативных правил?
Ответ: Находит частые наборы элементов, используя принцип "если набор частый, то все его подмножества тоже частые".
Практическая часть:
Задание: Напишите SQL-запрос для создания транзакции, которая обновляет баланс двух счетов.
Ответ:
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;
Билет 14
Теоретическая часть:
-
Что такое индексы покрытия (Covering Index) в SQL?
Ответ: Индекс, который содержит все поля, необходимые для выполнения запроса, что позволяет избежать чтения самой таблицы. -
Объясните принцип работы метода главных компонент (PCA).
Ответ: Линейное преобразование, которое проецирует данные в пространство меньшей размерности, сохраняя максимальную дисперсию.
Практическая часть:
Задание: Примените PCA к датасету с 10 признаками, сократив размерность до 3.
Ответ:
from sklearn.decomposition import PCA
pca = PCA(n_components=3)
X_pca = pca.fit_transform(X)
Билет 15
Теоретическая часть:
-
Что такое планировщик запросов (Query Planner) в СУБД?
Ответ: Компонент СУБД, который выбирает оптимальный план выполнения запроса на основе статистики и стоимости операций. -
Опишите архитектуру Apache Spark.
Ответ: Основан на RDD (Resilient Distributed Datasets), включает Spark SQL, Spark Streaming, MLlib, GraphX.
Практическая часть:
Задание: Напишите PySpark-код для подсчета среднего значения в столбце.
Ответ:
from pyspark.sql import functions as F
avg_value = df.select(F.avg("column_name")).collect()[0][0]
Кейс 1: Оптимизация логистики e-commerce компании
Контекст:
Крупный онлайн-ритейлер столкнулся с ростом затрат на доставку (увеличение на 25% за квартал) при сохранении объема продаж. Доступные данные:
-
Геолокация клиентов и складов
-
История заказов (время доставки, стоимость, способ доставки)
-
Затраты на логистику по регионам
-
Отзывы клиентов о сроках доставки
Скрытые проблемы:
-
Неоптимальное расположение складов
-
70% заказов доставляются из удаленных складов
-
Нет четкой привязки складов к кластерам спроса
-
-
Ошибки в маршрутизации
-
Курьеры объезжают 3-4 точки вместо оптимального пути
-
Нет учета пробок в реальном времени
-
-
Дисбаланс нагрузки
-
40% заказов обрабатываются 2 из 10 складов
-
Задачи для аналитика:
-
Провести геоаналитику:
-
Кластеризация клиентов по плотности заказов (K-means)
-
Расчет экономии при открытии складов в новых локациях
-
-
Оптимизировать маршруты:
-
Построение графа дорог (OSMnx + NetworkX)
-
Интеграция с API карт (Google Maps/Yandex)
-
-
Автоматизировать распределение заказов:
Псевдокод алгоритма распределения def assign_order(order): nearest_warehouse = find_warehouse(order.location) if nearest_warehouse.capacity > current_load * 0.8: reroute_to_secondary_warehouse() update_delivery_graph()
Ожидаемые результаты:
-
Карта оптимального расположения складов
-
Модель прогнозирования спроса по регионам
-
Прототип системы динамической маршрутизации
Кейс 2: Прогнозирование оттока клиентов банка
Контекст:
Банк теряет 15% клиентов ежемесячно. Доступные данные:
-
Транзакции за 2 года
-
Демография клиентов
-
История обращений в поддержку
-
Данные о подключенных услугах
Скрытые проблемы:
-
Неочевидные признаки оттока
-
Нет прямой корреляции между частотой транзакций и оттоком
-
Скрытые паттерны в последовательностях операций
-
-
Дисбаланс данных
-
Только 5% клиентов помечены как ушедшие
-
-
Проблемы в данных
-
30% записей о взаимодействиях с поддержкой не структурированы
-
Задачи для аналитика:
-
Feature Engineering:
-
Извлечение временных паттернов (например, снижение активности за 30 дней до ухода)
-
Обработка текста обращений в поддержку (NLP)
-
-
Построение модели:
from sklearn.ensemble import GradientBoostingClassifier model = GradientBoostingClassifier( n_estimators=200, max_depth=5, class_weight='balanced' )
-
Интерпретация результатов:
-
SHAP-анализ для определения ключевых факторов оттока
-
Сегментация клиентов по риску ухода
-
Ролевая игра 1: "Кризис данных в FinTech-стартапе"
Цель: Научиться оперативно выявлять и устранять проблемы в data-пайплайнах, работать в условиях неопределенности.
Формат:
-
Тип: Командная (4-5 человек)
-
Время: 90 минут
-
Инструменты: Jira-доска, Python/SQL-песочница, Zoom/мит-рум
Сеттинг:
Команда дата-инженеров в растущем стартапе обнаружила, что:
-
Ежедневный отчет для ЦБ содержит ошибки
-
30% транзакций не учитываются в DWH
-
Клиенты жалуются на некорректные балансы
Роли:
-
Главный дата-инженер — координация работы, принятие решений
-
Аналитик данных — поиск корня проблемы в данных
-
ML-инженер — проверка влияния на скоринговые модели
-
Продуктовый менеджер — коммуникация с бизнесом
-
DevOps-инженер — диагностика инфраструктуры
Этапы:
-
Триггер (15 мин): Получение алерта о расхождениях в отчете
-
Диагностика (30 мин):
-
Анализ логов Airflow
-
Сравнение сырых данных и витрин
-
-
Решение (30 мин):
-
Горячий фикс пайплайна
-
Перерасчет данных за 48 часов
-
-
Постмортем (15 мин): Презентация выводов CEO
Обучающие эффекты:
-
Понимание взаимосвязей в ETL-процессах
-
Навыки работы с инцидентами
-
Управление приоритетами под давлением
Проблемы:
-
Конфликт между срочным фиксом и долгосрочным решением
-
Нехватка логов для диагностики
Ролевая игра 2: "Битва дашбордов"
Цель: Научиться визуализировать данные для разных стейкхолдеров.
Формат:
-
Тип: Соревнование (3 команды по 2-3 человека)
-
Время: 60 минут
-
Инструменты: Tableau/Power BI, фиктивный датасет
Сеттинг:
Команды получают один набор данных о продажах, но разные роли:
-
Для CFO — акцент на финансовых метриках
-
Для маркетинга — воронки и ROI кампаний
-
Для операционного директора — геораспределение заказов
Критерии оценки:
-
Ясность ключевого сообщения
-
Интерактивность элементов
-
Оптимальность выбора графиков
Этапы:
-
Анализ требований (10 мин)
-
Прототипирование (30 мин)
-
Презентация (15 мин)
-
Голосование за лучший дашборд
Обучающие эффекты:
-
Понимание потребностей аудитории
-
Навыки сторителлинга с данными
Ролевая игра 3: "Data Science Спринт"
Цель: Проработать полный цикл ML-проекта за ограниченное время.
Формат:
-
Тип: Хакатон (4-6 человек)
-
Время: 120 минут
-
Инструменты: Python (Jupyter Notebook), Kaggle-like датасет
Сеттинг:
Команда должна за 2 часа:
-
Построить модель прогнозирования оттока клиентов
-
Достичь AUC > 0.85
-
Подготовить презентацию для продукт-менеджера
Роли:
-
Data Scientist — построение модели
-
Data Engineer — подготовка данных
-
Аналитик — интерпретация результатов
-
Презентер — защита решения
Этапы:
-
EDA (30 мин)
-
Feature Engineering (40 мин)
-
Обучение модели (40 мин)
-
Подготовка выводов (20 мин)
Обучающие эффекты:
-
Приоритизация задач в условиях дедлайна
-
Баланс между качеством модели и объяснимостью
Ролевая игра 4: "Переговоры с заказчиком"
Цель: Развить навыки управления ожиданиями и презентации сложных концепций.
Формат:
-
Тип: Деловая игра (3 участника + модератор)
-
Время: 45 минут
-
Инструменты: Фейковые требования, чат для переписки
Сеттинг:
Ситуация: Клиент требует:
-
Внедрить ML-модель за 2 недели
-
Точность 99%
-
Бюджет в 3 раза ниже рыночного
Роли:
-
Аналитик — объясняет технические ограничения
-
Продакт — ищет компромиссы
-
Клиент (играет модератор) — агрессивно давит
Этапы:
-
Подготовка аргументов (10 мин)
-
Основные переговоры (25 мин)
-
Подписание "контракта" (10 мин)
Обучающие эффекты:
-
Перевод технических терминов на бизнес-язык
-
Навыки работы с возражениями
Совет: Для реализма добавить "сюрпризы" — например, внезапное требование GDPR-комплаенс в середине игры.
1. Карта "Путь профессионального аналитика данных"
Центральная ветвь: Профессиональный аналитик данных
Основные направления:
-
Технические навыки
-
Продвинутый SQL (оптимизация запросов, оконные функции)
-
Python для анализа (Pandas, NumPy, Polars)
-
ETL-инструменты (Airflow, dbt, Spark)
-
BI-системы (Tableau, Power BI, Metabase)
-
-
Методологии
-
Проектирование DWH (звезда/снежинка)
-
Метрики продукта и бизнеса (AARRR, North Star Metric)
-
Построение дашбордов (правило 5 секунд)
-
-
Soft Skills
-
Коммуникация с заказчиками (перевод требований в задачи)
-
Управление проектами (Agile, Scrum)
-
Презентация результатов (сторителлинг)
-
-
Специализации
-
Финансовая аналитика
-
Маркетинговая аналитика
-
HR-аналитика
-
2. Карта "Инструментарий аналитика"
Центральная ветвь: Инструменты
Категории:
-
Хранение данных
-
Реляционные БД (PostgreSQL, MySQL)
-
NoSQL (MongoDB, Redis)
-
Колоночные БД (ClickHouse, BigQuery)
-
-
Обработка данных
-
Пакетная (Apache Spark)
-
Потоковая (Kafka, Flink)
-
-
Визуализация
-
Интерактивные отчеты (Tableau)
-
Геоаналитика (Kepler.gl)
-
Автоматизация (Superset)
-
-
ML в продакшене
-
Развертывание (MLflow)
-
Мониторинг (Evidently)
-
3. Карта "Этапы работы с проектом"
Центральная ветвь: Жизненный цикл проекта
Этапы:
-
Постановка задачи
-
Сбор требований
-
Формулировка гипотез
-
-
Исследование данных
-
Поиск источников
-
Валидация качества
-
-
Проектирование решения
-
Архитектура хранения
-
Пайплайны обработки
-
-
Реализация
-
Написание кода/запросов
-
Тестирование
-
-
Внедрение
-
Деплой решения
-
Обучение пользователей
-
-
Поддержка
-
Мониторинг
-
Оптимизация
-
4. Карта "Ошибки и решения"
Центральная ветвь: Типичные проблемы
Примеры:
-
Проблема: Отчеты долго генерируются
-
Решение: Оптимизация запросов, материализованные представления
-
-
Проблема: Модель дает плохие предсказания
-
Решение: Проверка дрейфа данных, переобучение
-
-
Проблема: Заказчик не понимает отчет
-
Решение: Упрощение визуализации, глоссарий терминов
-
5. Карта "Развитие в профессии"
Центральная ветвь: Карьерный рост
Направления:
-
Эксперт
-
Углубление в ML
-
Архитектура данных
-
-
Руководитель
-
Управление командой
-
Стратегия данных
-
-
Консультант
-
Аудит процессов
-
Оптимизация инфраструктуры
-
1. Учебник: "The Art of Data Science" (Roger D. Peng & Elizabeth Matsui)
Тип: Учебное пособие
2. "Data Science for Business" (Foster Provost & Tom Fawcett)
Тип: Хрестоматия
3. "Designing Data-Intensive Applications" (Martin Kleppmann)
Тип: Учебник для продвинутых
4. "Python for Data Analysis" (Wes McKinney)
Тип: Практическое руководство + задачник
5. "Методические рекомендации по построению дашбордов" (Аналитический отдел Тинькофф, 2023)
Тип: Внутренний документ (доступен в открытых источниках
1. «Продвинутый SQL: Оптимизация запросов и аналитика Big Data»
Научитесь писать сложные запросы, работать с оконными функциями и оптимизировать производительность в PostgreSQL, ClickHouse и BigQuery.
2. «Машинное обучение для аналитиков: От EDA до production»
Практический курс по применению ML-моделей (классификация, регрессия, кластеризация) без углубления в математику.
3. «Data Engineering: Построение ETL-пайплайнов с нуля»
Освойте Apache Airflow, Spark и dbt для автоматизации обработки данных.
4. «Аналитика в Power BI и Tableau: От дашбордов до storytelling»
Создавайте интерактивные отчеты и учитесь презентовать данные бизнесу.
5. «Продвинутая визуализация данных: Python (Matplotlib, Seaborn, Plotly)»
Как превращать сложные данные в понятные и красивые графики.
6. «Анализ временных рядов: Прогнозирование и аномалии»
ARIMA, Prophet, LSTM и детектирование выбросов в реальных данных.
7. «Финансовая аналитика в Excel и Python»
Расчет ROI, прогнозирование денежных потоков и риск-анализ.
8. «Геоаналитика: Карты, кластеризация и оптимизация логистики»
Работа с геоданными в Python (Geopandas, Kepler.gl) и Power BI.
9. «A/B-тестирование: От планирования до интерпретации»
Как правильно проводить эксперименты и избегать статистических ловушек.
10. «Анализ текстовых данных (NLP) для бизнеса»
Обработка отзывов, чат-ботов и соцсетей с помощью Python (NLTK, spaCy).
11. «DataOps: Управление данными в production»
Версионирование данных, мониторинг пайплайнов и CI/CD для аналитики.
12. «Оптимизация SQL-запросов в больших базах данных»
Индексы, партиционирование и анализ execution plan.
13. «Аналитика в маркетинге: От Google Analytics до сквозной аналитики»
Как считать ROI рекламных каналов и находить точки роста.
14. «HR-аналитика: Поиск, удержание и эффективность сотрудников»
Метрики подбора, анализ вовлеченности и прогнозирование текучести.
15. «Построение дата-продуктов: От идеи до внедрения»
Как превратить анализ в работающий сервис (на примере рекомендательных систем).
16. «Анализ медицинских данных: Основы биостатистики»
Работа с клиническими исследованиями и медицинской статистикой.
17. «Анализ игровой индустрии: Метрики мобильных приложений»
Retention, LTV, монетизация и A/B-тесты в играх.
18. «Практический MLOps: Развертывание и мониторинг моделей»
Docker, FastAPI, MLflow и Evidently для аналитиков.
19. «Анализ соцсетей: Поиск инсайтов в текстах и поведении»
Парсинг, анализ тональности и выявление трендов.
20. «Реальная аналитика в Excel: Макросы и Power Query»
Автоматизация отчетов и сложные расчеты без программирования.
21. «Анализ блокчейн-транзакций и крипторынка»
Как работать с цепочками блоков и предсказывать тренды.
22. «Продвинутый Python для аналитиков: Оптимизация кода»
Pandas, NumPy, Polars и многопоточность.
23. «Анализ рисков в финтехе: AML и скоринг»
Методы выявления мошенничества и оценки кредитоспособности.
24. «Аналитика в облаках: Google Cloud, AWS и Azure»
Работа с BigQuery, Redshift и Databricks.
25. «Карьера в аналитике: Как стать востребованным специалистом»
Soft skills, построение портфолио и подготовка к собеседованиям.
Нет элементов для просмотра