Аналитик данных (Профессиональный уровень)

Вы уже освоили основы анализа данных? Этот курс выведет вас на профессиональный уровень: углубленный SQL, машинное обучение для аналитики, автоматизация ETL-процессов и работа с Big Data. Вы научитесь строить сложные прогнозные модели, оптимизировать бизнес-процессы и презентовать insights топ-менеджменту. Только практика на реальных дата-сетах из ритейла, финтеха и маркетинга.

Курс для опытных аналитиков, которые хотят перейти к продвинутым методам анализа, ML-моделям и управлению data-проектами.

Что предстоит пройти:

  1. Продвинутый SQL (оконные функции, оптимизация запросов)

  2. Python для анализа (Pandas, NumPy, автоматизация отчётов)

  3. Статистика и ML (линейная регрессия, кластеризация, A/B-тесты)

  4. Data Engineering (ETL-пайплайны, Airflow, DWH)

  5. Визуализация и 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-запрос?

  1. Добавить индексы на поля в WHERE/JOIN;

  2. Уменьшить вложенные подзапросы;

  3. Использовать 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 с большими данными?

  1. Использовать типы category;

  2. Chunksize для постепенной загрузки; 

  3. 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-тест правильно?

  1. Рассчитать размер выборки;

  2. Проверить однородность групп;

  3. Использовать критерий Манна-Уитни для ненормальных данных.

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?

  1. Правильный порядок PRIMARY KEY;

  2.  MATERIALIZED VIEW;

  3.  Использовать партиции.

47. Как визуализировать данные в Power BI?
Через DAX-формулы и настройку визуалов (матрицы, графики, карты).

48. Что такое DAX?
Язык формул в Power BI для расчётов (аналог Excel, но с контекстом фильтров).

49. Как считать накопительный итог в DAX?
TOTALYTD(SUM(Table[Sales]), 'Date'[Date]).

