Дорожная карта для подготовки специалиста – исследователя данных

Дорожная карта исследователя данных предназначена для упорядочивания подготовки (или самоподготовки) таких специалистов. Она позволяет выделить основные разделы учебных курсов по data science, назначить приоритеты, определить порядок изучения и освоения, распланировать время. Ниже кратко описывается содержание маршрутов этой дорожной карты, Названия тем даны на русском языке с их английскими эквивалентами. Раздел “Основы” (Fundamentals) расписан более подробно, что соответствует направленности и контенту этого сайта.

Дорожная карта

Вот она:

Дорожная карта для подготовки специалиста-исследователя данных

Похожа на схему метро, не так ли?

Дорожная карта исследователя данных состоит из разделов, каждый из которых включает ключевые темы. Для раздела “Основы” я привожу краткое содержание тем, для остальных разделов только названия тем.

1. Основы (Fundamentals)
1. Матричная алгебра

В математике матрица – это прямоугольный массив чисел, символов или выражений, расположенных в строках и столбцах. Матрица может быть преобразована в свою подматрицу путем удаления любого набора строк и/или столбцов.

matrix-image

Существует ряд основных операций, которые могут быть применены к матрицам:

2. Хэш-функция, бинарное дерево, нотация O

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

hash-image

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

binary-tree-image

Нотация O используется для классификации алгоритмов в соответствии с тем, как возрастают требования к времени их выполнения или объему данных по мере увеличения размера входных данных. В аналитической теории чисел нотация O часто используется для выражения оценки разницы между арифметической функцией и более понятным приближением.

3. Реляционная алгебра и базы данных

Реляционная алгебра – это семейство алгебр с хорошо обоснованной семантикой, используемых для моделирования данных, хранящихся в реляционных базах данных, и формулировки запросов к ним.

Основное приложение реляционной алгебры заключается в создании теоретической основы для реляционных баз данных, в частности языков запросов к ним, главным из которых является SQL.

Базовым понятием реляционной алгебры является естественное соединение. В языке SQL, естественное соединение между двумя таблицами будет выполнено, если:

  • По крайней мере один столбец в обеих таблицах имеет одинаковое имя.
  • Эти два столбца имеют одинаковый тип данных:
    • CHAR (символ)
    • INT (целое число)
    • FLOAT (числовые данные с плавающей запятой)
    • VARCHAR (длинная цепочка символов)

SQL-запрос для естественного соединения (mySQL):

SELECT <COLUMNS>FROM <TABLE_1>NATURAL JOIN <TABLE_2>
SELECT <COLUMNS>FROM <TABLE_1>, <TABLE_2>WHERE TABLE_1.ID = TABLE_2.ID
4. Операции соединения Inner, Outer, Cross, theta-Join

Inner join. В SQL фраза INNER JOIN выбирает записи, которые имеют совпадающие значения в обеих таблицах:

SELECT column_name(s)  FROM table1  INNER JOIN table2 ON table1.column_name = table2.column_name;
Операция inner join

Outer join. В SQL фраза FULL OUTER JOIN возвращает все записи, если есть совпадение либо в левой (table1), либо в правой (table2) записях таблицы:

SELECT column_name(s)  FROM table1  FULL OUTER JOIN table2 ON table1.column_name = table2.column_name; 
Операция outer join

Left join. В SQL фраза LEFT JOIN возвращает все записи из левой таблицы (table1) и совпадающие записи из правой таблицы (table2). Результат равен нулю с правой стороны, если совпадения нет:

SELECT column_name(s)  FROM table1  LEFT JOIN table2 ON table1.column_name = table2.column_name;
Операция  left join

Right join. В SQL фраза RIGHT JOIN возвращает все записи из правой таблицы (table2) и совпадающие записи из левой таблицы (table1). Результат равен нулю с левой стороны, если совпадения нет:

SELECT column_name(s)  FROM table1  RIGHT JOIN table2 ON table1.column_name = table2.column_name;
Операция left join
5. Теорема CAP