50. Как оптимизировать производительность Power BI?

  1. Уменьшить кол-во визуалов;

  2. Использовать агрегации;

  3. Выключать авто-обновление.

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. Как обходить защиту от парсинга?

  1. headers с User-Agent;

  2. Прокси;

  3. 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?

  1. Генеративный AI для анализа;

  2. Data Mesh;

  3. Реальное время (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

Теоретическая часть:

  1. Что такое оконные функции в SQL? Приведите пример использования.
    Ответ: Оконные функции выполняют вычисления над набором строк, связанных с текущей строкой.

  2. Какие методы борьбы с переобучением в 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

Теоретическая часть:

  1. Объясните разницу между ETL и ELT.
    Ответ: ETL (Extract, Transform, Load) — трансформация данных перед загрузкой в хранилище. ELT (Extract, Load, Transform) — данные сначала загружаются, затем трансформируются.

  2. Что такое Feature Engineering? Приведите 2 примера.
    Ответ: Создание новых признаков для ML. Примеры: извлечение дня недели из даты, агрегация сумм покупок по клиенту.

 

Практическая часть:
Задание: В Pandas обработайте пропуски в столбце "age": замените их медианным значением.
Ответ:

df['age'] = df['age'].fillna(df['age'].median())

Билет 3

Теоретическая часть:

  1. Что такое SCD (Slowly Changing Dimensions)? Опишите Type 2.
    Ответ: Метод отслеживания изменений в измерениях. Type 2 — хранение полной истории с полями valid_from.valid_fromvalid_to и флагом is_current.

  2. Для чего нужен 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

Теоретическая часть:

  1. Что делает метод fit_transform() в sklearn?
    Ответ: Обучает модель на данных и сразу применяет трансформацию (например, для StandardScaler).

  2. Как оценить качество кластеризации?
    Ответ: Метрики: 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

Теоретическая часть:

  1. Что такое ROC-AUC? Как интерпретировать значение 0.9?
    Ответ: Метрика качества бинарной классификации. 0.9 — отличная модель (1 — идеально, 0.5 — случайное угадывание).

  2. Какие типы индексов есть в PostgreSQL?
    Ответ: B-tree, Hash, GIN, GiST, BRIN.

Практическая часть:
Задание: Посчитайте количество уникальных значений в столбце "product_id" с помощью Pandas.
Ответ:

unique_count = df['product_id'].nunique()

Билет 6

Теоретическая часть:

  1. Что такое SMOTE? В каких случаях применяется?
    Ответ: Метод генерации синтетических примеров для балансировки несбалансированных данных.

  2. Как работает алгоритм XGBoost?
    Ответ: Градиентный бустинг с оптимизацией через вторые производные, регуляризацией и обработкой пропусков.

Практическая часть:
Задание: Примените One-Hot Encoding к категориальному столбцу "category" в Pandas.
Ответ:

df_encoded = pd.get_dummies(df, columns=['category'])

Билет 7

Теоретическая часть:

  1. Что такое Data Lake? Чем отличается от Data Warehouse?
    Ответ: Data Lake хранит сырые данные любого формата, DWH — структурированные данные для анализа.

  2. Как работает оконная функция 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

Теоретическая часть:

  1. Что такое DAG в Airflow?
    Ответ: Directed Acyclic Graph — граф задач без циклов, определяющий порядок выполнения.

  2. Как работает алгоритм Isolation Forest?
    Ответ: Строит "деревья изоляции" для обнаружения аномалий через случайные разбиения данных.

Практическая часть:
Задание: Рассчитайте коэффициент корреляции Пирсона между столбцами "age" и "income".
Ответ:

correlation = df['age'].corr(df['income'])

Билет 9

Теоретическая часть:

  1. Что такое параметр  test_size  в  train_test_split ?
    Ответ: Доля данных, выделяемых для тестовой выборки (например, 0.3 для 30%).

  2. Как работает метод  groupby()  в Pandas?
    Ответ: Группирует данные по указанному столбцу для агрегации (например, groupby('category').sum() ).

Практическая часть:
Задание: Создайте сводную таблицу в Pandas, показывающую средний доход по возрасту и полу.
Ответ:

pivot_table = df.pivot_table(values='income', index='age', columns='gender', aggfunc='mean')

Билет 10

Теоретическая часть:

  1. Что такое регуляризация в ML?
    Ответ: Метод уменьшения переобучения через штраф за сложность модели (L1 — лассо, L2 — ридж).

  2. Как работает оператор HAVING в SQL?
    Ответ: Фильтрует результаты агрегации (аналог WHERE для GROUP BY)

Практическая часть:
Задание: Напишите SQL-запрос для выбора категорий с суммарными продажами > 1000.
Ответ:

SELECT category, SUM(sales) as total_sales
FROM products
GROUP BY category
HAVING SUM(sales) > 1000;

Билет 11

Теоретическая часть:

  1. Что такое материализованные представления (Materialized Views) в PostgreSQL? Чем они отличаются от обычных представлений?
    Ответ: Материализованные представления физически хранят результат запроса и могут обновляться по расписанию, тогда как обычные представления выполняют запрос при каждом обращении.

  2. Объясните принцип работы алгоритма градиентного бустинга (Gradient Boosting).
    Ответ: Последовательное построение ансамбля слабых моделей (обычно деревьев), где каждая следующая модель обучается на ошибках предыдущих с применением градиентного спуска.

Практическая часть:
Задание: Создайте материализованное представление в PostgreSQL, содержащее среднюю зарплату по отделам.
Ответ:

CREATE MATERIALIZED VIEW avg_salary_by_dept AS
SELECT department, AVG(salary) as avg_salary
FROM employees
GROUP BY department;

Билет 12

Теоретическая часть:

  1. Что такое партиционирование таблиц в PostgreSQL? Какие преимущества оно дает?
    Ответ: Разделение таблицы на физические части по значению столбца. Преимущества: ускорение запросов, упрощение управления большими таблицами.

  2. Опишите процесс кросс-валидации в машинном обучении.
    Ответ: Метод оценки модели путем разделения данных на 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

Теоретическая часть:

  1. Что такое транзакции в базах данных? Назовите их свойства (ACID).
    Ответ: ACID: Atomicity (атомарность), Consistency (согласованность), Isolation (изолированность), Durability (долговечность).

  2. Как работает алгоритм Apriori для поиска ассоциативных правил?
    Ответ: Находит частые наборы элементов, используя принцип "если набор частый, то все его подмножества тоже частые".

Практическая часть:
Задание: Напишите SQL-запрос для создания транзакции, которая обновляет баланс двух счетов.
Ответ:

BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;

Билет 14

Теоретическая часть:

  1. Что такое индексы покрытия (Covering Index) в SQL?
    Ответ: Индекс, который содержит все поля, необходимые для выполнения запроса, что позволяет избежать чтения самой таблицы.

  2. Объясните принцип работы метода главных компонент (PCA).
    Ответ: Линейное преобразование, которое проецирует данные в пространство меньшей размерности, сохраняя максимальную дисперсию.

Практическая часть:
Задание: Примените PCA к датасету с 10 признаками, сократив размерность до 3.
Ответ:

from sklearn.decomposition import PCA

pca = PCA(n_components=3)
X_pca = pca.fit_transform(X)

Билет 15

Теоретическая часть:

  1. Что такое планировщик запросов (Query Planner) в СУБД?
    Ответ: Компонент СУБД, который выбирает оптимальный план выполнения запроса на основе статистики и стоимости операций.

  2. Опишите архитектуру 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% за квартал) при сохранении объема продаж. Доступные данные:

  • Геолокация клиентов и складов

  • История заказов (время доставки, стоимость, способ доставки)

  • Затраты на логистику по регионам

  • Отзывы клиентов о сроках доставки