Теорема CAP – утверждение о том, что в распределённых системах нельзя одновременно добиться трёх свойств:

  • Consistency — на всех не отказавших узлах одинаковые (с точки зрения пользователя) данные.
  • Availability — запросы ко всем не отказавшим узлам возвращают ответ.
  • Partition tolerance — даже если связь в системе стала нестабильной (вплоть до разделения системы на куски), но узлы работают, то система в целом продолжает работать.

Другими словами, теорема CAP утверждает, что в распределенных системах приходится выбирать между согласованностью и доступностью.

6. Tabular data

Табличные данные отличаются от данных, содержащихся в реляционных базах данных SQL.

В табличных данных все упорядочено по столбцам и строкам. Каждая строка содержит одинаковый номер столбца (за исключением пропущенного значения, которое может быть заменено на “Нет”). Первая строка табличных данных в большинстве случаев является заголовком, описывающим содержимое каждого столбца.

Наиболее часто используемый формат табличных данных в data science – CSV. Каждый столбец окружен символом (таблица, запятая, …), отделяющим этот столбец от двух соседних.

7. Энтропия

Энтропия – это мера неопределенности. Высокая энтропия означает, что данные имеют высокую дисперсию и, следовательно, содержат много информации и/или шума.

Например, функция, где f (x) = 4 для всех x, не имеет энтропии и легко предсказуема, содержит мало информации, не содержит шума и может быть представлена в сжатом виде. Аналогично, f (x) = ~ 4 имеет некоторую энтропию, а f (x) = <случайное число> имеет очень высокую энтропию из-за шума.

8. Фреймы данных и ряды

Фрейм данных используется для хранения таблиц данных. Это список векторов одинаковой длины.

Ряд – это последовательность упорядоченных точек данных.

9. Сегментирование

Сегментирование – это горизонтальное (по строкам) разделение базы данных, в отличие от вертикального (по столбцам) разделения, которое называется Нормализацией.

Зачем использовать сегментирование?

Системы баз данных с большими наборами данных или приложения с высокой пропускной способностью могут создавать проблемы с пропускной способностью одного сервера. Существует два способа решения проблемы роста: вертикальное и горизонтальное масштабирование.

Вертикальное масштабирование. Предполагает увеличение пропускной способности одного сервера. Но из-за технологических и экономических ограничений одной машины может быть недостаточно для данной рабочей нагрузки.

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

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

10. OLAP

Оперативная аналитическая обработка, или OLAP (OnLine Analytical Processing), – это подход к быстрому выполнению многомерных аналитических запросов (MDA) в вычислительной технике.

OLAP является частью более широкой категории бизнес-аналитики, которая также включает в себя реляционные базы данных, написание отчетов и интеллектуальный анализ данных. Типичные области применения OLAP включают бизнес-отчетность для целей продаж, маркетинга, управленческую отчетность, управление бизнес-процессами (BPM), бюджетирование и прогнозирование, финансовую отчетность и аналогичные области, а также новые приложения, такие как сельское хозяйство.

Термин OLAP был создан по аналогии с традиционным термином баз данных: ОnLine Transaction Processing (OLTP).

11. Многомерная модель данных

12. ETL
  • Извлечение (Extract)
    • извлечение данных из нескольких разнородных систем-источников;
    • проверка данных для подтверждения того, что извлеченные данные имеют правильные/ожидаемые значения в данной предметной области;
  • Преобразование (Transform)
    • извлеченные данные передаются в конвейер, который применяет множество функций для обработки данных;
    • эти функции предназначены для преобразования данных в формат, приемлемый для конечной системы;
    • включает в себя очистку данных для удаления шума, аномалий и лишних данных;
  • Загрузка (Load)
    • загружает преобразованные данные в конечный целевой объект.
13. Отчетность, BI и аналитика

14. JSON и XML

JavaScript Object Notation (JSON) – это не зависящий от языка формат данных. Пример, описывающий человека:

{
  "firstName": "John",
  "lastName": "Smith",
  "isAlive": true,
  "age": 25,
  "address": {
    "streetAddress": "21 2nd Street",
    "city": "New York",
    "state": "NY",
    "postalCode": "10021-3100"
  },
  "phoneNumbers": [
    {
      "type": "home",
      "number": "212 555-1234"
    },
    {
      "type": "office",
      "number": "646 555-4567"
    },
    {
      "type": "mobile",
      "number": "123 456-7890"
    }
  ],
  "children": [],
  "spouse": null
}

Extensible Markup Language (XML) – это язык разметки, который определяет набор правил для кодирования документов в формате, удобочитаемом как человеком, так и машиной.

<CATALOG>
<PLANT>
<COMMON>Bloodroot</COMMON>
<BOTANICAL>Sanguinaria canadensis</BOTANICAL>
<ZONE>4</ZONE>
<LIGHT>Mostly Shady</LIGHT>
<PRICE>$2.44</PRICE>
<AVAILABILITY>031599</AVAILABILITY>
</PLANT>
<PLANT>
<COMMON>Columbine</COMMON>
<BOTANICAL>Aquilegia canadensis</BOTANICAL>
<ZONE>3</ZONE>
<LIGHT>Mostly Shady</LIGHT>
<PRICE>$9.37</PRICE>
<AVAILABILITY>030699</AVAILABILITY>
</PLANT>
<PLANT>
<COMMON>Marsh Marigold</COMMON>
<BOTANICAL>Caltha palustris</BOTANICAL>
<ZONE>4</ZONE>
<LIGHT>Mostly Sunny</LIGHT>
<PRICE>$6.81</PRICE>
<AVAILABILITY>051799</AVAILABILITY>
</PLANT>
</CATALOG>
15. Базы данных NoSQL

Базы данных NoSQL отличаются от реляционных баз данных (NoSQL расшифровывается как Not Only SQL). Данные не структурированы, и между таблицами нет понятия ключей.

В базе данных NoSQL можно хранить любые данные (JSON, CSV, …), не задумываясь о сложной схеме взаимодействия.

Наиболее популярные NoSQL СУБД: Cassandra, MongoDB, Redis, Oracle NoSQL.

16. Регулярные выражения

Регулярные выражения (regex) широко используются в информатике. Их можно использовать в широком диапазоне возможностей:

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

http://regexr.com – хороший веб-сайт для экспериментов с регулярными выражениями.

Для использования регулярных выражений в Python достаточно указать:

import re
17. Обзор поставщиков

18. Настройка Env

2. Статистика (Statistics)
  1. Выбор набора данных (Pick a dataset)
  2. Описательная статистика (Descriptive statistics)
  3. Предварительный анализ данных (Exploratory data analysis)
  4. Гистограммы (Histograms)
  5. Процентили и выбросы (Percentiles & outliers)
  6. Теория вероятностей (Probability theory)
  7. Теорема Байеса (Bayes theorem)
  8. Кумулятивно-дисперсионный анализ (Cumul Dist Fn: CDF)
  9. Непрерывные распределения (Continuous distributions)
  10. Асимметрия (Skewness)
  11. Дисперсионный анализ (ANOVA)
  12. Вероятностный анализ (Prob Den Fn: PDF)
  13. Метод Монте-Карло (Monte Carlo method)
  14. Проверка гипотез (Hypothesis Testing)
  15. P-значение (p-Value)
  16. Критерий хи-квадрат (Chi2 test)
  17. Оценка (Estimation)
  18. Доверительный интервал (Confid Int: CI)
  19. Метод максимального правдоподобия (Maximum Likelihood Estimation: MLE)
  20. Ядерная оценка плотности (Kernel Density estimate)
  21. Регрессия (Regression)
  22. Ковариация (Covariance)
  23. Корреляция (Correlation)
  24. Причинность (Causation)
  25. Метод наименьших квадратов (Least2-fit)
  26. Евклидово расстояние (Euclidean Distance)