Скрытые проблемы:

  1. Неоптимальное расположение складов

    • 70% заказов доставляются из удаленных складов

    • Нет четкой привязки складов к кластерам спроса

  2. Ошибки в маршрутизации

    • Курьеры объезжают 3-4 точки вместо оптимального пути

    • Нет учета пробок в реальном времени

  3. Дисбаланс нагрузки

    • 40% заказов обрабатываются 2 из 10 складов

Задачи для аналитика:

  1. Провести геоаналитику:

    • Кластеризация клиентов по плотности заказов (K-means)

    • Расчет экономии при открытии складов в новых локациях

  2. Оптимизировать маршруты:

    • Построение графа дорог (OSMnx + NetworkX)

    • Интеграция с API карт (Google Maps/Yandex)

  3. Автоматизировать распределение заказов:

    Псевдокод алгоритма распределения
    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 года

  • Демография клиентов

  • История обращений в поддержку

  • Данные о подключенных услугах

Скрытые проблемы:

  1. Неочевидные признаки оттока

    • Нет прямой корреляции между частотой транзакций и оттоком

    • Скрытые паттерны в последовательностях операций

  2. Дисбаланс данных

    • Только 5% клиентов помечены как ушедшие

  3. Проблемы в данных

    • 30% записей о взаимодействиях с поддержкой не структурированы

Задачи для аналитика:

  1. Feature Engineering:

    • Извлечение временных паттернов (например, снижение активности за 30 дней до ухода)

    • Обработка текста обращений в поддержку (NLP)

  2. Построение модели:

    from sklearn.ensemble import GradientBoostingClassifier
    model = GradientBoostingClassifier(
        n_estimators=200,
        max_depth=5,
        class_weight='balanced'
    )
  3. Интерпретация результатов:

    • SHAP-анализ для определения ключевых факторов оттока

    • Сегментация клиентов по риску ухода

Ролевая игра 1: "Кризис данных в FinTech-стартапе"

Цель: Научиться оперативно выявлять и устранять проблемы в data-пайплайнах, работать в условиях неопределенности.

Формат:

  • Тип: Командная (4-5 человек)

  • Время: 90 минут

  • Инструменты: Jira-доска, Python/SQL-песочница, Zoom/мит-рум

Сеттинг:
Команда дата-инженеров в растущем стартапе обнаружила, что:

  • Ежедневный отчет для ЦБ содержит ошибки

  • 30% транзакций не учитываются в DWH

  • Клиенты жалуются на некорректные балансы

Роли:

  1. Главный дата-инженер — координация работы, принятие решений

  2. Аналитик данных — поиск корня проблемы в данных

  3. ML-инженер — проверка влияния на скоринговые модели

  4. Продуктовый менеджер — коммуникация с бизнесом

  5. DevOps-инженер — диагностика инфраструктуры

Этапы:

  1. Триггер (15 мин): Получение алерта о расхождениях в отчете

  2. Диагностика (30 мин):

    • Анализ логов Airflow

    • Сравнение сырых данных и витрин

  3. Решение (30 мин):

    • Горячий фикс пайплайна

    • Перерасчет данных за 48 часов

  4. Постмортем (15 мин): Презентация выводов CEO

Обучающие эффекты:

  • Понимание взаимосвязей в ETL-процессах

  • Навыки работы с инцидентами

  • Управление приоритетами под давлением

Проблемы:

  • Конфликт между срочным фиксом и долгосрочным решением

  • Нехватка логов для диагностики


Ролевая игра 2: "Битва дашбордов"

Цель: Научиться визуализировать данные для разных стейкхолдеров.

Формат:

  • Тип: Соревнование (3 команды по 2-3 человека)

  • Время: 60 минут

  • Инструменты: Tableau/Power BI, фиктивный датасет

Сеттинг:
Команды получают один набор данных о продажах, но разные роли:

  1. Для CFO — акцент на финансовых метриках

  2. Для маркетинга — воронки и ROI кампаний

  3. Для операционного директора — геораспределение заказов

Критерии оценки:

  • Ясность ключевого сообщения

  • Интерактивность элементов

  • Оптимальность выбора графиков

Этапы:

  1. Анализ требований (10 мин)

  2. Прототипирование (30 мин)

  3. Презентация (15 мин)

  4. Голосование за лучший дашборд

Обучающие эффекты:

  • Понимание потребностей аудитории

  • Навыки сторителлинга с данными


Ролевая игра 3: "Data Science Спринт"

Цель: Проработать полный цикл ML-проекта за ограниченное время.

Формат:

  • Тип: Хакатон (4-6 человек)

  • Время: 120 минут

  • Инструменты: Python (Jupyter Notebook), Kaggle-like датасет

Сеттинг:
Команда должна за 2 часа:

  1. Построить модель прогнозирования оттока клиентов

  2. Достичь AUC > 0.85

  3. Подготовить презентацию для продукт-менеджера

Роли:

  1. Data Scientist — построение модели

  2. Data Engineer — подготовка данных

  3. Аналитик — интерпретация результатов

  4. Презентер — защита решения

Этапы:

  1. EDA (30 мин)

  2. Feature Engineering (40 мин)

  3. Обучение модели (40 мин)

  4. Подготовка выводов (20 мин)

Обучающие эффекты:

  • Приоритизация задач в условиях дедлайна

  • Баланс между качеством модели и объяснимостью


Ролевая игра 4: "Переговоры с заказчиком"

Цель: Развить навыки управления ожиданиями и презентации сложных концепций.

Формат:

  • Тип: Деловая игра (3 участника + модератор)

  • Время: 45 минут

  • Инструменты: Фейковые требования, чат для переписки

Сеттинг:
Ситуация: Клиент требует:

  • Внедрить ML-модель за 2 недели

  • Точность 99%

  • Бюджет в 3 раза ниже рыночного

Роли:

  1. Аналитик — объясняет технические ограничения

  2. Продакт — ищет компромиссы

  3. Клиент (играет модератор) — агрессивно давит

Этапы:

  1. Подготовка аргументов (10 мин)

  2. Основные переговоры (25 мин)

  3. Подписание "контракта" (10 мин)

Обучающие эффекты:

  • Перевод технических терминов на бизнес-язык

  • Навыки работы с возражениями

Совет: Для реализма добавить "сюрпризы" — например, внезапное требование GDPR-комплаенс в середине игры.

1. Карта "Путь профессионального аналитика данных"

Центральная ветвь: Профессиональный аналитик данных
Основные направления:

  1. Технические навыки

    • Продвинутый SQL (оптимизация запросов, оконные функции)

    • Python для анализа (Pandas, NumPy, Polars)

    • ETL-инструменты (Airflow, dbt, Spark)

    • BI-системы (Tableau, Power BI, Metabase)

  2. Методологии

    • Проектирование DWH (звезда/снежинка)

    • Метрики продукта и бизнеса (AARRR, North Star Metric)

    • Построение дашбордов (правило 5 секунд)

  3. Soft Skills

    • Коммуникация с заказчиками (перевод требований в задачи)

    • Управление проектами (Agile, Scrum)

    • Презентация результатов (сторителлинг)

  4. Специализации

    • Финансовая аналитика

    • Маркетинговая аналитика

    • HR-аналитика


2. Карта "Инструментарий аналитика"

Центральная ветвь: Инструменты
Категории:

  1. Хранение данных

    • Реляционные БД (PostgreSQL, MySQL)

    • NoSQL (MongoDB, Redis)

    • Колоночные БД (ClickHouse, BigQuery)

  2. Обработка данных

    • Пакетная (Apache Spark)

    • Потоковая (Kafka, Flink)

  3. Визуализация

    • Интерактивные отчеты (Tableau)

    • Геоаналитика (Kepler.gl)

    • Автоматизация (Superset)

  4. ML в продакшене

    • Развертывание (MLflow)

    • Мониторинг (Evidently)


3. Карта "Этапы работы с проектом"

Центральная ветвь: Жизненный цикл проекта
Этапы:

  1. Постановка задачи

    • Сбор требований

    • Формулировка гипотез

  2. Исследование данных

    • Поиск источников

    • Валидация качества

  3. Проектирование решения

    • Архитектура хранения

    • Пайплайны обработки

  4. Реализация

    • Написание кода/запросов

    • Тестирование

  5. Внедрение

    • Деплой решения

    • Обучение пользователей

  6. Поддержка

    • Мониторинг

    • Оптимизация


4. Карта "Ошибки и решения"

Центральная ветвь: Типичные проблемы
Примеры:

  1. Проблема: Отчеты долго генерируются

    • Решение: Оптимизация запросов, материализованные представления

  2. Проблема: Модель дает плохие предсказания

    • Решение: Проверка дрейфа данных, переобучение

  3. Проблема: Заказчик не понимает отчет

    • Решение: Упрощение визуализации, глоссарий терминов


5. Карта "Развитие в профессии"

Центральная ветвь: Карьерный рост
Направления:

  1. Эксперт

    • Углубление в ML

    • Архитектура данных

  2. Руководитель

    • Управление командой

    • Стратегия данных

  3. Консультант

    • Аудит процессов

    • Оптимизация инфраструктуры

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, построение портфолио и подготовка к собеседованиям.

Заявка ученика, студента, слушателя
Заявка преподавателя, репетитора админу сети.
14:10
31
Посещая этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.