3. Программирование (Programming)
  1. Основы Python (Python Basics)
  2. Работа в Excel (Working in Excel)
  3. Настройка R/R studio (Setup R/R studio)
  4. Основы R (R basics)
  5. Выражения (Expressions)
  6. Переменные (Variables)
  7. IBM SPSS (IBM SPSS)
  8. RapidMiner
  9. Векторы (Vectors)
  10. Матрицы (Matrices)
  11. Массивы (Arrays)
  12. Факторы (Factors)
  13. Списки (Lists)
  14. Фреймы данных (Data frames)
  15. Чтение CSV-данных (Reading CSV data)
  16. Чтение необработанных данных (Reading raw data)
  17. Подстановка данных (Subsetting data)
  18. Манипулирование фреймами данных (Manipulate data frames)
  19. Функции (Functions)
  20. Факторный анализ (Factor analysis)
  21. Установка (PKGS Install PKGS)
4. Машинное обучение (Machine learning)
  1. Что такое ML? (What is ML?)
  2. Числовые переменные (Numerical var)
  3. Категориальные переменные (Categorical var)
  4. Контролируемое обучение (Supervised learning)
  5. Неконтролируемое обучение (Unsupervised learning)
  6. Концепции, входные данные и атрибуты (Concepts, inputs and attributes)
  7. Данные для обучения и тестирования (Training and test data)
  8. Классификаторы (Classifiers)
  9. Прогнозирование (Prediction)
  10. Повышение эффективности (Lift)
  11. Переобучение (Overfitting)
  12. Смещение и дисперсия (Bias & Variance)
  13. Дерево и классификация (Tree and Classification)
  14. Скорость классификации (Classification rate)
  15. Дерево решений (Decision tree)
  16. Повышение эффективности (Boosting)
  17. Наивные байесовские классификаторы (Naives Bayes classifiers)
  18. Алгоритм KNN (K-Nearest neighbor)
  19. Логистическая регрессия (Logistic regression)
  20. Ранжирование (Ranking)
  21. Линейная регрессия (Linear regression)
  22. Перцептрон (Perceptron)
  23. Иерархическая кластеризация (Hierarchical clustering)
  24. Кластеризация с использованием K-средних (K-means clustering)
  25. Нейронные сети (Neural networks)
  26. Анализ настроений (Sentiment analysis)
  27. Коллаборативная фильтрация (Collaborative filtering)
  28. Создание тегов (Tagging)
  29. Использование метода опорных векторов (Support Vector Machine)
  30. Обучение с подкреплением (Reinforcement Learning)
5. Интеллектуальный анализ текстов (Text Mining)

Кроме раздела “Основы” дорожная карта исследователя данных содержит еще один ключевой раздел: Интеллектуальный анализ текстов (Text Mining).

  1. Корпус (Corpus)
  2. Распознавание именованных объектов (Named Entity Recognition)
  3. Анализ текста (Text Analysis)
  4. Архитектура управления неструктурированной информацией (UIMA)
  5. Матрица термов документов (Term Document matrix)
  6. Частота и вес термина (Term frequency and Weight)
  7. Метод опорных векторов (Support Vector Machines: SVM)
  8. Ассоциативные правила (Association rules)
  9. Анализ рынка (Market based analysis)
  10. Извлечение признаков (Feature extraction)
  11. Использование Mahout (Using Mahout)
  12. Использование Weka (Using Weka)
  13. Использование NLTK (Using NLTK)
  14. Классификация текста (Classify text)
  15. Сопоставление словарного запаса (Vocabulary mapping)
6. Визуализация данных (Data Visualization)
  1. Исследование данных в R (Data exploration in R)
  2. Одномерный, двухмерный и многомерный анализ (Uni, bi and multivariate viz)
  3. ggplot2
  4. Гистограмма и круговая диаграмма: Uni (Histogram and pie: Uni)
  5. Дерево и карта деревьев (Tree & tree map)
  6. Точечная диаграмма (Scatter plot)
  7. Линейная диаграмма (Line chart)
  8. Пространственные диаграммы (Spatial charts)
  9. График обследования (Survey plot)
  10. Временная шкала (Timeline)
  11. Дерево решений (Decision tree)
  12. D3.js
  13. InfoVis
  14. IBM ManyEyes
  15. Tableau
  16. Диаграмма Венна (Venn diagram)
  17. Диаграмма с областями (Area chart)
  18. Радарная диаграмма (Radar chart)
  19. Облако слов (Word cloud)
7. Большие данные (Big Data)
  1. Основы Map Reduce (Map Reduce fundamentals)
  2. Экосистема Hadoop (Hadoop Ecosystem)
  3. HDFS
  4. Принципы репликации данных (Data replications Principles)
  5. Настройка Hadoop (Setup Hadoop)
  6. Имена и узлы данных (Name & data nodes)
  7. Отслеживание заданий и задач (Job & task tracker)
  8. Программирование M/R/SAS (M/R/SAS programming)
  9. Sqop: загрузка данных в HDF (Sqop: Loading data in HDFS)
  10. Flume, Scribe
  11. SQL с Pig (SQL with Pig)
  12. DWH c Hive (DWH with Hive)
  13. Scribe, Chukwa для веб-блога (Scribe, Chukwa for Weblog)
  14. Использование Mahout (Using Mahout)
  15. Zookeeper Avro
  16. Лямбда-архитектура (Lambda Architecture)
  17. Storm: Hadoop в реальном времени (Storm: Hadoop Realtime)
  18. Rhadoop, RHIPE
  19. RMR
  20. Базы данных NoSQL: MongoDB, Neo4j (NoSQL Databases: MongoDB, Neo4j)
  21. Распределенные базы данных и системы: Cassandra (Distributed Databases and Systems: Cassandra)
8. Получение данных (Data Ingestion)
  1. Обзор форматов данных (Summary of data formats)
  2. Обнаружение данных (Data discovery)
  3. Источники и получение данных (Data sources & Acquisition)
  4. Интеграция данных (Data integration)
  5. Объединение данных (Data fusion)
  6. Преобразование и обогащение (Transformation & enrichment)
  7. Данных опроса (Data survey)
  8. Google OpenRefine
  9. Каковы объемы данных? (How much data?)
  10. Использование ETL (Using ETL)
9. Обработка данных (Data Munging)
  1. Уменьшение размерности и сокращение чисел (Dim. and num. reduction)
  2. Нормализация (Normalization)
  3. Очистка данных (Data scrubbing)
  4. Обработка пропущенных значений (Handling missing values)
  5. Объективные оценки (Unbiased estimators)
  6. Выделение редких значений (Binning Sparse Values)
  7. Извлечение признаков (Feature extraction)
  8. Устранение шума (Denoising)
  9. Отбор примеров (Sampling)
  10. Стратифицированная выборка (Stratified sampling)
  11. Метод главных компонент (PCA)
10. Инструменты (Toolbox)
  1. MS Excel with Analysis toolpack
  2. Java, Python
  3. R, Rstudio, Rattle
  4. Weka, Knime, RapidMiner
  5. Hadoop
  6. Spark, Storm
  7. Flume, Scibe, Chukwa
  8. Nutch, Talend, Scraperwiki
  9. Webscraper, Flume, Sqoop
  10. tm, RWeka, NLTK
  11. RHIPE
  12. D3.js, ggplot2, Shiny
  13. IBM Languageware
  14. Cassandra, MongoDB
  15. Microsoft Azure, AWS, Google Cloud
  16. Microsoft Cognitive API
  17. Tensorflow

Дорожная карта исследователя данных сопровождается обширными дополнительными ресурсами:

Другие посты по этой тематике см. в моем блоге.


Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *