Опубликовано

Новинка: “Обработка данных на Python. Data Wrangling и Data Quality”

Обработка данных на Python. Data Wrangling и Data Quality

Книга посвящена первичной обработке данных (Data Wrangling) на Python  и  оценке их качества (Data Quality). Материал содержит основополагающие концепции, экспертные советы и  ресурсы, необходимые для первичной обработки, извлечения, оценки и анализа данных. Все темы раскрыты на простых и наглядных примерах из практики. Даны необходимые и достаточные сведения о языке программирования  Python 3.8+ для чтения, записи и преобразования данных из различных источников, а также  для обработки данных в больших масштабах. Приведены лучшие практики  документирования и структурирования кода. Описан сбор данных из файлов, веб-страниц и API. Рассмотрены приемы проведения базового статистического анализа наборов данных, а также наглядные и убедительные способы визуализации и представления  данных. Изложение рассчитано как на новичков по обработке данных, так и на профессионалов. Электронный архив на сайте издательства содержит цветные иллюстрации к книге.

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

Начните работу с чтения, очистки и анализа данных

Мир вокруг нас полон данных, которые содержат уникальные и ценные сведения, но полезную информацию из этих «сырых» данных нужно уметь извлечь!

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

В этой книге ярко проявляется опыт Сьюзан Макгрегор в преподавании журналистики данных (data journalism) студентам всех уровней. Она приводит примеры из реальной жизни и объясняет, как подходить к поиску, проверке и анализу данных доступным способом.
 Джоанна С. Као , технический руководитель журналистики данных в газете Файнэншл Таймс

  • Применяйте Python 3.8+ для чтения, записи и преобразования данных из различных источников, а также для обработки данных в больших масштабах.
  • Организуйте, документируйте и структурируйте свой код, используя лучшие практики
  • Собирайте данные из файлов, веб-страниц и API
  • Проводите базовый статистический анализ, чтобы осмыслить наборы данных
  • Визуализируйте и представляйте данные наглядным и убедительным образом

Книгу “Обработка данных на Python. Data Wrangling и Data Quality” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Введение. 11

Для кого предназначена эта книга?. 12

Поедете сами или возьмете такси?. 12

Кому не следует читать эту книгу?. 13

Что ожидать от этой книги. 13

Типографские соглашения. 14

Использование примеров кода. 15

Цветные иллюстрации. 16

Возможности онлайнового обучения от компании O’Reilly. 16

Как связаться с нами. 16

Благодарности. 17

ГЛАВА 1. Введение в первичную обработку (выпас) и качество данных. 19

Что такое выпас данных?. 20

Что такое качество данных?. 22

Целостность данных. 23

Соответствие данных. 23

Почему мы выбрали Python?. 25

Универсальность. 25

Доступность. 25

Удобочитаемость. 26

Сообщество. 26

Альтернативы языку Python. 27

Написание и исполнение программ на языке Python. 27

Работа с кодом Python на локальном устройстве. 30

Введение в работу с командной строкой. 30

Установка языка Python, среды Jupyter Notebook и редактора кода. 33

Работа с кодом Python в режиме онлайн. 39

Hello World! 39

Создание файла автономного сценария Python при помощи Atom.. 39

Создание блокнота кода Python в Jupyter Notebook. 41

Создание блокнота кода Python в Google Colab. 42

Создаем программу. 43

В файле автономного сценария. 43

В блокноте. 43

Исполняем программу. 43

В файле автономного сценария. 43

В блокноте. 44

Документирование, сохранение и управление версиями своего кода. 44

Документирование. 44

Сохранение. 46

Управление версиями. 46

Заключение. 56

ГЛАВА 2. Введение в Python. 57

“Части речи” языков программирования. 58

Существительные ≈ переменные. 59

Важно ли конкретное имя?. 61

Наилучшие практики для именования переменных. 62

Глаголы ≈ функциям. 62

Применение пользовательских функций. 67

Библиотеки: занимаем пользовательские функции у других программистов. 68

Структуры управления: циклы и условные операторы. 69

Циклы. 69

Условные операторы. 72

Понимание ошибок. 77

Синтаксические ошибки. 78

Ошибки времени исполнения. 79

Логические ошибки. 83

Отправляемся в путь с данными Citi Bike. 85

Начинаем с создания псевдокода. 86

Масштабирование. 92

Заключение. 93

ГЛАВА 3. Понимание качества данных. 95

Оценка соответствия данных. 97

Достоверность данных. 98

Надежность данных. 100

Репрезентативность данных. 101

Оценка целостности данных. 104

Необходимые, но недостаточные. 106

Важные. 108

Достижимость. 111

Улучшение качества данных. 114

Очистка данных. 115

Аугментация данных. 115

Заключение. 116

ГЛАВА 4. Работа с файловыми и канальными данными
на языке Python. 117

Структурированные и неструктурированные данные. 119

Работа со структурированными данными. 123

Файловые табличные форматы данных. 124

Выпас табличных данных посредством языка Python. 126

Выпас реальных данных: понимание безработицы. 133

XLSX, ODS и все остальные. 136

Данные фиксированной ширины. 143

Канальные данные — интерактивные обновления через Интернет. 147

Выпас канальных данных средствами языка Python. 150

Формат JSON: данные следующего поколения. 160

Работа с неструктурированными данными. 165

Текст на основе изображений: доступ к данным в формате PDF. 165

Выпас PDF-данных, используя Python. 166

Обращение к таблицам PDF посредством Tabula. 171

Заключение. 171

ГЛАВА 5. Доступ к интернет-данным.. 173

Доступ к веб-данным XML и JSON.. 175

Знакомство с API-интерфейсами. 178

Базовые API-интерфейсы на примере поисковой системы. 179

Специализированные API-интерфейсы: добавление простой
аутентификации. 181

Получение ключа для API-интерфейса FRED.. 181

Использование ключа API для запроса данных. 182

Чтение документации по API-интерфейсу. 183

Защита своего ключа API при использовании сценариев Python. 186

Создание файла учетных данных. 188

Использование учетных данных в отдельном сценарии. 189

Основы работы с файлом .gitignore. 190

Специализированные API-интерфейсы: работа с протоколом OAuth. 193

Получение учетной записи разработчика Twitter 194

Создание приложения и учетных данных Twitter 196

Кодирование ключа API и ключа секрета API 201

Запрос токена доступа и данных из API-интерфейса Twitter 202

Этические нормы при работе с API-интерфейсами. 206

Извлечение веб-данных: источник данных последней надежды. 207

Осторожно извлекаем данные с веб-сайта УГПТ. 210

Использование средств инспектирования браузера. 211

Решение Python для извлечения данных из веб-страницы:
библиотека Beautiful Soup. 214

Заключение. 218

ГЛАВА 6. Оценка качества данных. 219

Пандемия и программа PPP. 221

Оценка целостности данных. 222

Имеют ли данные известное происхождение?. 223

Актуальны ли данные?. 223

Полные ли данные?. 224

Хорошо ли данные аннотированы?. 236

Являются ли данные крупномасштабными?. 242

Непротиворечивы ли данные?. 244

Многомерны ли наши данные?. 248

Атомарны ли данные?. 250

Понятны ли данные?. 250

Размерностно структурированы ли данные?. 252

Оценка соответствия данных. 253

Достоверность данных. 253

Надежность данных. 257

Репрезентативность данных. 258

Заключение. 259

ГЛАВА 7. Очистка, преобразование и дополнение данных. 261

Выбор подмножества данных системы Citi Bike. 262

Простое разбиение. 263

Регулярные выражения: супермощное средство сопоставления строк. 265

Создание дат. 270

Удаление хлама из файлов данных. 272

Декодирование дат Excel 276

Создание настоящих данных CSV из данных фиксированной ширины. 279

Исправление разнообразности написаний. 282

Тернистый путь к “простым” решениям. 288

Опасные подводные камни. 290

Дополнение данных. 292

Заключение. 294

ГЛАВА 8. Структурирование и рефакторинг кода. 296

Обзор пользовательских функций. 296

Многократное использование кода. 297

Аккуратное и понятное документирование. 297

Недостаточная функциональность по умолчанию.. 298

Область видимости. 298

Определение параметров функции. 301

Доступные опции. 302

Предоставление аргументов. 303

Возвращаемые значения. 303

Работа со стеком. 305

Рефакторинг для получения удовольствия и прибыли. 306

Функция для определения рабочих дней. 306

Опрятные метаданные. 309

Использование pydoc для документирования сценариев и пользовательских функций. 317

О полезности аргументов командной строки. 321

Отличия во взаимодействии со сценариями в автономных файлах и блокнотах. 325

Заключение. 325

ГЛАВА 9. Введение в анализ данных. 327

Вся суть — в контексте. 328

Одинаковые, но не совсем. 329

Что типично? Оценка центральной тенденции. 329

Что это значит?. 330

Поразмыслим нестандартно: выявляем выбросы. 332

Визуализация для анализа данных. 332

Какова форма наших данных? Учимся понимать гистограммы. 336

Вопрос за $2 миллиона. 346

Пропорциональный ответ. 359

Заключение. 362

ГЛАВА 10. Представление данных. 364

Основы визуального красноречия. 365

Сформулируйте свои данные. 367

Диаграммы, графики и картограммы — вот это да! 368

Круговые диаграммы. 369

Линейчатые и столбчатые диаграммы. 372

Линейные диаграммы. 377

Диаграмма рассеяния. 380

Картограммы. 383

Элементы красноречивых визуальных эффектов. 386

“Мелкие” детали действительно имеют значение. 386

Доверяйте своим глазам (и экспертам) 387

Выбор масштаба. 388

Выбор цветовой гаммы. 389

Прежде всего делайте аннотации! 389

От базового к красивому: настройка визуализации с помощью seaborn и matplotlib. 390

Выйдите за рамки основ. 395

Заключение. 396

ГЛАВА 11. За пределами Python. 397

Дополнительные инструменты для анализа данных. 398

Программы для работы с электронными таблицами. 398

OpenRefine. 399

Дополнительные инструменты для обмена и представления данных. 402

Редактирование изображений в форматах JPG, PNG и GIF. 402

Программное обеспечение для редактирования SVG и других векторных форматов. 402

Размышления об этике. 404

Заключение. 405

Приложение А. Другие ресурсы по программированию на Python. 406

Официальная документация Python. 406

Установка ресурсов Python. 407

Где искать библиотеки. 407

Следите за остротой своих инструментов. 408

Где получить больше информации. 409

Приложение Б. Еще несколько слов о Git 410

Вы запускаете команду git push/pull и оказываетесь в странном текстовом редакторе. 410

Ваша команда git push/pull отклоняется. 412

Выполните команду git pull 412

Краткое руководство по Git 414

приложение В. Поиск данных. 416

Репозитории данных и API 416

Эксперты по предметным вопросам. 417

Запросы FOIA/L. 418

Кастомные методы сбора данных. 419

приложение Г. Ресурсы для визуализации и информационного дизайна. 421

Основополагающие книги по визуализации информации. 421

Краткое руководство, за которым вы потянетесь. 422

Источники вдохновения. 422

Об авторе. 423

Колофон. 424

Предметный указатель. 425

Susan McGregor

Сьюзен Макгрегор (Susan McGregor) — исследователь Института науки о данных Колумбийского университета. На протяжении более десяти лет она применяет свой успешный подход к преподаванию программирования и анализа данных для студентов нетехнических специальностей.

Опубликовано

Представляем: “Data Mesh. Новая парадигма работы с данными”

Data Mesh. Новая парадигма работы с данными

Впервые на русском языке книга об инновационной парадигме Data Mesh, продиктованной современным развитием, децентрализацией больших данных и подходами к их обработке.  Изложенная концепция развивает идеи предметно-ориентированного проектирования (DDD) и озера данных (Data Lake), раскрывает принципы федеративного цифрового управления данными.

Книга адресована (преимущественно руководящим) специалистам по работе с данными, а также разработчикам серверных и облачных продуктов.   

Наступает момент, когда существующие технологии управления данными нуждаются в коренном пересмотре. Налицо пролиферация источников данных, растущая важность человеческого фактора при их обработке. Кроме того, данные активно генерируются искусственным интеллектом и аналитическими инструментами, всё сильнее обособляясь по предметным областям.

В этой книге впервые сделан подробный практический разбор новой парадигмы Data Mesh. Объяснено, как она встраивается в имеющуюся информационную инфраструктуру, как добиться самодостаточной и частично самообслуживаемой конфигурации распределённых данных в компании. Книга продолжает идеи предметно-ориентированного проектирования (DDD) и озера данных (Data Lake), раскрывает принципы федеративного цифрового управления данными. Адресована (преимущественно руководящим) специалистам по работе с данными, а также разработчикам серверных и облачных продуктов, поможет уверенно ориентироваться в технологическом ландшафте и имеющихся практиках при управлении гетерогенными и динамично меняющимися источниками информации.

Отзывы читателей на Amazon.com

В этой книге разобрано, как сформировалась парадигма «data mesh» – современная альтернатива таким архитектурам, как хранилища и озёра данных. Автор рассказывает, как качественнее и эффективнее нарабатывать ценность имеющихся данных и монетизировать их – чего не всегда позволяют добиться более традиционные подходы.

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

Книгу “Data Mesh. Новая парадигма работы с данными” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Об авторе. 13

Отзывы о книге. 14

Предисловие. 16

Предисловие к русскому изданию.. 18

Введение. 20

Зачем я написала эту книгу и почему сейчас. 21

Для кого предназначена эта книга. 22

Как читать данную книгу. 23

Условные обозначения в книге. 24

Благодарности. 24

Пролог, или Представьте Data Mesh. 26

Data Mesh в действии. 27

Культура любознательности и жажды экспериментов. 28

Партнерские сервисы, данные и машинное обучение. 29

Невидимая платформа и политики. 35

Неограниченное масштабирование с автономными data-продуктами. 37

Положительный сетевой эффект. 37

Почему необходим переход на Data Mesh?. 38

Дальнейшее развитие. 40

Часть I. Что такое Data Mesh?. 41

ГЛАВА 1. Коротко о Data Mesh. 43

Результаты. 43

Переход. 44

Принципы. 46

Принцип доменного владения. 46

Принцип данных как продукта. 47

Принцип платформы данных самообслуживания. 48

Принцип федеративного цифрового регулирования данных. 48

Взаимодействие принципов. 49

Взгляд на модель Data Mesh. 50

Данные. 51

Операционные данные. 51

Аналитические данные. 52

Резюме. 53

ГЛАВА 2. Принцип доменного владения. 55

Краткое описание стратегии предметно-ориентированного проектирования. 57

Применение стратегии предметно-ориентированного проектирования к данным. 58

Архетипы данных домена. 61

Выровненные с источником данные домена. 62

Агрегированные данные домена. 64

Выровненные с потребителем данные домена. 64

Переход к доменному владению.. 65

Смещение владения данными “вверх по течению”. 65

Определение множества связных моделей. 66

Единый источник истины. 67

Размещение конвейера данных внутри домена. 67

Резюме. 68

ГЛАВА 3. Принцип данных как продукта. 70

Применение концепции продуктового мышления к данным. 72

Базовые атрибуты удобства использования data-продукта. 74

Переход к данным как к продукту. 83

Включение владения data-продуктом в домены. 83

Новый взгляд на используемую терминологию.. 84

Данные как продукт, а не просто актив. 84

“Доверяй, но проверяй” в культуре отношения к данным. 85

Объединение данных и вычислений в один логический элемент. 86

Резюме. 87

ГЛАВА 4. Принцип платформы данных самообслуживания. 88

Платформа Data Mesh: сходства и различия. 90

Обслуживание автономных доменно-ориентированных команд. 90

Управление автономными функционально совместимыми data-продуктами. 92

Платформа с операционными и аналитическими возможностями. 92

Акцент  на использование большинством специалистов широкого профиля. 93

Децентрализованные технологии. 95

Независимые от домена функции. 95

Платформенное мышление в Data Mesh. 96

Возможность автономных команд получать ценность из данных. 98

Обмен ценностью с автономными, но совместимыми data-продуктами. 100

Ускорение обмена ценностью путем снижения когнитивной нагрузки. 101

Масштабирование обмена данными. 102

Поддержка культуры встроенных инноваций. 104

Переход на платформу самообслуживания Data Mesh. 104

Разработайте API и протоколы вначале. 105

Подготовьтесь к попаданию технологии в широкий обиход. 105

Проведите ревизию и упростите сервисы платформы. 106

Разработайте высокоуровневые API для управления data-продуктами. 106

Создайте опыт, а не механизм. 107

Начните с простой основы и развивайте ее. 107

Резюме. 108

ГЛАВА 5. Принцип федеративного цифрового регулирования данных. 109

Системный подход к регулированию данных в Data Mesh. 112

Поддержка динамического равновесия между автономностью доменов
и глобальной совместимостью.. 113

Внедрение динамической топологии по умолчанию.. 117

Использование автоматизации и распределенной архитектуры. 117

Внедрение федерализации в модель регулирования данных. 118

Федеративная команда. 119

Отраслевые эксперты. 121

Политики. 124

Стимулы. 125

Цифровизация модели регулирования данных. 127

Стандарты, выраженные в коде. 127

Политики, выраженные в коде. 128

Автоматизация тестирования. 129

Автоматизация мониторинга. 129

Переход к федеративному цифровому регулированию.. 130

Переход ответственности к доменам. 130

Внедрение исполнения политик в каждый data-продукт. 130

Автоматизация через интервенцию.. 131

Моделирование данных. 131

Измерение сетевого эффекта. 132

Изменения вместо постоянства. 132

Резюме. 132

Часть II. Почему Data Mesh?. 147

ГЛАВА 6. Переломный момент. 137

Большие надежды, возлагаемые на использование данных. 138

Фундаментальное разделение данных. 140

Новые типы масштабирования. 142

Естественная необходимость. 143

Приближение к плато в извлечении выгоды. 144

Резюме. 145

ГЛАВА 7. После переломного момента. 147

Положительное отношение к изменениям в условиях сложноорганизованного бизнеса. 148

Выравнивание бизнеса, технологий и аналитических данных. 149

Устранение разрыва между операционными и аналитическими данными. 150

Локализация изменений данных в пределах предметных областей. 152

Уменьшение непреднамеренной сложности конвейеров данных. 152

Поддержание скорости работы в условиях расширения. 153

Устранение узких мест, возникающих при централизации и монолитности. 154

Уменьшение зависимости конвейеров данных. 154

Меньше координации в регулировании данных. 156

Внедрение автономности. 157

Повышение соотношения возврата ценности из данных к инвестициям. 158

Абстрагирование технической сложности при помощи платформы данных. 158

Повсеместное внедрение продуктового мышления. 159

Выход за пределы. 159

Резюме. 160

ГЛАВА 8. До переломного момента. 163

Эволюция архитектур аналитических данных. 163

Первое поколение: архитектура хранилища данных. 164

Второе поколение: архитектура озера данных. 165

Третье поколение: многомодульная облачная архитектура. 167

Характеристики архитектуры аналитических данных. 168

Монолитность. 169

Централизованное владение данными. 174

Ориентация на технологии. 175

Резюме. 179

Часть III. Как спроектировать архитектуру Data Mesh. 181

ГЛАВА 9. Логическая архитектура. 183

Доменно-ориентированные интерфейсы для обмена аналитическими данными. 186

Дизайн программного интерфейса. 188

Дизайн интерфейсов аналитических данных. 188

Междоменные зависимости аналитических данных. 189

Data-продукт как архитектурный квант. 190

Структурные компоненты data-продукта. 191

Взаимодействие для обмена данными data-продукта. 197

API для обеспечения поиска и мониторинга данных. 199

Многоплоскостная платформа данных. 199

Плоскость платформы. 200

Плоскость инфраструктуры данных. 201

Плоскость data-продукта. 202

Плоскость mesh. 202

Пример. 202

Внедрение цифровых политик. 203

Sidecar data-продукта. 205

Вычислительный контейнер data-продукта. 206

Порт контроля. 206

Резюме. 207

ГЛАВА 10. Многоплоскостная архитектура платформы данных. 211

Ориентированность на пользовательское восприятие при разработке платформы. 214

Путь разработчика data-продукта. 215

Начало разработки, исследование, начальная загрузка и определение
источника. 217

Сборка, тестирование, развертывание и запуск. 220

Поддержка, развитие и прекращение поддержки. 224

Пользовательское восприятие data-продукта. 227

Начало разработки, исследование, начальная загрузка и определение
источника. 229

Сборка, тестирование, развертывание, запуск. 230

Поддержка, развитие и прекращение поддержки. 231

Резюме. 231

Часть IV. Как спроектировать архитектуру data-продукта. 233

ГЛАВА 11. Проектирование data-продукта на основе возможностей. 235

Возможности data-продукта. 236

Характеристики архитектуры data-продукта. 240

Проектирование модели на основе простоты сложных адаптивных систем. 242

Эмерджентное поведение на основе простых локальных правил. 242

Отсутствие центральной оркестровки. 243

Резюме. 243

ГЛАВА 12. Проектирование возможностей потребления, преобразования и предоставления данных  245

Предоставление данных. 245

Потребности пользователей данных. 245

Свойства проектирования данных. 248

Модель предоставления данных. 261

Потребление данных. 263

Архетипы источников данных. 264

Расположение потребляемых данных. 268

Модель потребления данных. 269

Преобразование данных. 271

Программные и непрограммные преобразования данных. 272

Преобразование на основе потока данных. 273

Преобразования данных с использованием машинного обучения. 275

Преобразования данных с временнóй зависимостью.. 275

Проектирование преобразований данных. 275

Резюме. 277

ГЛАВА 13. Проектирование возможностей поиска, интерпретации
и компоновки данных. 278

Поиск, интерпретация, проверка и исследование. 278

Саморегистрация data-продукта для возможности поиска. 281

Поиск при помощи глобального URI 281

Семантические и синтаксические модели. 282

Гарантии данных. 283

Форма данных. 287

Документация. 288

Обнаружение, изучение и понимание data-продуктов. 288

Компоновка данных. 289

Свойства модели потребления данных. 291

Традиционные подходы к компонуемости данных. 292

Модель компонуемости данных. 296

Резюме. 299

ГЛАВА 14. Проектирование возможностей управления, регулирования
и мониторинга данных. 301

Управление жизненным циклом. 301

Модель управления жизненным циклом. 302

Компоненты манифеста data-продукта. 303

Регулирование данных. 304

Модель регулирования данных. 305

Стандартизация политик. 306

Объединение политик и данных. 308

Связывание политик. 309

Отслеживание, отладка и аудит. 309

Проектирование наблюдаемости. 310

Резюме. 314

Часть V. С чего начать. 315

ГЛАВА 15. Стратегия и реализация. 317

Следует ли сегодня переходить на Data Mesh?. 317

Data Mesh как элемент стратегии данных. 322

Фреймворк для реализации Data Mesh. 325

Бизнес-ориентированная реализация. 326

Сквозная итеративная реализация. 332

Эволюционная реализация. 333

Резюме. 349

ГЛАВА 16. Организация и культура. 350

Процесс изменения. 352

Культура. 354

Ценности. 355

Вознаграждение. 358

Внутренняя мотивация. 358

Внешняя мотивация. 359

Структура. 360

Принятие существующей организационной структуры. 360

Определение границ data-продукта. 369

Люди. 373

Роли. 373

Развитие профессиональных навыков. 376

Процесс. 378

Ключевые изменения в процессах. 379

Резюме. 381

Предметный указатель. 382

Дегани Жамак

Дегани Жамак – автор и идеолог парадигмы Data Mesh, технический директор компании Thoughtworks. Профессиональные интересы – распределённые системы и архитектура данных в компании. Выступает за технологическую децентрализацию на всех уровнях, в частности при работе с данными, приложениями и зонами ответственности.

Опубликовано

Новинка: “SQL для анализа данных”

SQL для анализа данных

Рассказывается о возможностях SQL применительно к анализу данных. Сравниваются различные типы баз данных, описаны методы подготовки данных для анализа. Рассказано о типах данных, структуре SQL-запросов, профилировнии, структурировании и очистке данных. Описаны методы анализа временных рядов, трендов, приведены примеры анализа данных с учетом сезонности. Отдельные главы посвящены когортному анализу, текстовому анализу, выявлению и обработке аномалий, анализу результатов экспериментов и А/В-тестирования. Описано создание сложных наборов данных, комбинирование методов анализа. Приведены практические примеры анализа воронки продаж и потребительской корзины.

Для аналитиков, исследователей и специалистов по обработке данных

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

• Узнайте о ключевых шагах по подготовке данных к анализу
• Выполняйте анализ временных рядов
• Используйте когортный анализ для изучения изменений групп с течением времени
• Научитесь применять мощные функции SQL для анализа текста
• Выявляйте отклонения и аномалии в данных
• Установите причинно-следственную связь с помощью анализа экспериментов и результатов А/Б-тестирования
• Применяйте SQL для оценки эффективности воронки продаж

Книгу “SQL для анализа данных” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Предисловие. 11

Условные обозначения. 12

Использование примеров кода. 13

Благодарности. 13

ГЛАВА 1. Анализ с помощью SQL.. 15

1.1. Что такое анализ данных. 15

1.2. Почему SQL. 18

Что такое SQL. 18

Преимущества SQL. 21

SQL против R или Python. 22

SQL как часть процесса анализа данных. 24

1.3. Типы баз данных. 26

Строчные базы данных. 27

Колоночные базы данных. 29

Другие типы хранилищ данных. 31

1.4. Заключение. 32

ГЛАВА 2. Подготовка данных для анализа. 33

2.1. Типы данных. 34

Типы в базах данных. 34

Структурированные и неструктурированные данные. 36

Количественные и качественные данные. 37

Первичные, вторичные и третичные данные. 38

Разреженные данные. 39

2.2. Структура SQL-запроса. 40

2.3. Профилирование: распределения. 43

Гистограммы и частоты.. 44

Биннинг. 46

n-тили. 49

2.4. Профилирование: качество данных. 52

Поиск дубликатов. 52

Исключение дубликатов с помощью GROUP BY и DISTINCT. 54

2.5. Подготовка: очистка данных. 56

Очистка данных с помощью CASE. 56

Преобразование типов. 59

Работа с null-значениями: функции coalesce, nullif, nvl 62

Отсутствующие данные. 65

2.6. Подготовка: структурирование данных. 69

Зависимость от конечной цели: для BI, визуализации, статистики
или машинного обучения. 70

Сворачивание с помощью оператора CASE. 71

Разворачивание с помощью оператора UNION.. 73

Операторы PIVOT и UNPIVOT. 75

2.7. Заключение. 77

ГЛАВА 3. Анализ временных рядов. 79

3.1. Работа с Date, Datetime и Time. 80

Преобразование часовых поясов. 80

Форматирование дат и временных меток. 83

Арифметические действия с датами. 87

Арифметические действия со временем.. 90

Объединение данных из разных источников. 91

3.2. Набор данных о розничных продажах. 92

3.3. Анализ трендов данных. 93

Простые тренды.. 94

Сравнение временных рядов. 96

Вычисление процента от целого. 105

Приведение к базовому периоду. 109

3.4. Скользящие временные окна. 114

Расчет скользящих временных окон. 116

Скользящие окна на разреженных данных. 122

Расчет накопительного итога. 125

3.5. Анализ с учетом сезонности. 127

Сравнение периодов: YoY и MoM.. 129

Сравнение периодов: этот же месяц в прошлом году. 132

Сравнение с несколькими предыдущими периодами. 137

3.6. Заключение. 140

ГЛАВА 4. Когортный анализ. 141

4.1. Составляющие когортного анализа. 141

4.2. Набор данных о законодателях. 144

4.3. Анализ удержания. 146

Общая кривая удержания. 148

Заполнение отсутствующих дат для большей точности. 152

Когорты, полученные из временного ряда. 158

Определение когорт по другой таблице. 164

Работа с разреженными когортами. 169

Когорты по датам, отличным от первой даты.. 174

4.4. Связанные когортные анализы.. 177

Выживаемость. 177

Возвращаемость или поведение при повторной покупке. 182

Накопительный итог. 188

4.5. Поперечный анализ через все когорты.. 192

4.6. Заключение. 201

ГЛАВА 5. Текстовый анализ. 203

5.1. Текстовый анализ и SQL. 203

Что такое текстовый анализ. 204

Как можно использовать SQL для текстового анализа. 204

Когда не стоит использовать SQL. 206

5.2. Набор данных о наблюдениях НЛО.. 206

5.3. Характеристики текста. 207

5.4. Разбор текста. 210

5.5. Преобразование текста. 216

5.6. Поиск в текстовых данных. 225

Подстановочные знаки: LIKE, ILIKE. 225

Точное соответствие: IN, NOT IN.. 231

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

5.7. Конкатенация и реорганизация. 251

Конкатенация строк. 251

Реорганизация текстовых полей. 255

5.8. Заключение. 259

ГЛАВА 6. Выявление аномалий. 261

6.1. Возможности SQL для обнаружения аномалий. 262

6.2. Набор данных о землетрясениях. 263

6.3. Поиск аномалий. 264

Сортировка для поиска аномалий. 265

Расчет процентилей и стандартных отклонений. 268

Поиск аномалий с помощью графиков. 276

6.4. Виды аномалий. 284

Аномальные значения. 284

Аномальное количество или частота. 288

Аномальное отсутствие данных. 293

6.5. Обработка аномалий. 295

Исследование аномалий. 295

Исключение аномальных записей. 296

Замена на альтернативные значения. 298

Изменение масштаба. 300

6.6. Заключение. 302

ГЛАВА 7. Анализ экспериментов. 303

7.1. Плюсы и минусы SQL для анализа экспериментов. 304

7.2. Набор данных о мобильной игре. 306

7.3. Типы экспериментов. 307

Эксперименты с бинарными результатами: тест хи-квадрат. 308

Эксперименты с непрерывными результатами: t-тест. 310

7.4. Спасение неудачных экспериментов. 313

Система назначения вариантов. 313

Выбросы.. 314

Метод временных рамок. 316

Эксперименты с повторным воздействием.. 317

7.5. Альтернативные анализы, когда контролируемые эксперименты невозможны   319

Анализ «до и после». 319

Анализ естественных экспериментов. 321

Анализ популяции около порогового значения. 323

7.6. Заключение. 324

ГЛАВА 8. Создание сложных наборов данных. 325

8.1. SQL для сложных наборов данных. 325

Преимущества использования SQL. 326

Перенос логики в ETL. 326

Перенос логики в другие инструменты.. 329

8.2. Упорядочивание кода. 330

Комментарии. 330

Регистр, отступы, круглые скобки и другие приемы форматирования. 332

Хранение кода. 335

8.3. Контроль над порядком вычислений. 335

Порядок выполнения операций SQL. 336

Подзапросы.. 339

Временные таблицы.. 342

Общие табличные выражения. 343

Расширения для группировки. 345

8.4. Управление размером набора данных и проблемы конфиденциальности. 349

Частичная выборка с помощью остатка от деления. 349

Уменьшение размерности. 351

Персональные данные и конфиденциальность. 356

8.5. Заключение. 358

ГЛАВА 9. Комбинирование методов анализа и полезные ресурсы.. 359

9.1. Анализ воронки продаж.. 359

9.2. Отток, отставшие и анализ разрывов. 361

9.3. Анализ потребительской корзины.. 366

9.4. Полезные ресурсы.. 368

Книги и блоги. 369

Наборы данных. 370

9.5. Заключение. 371

Об авторе. 373

Об обложке. 374

Предметный указатель. 375

Танимура Кэти

Кэти Танимура более 20 лет занимается анализом данных в самых разных отраслях, от финансов до программного обеспечения и сферы потребительских услуг. Кэти управляла командами специалистов по анализу данных в нескольких ведущих технологических компаниях. Имеет богатый опыт работы со стандартом SQL, включая наиболее популярные проприетарные базы данных и базы данных с открытым исходным кодом.

Опубликовано

Новинка! Глубокое обучение и анализ данных. Практическое руководство

Глубокое обучение и анализ данных. Практическое руководство

Представляем новую книгу Дмитрия Малова: “Глубокое обучение и анализ данных. Практическое руководство“.

Книга о принципах глубокого обучения, описывающая построение и развитие нейронных сетей с нуля. На материале обширных практических наработок в сфере распознавания образов и обработки естественного языка продемонстрированы возможности популярной библиотеки Pytorch, а также Keras и Tensorflow. Особое внимание уделено разбору базовых алгоритмов, реализованных на языке Python, которые помогут самостоятельно освоить работу с нейронными сетями, написав собственное приложение для глубокого обучения на основе данных из браузера.

Для Python-разработчиков и специалистов Data Science

Как говорил Артур Кларк, «любая достаточно продвинутая технология неотличима от магии» («третий закон Кларка»). На наших глазах именно так начинает восприниматься глубокое обучение – технология, зародившаяся в 1959 году.

Эта книга поможет вам сделать первые шаги в изучении важнейших современных библиотек глубокого обучения – Keras, PyTorch и Tensorflow. В ней просто и последовательно раскрываются принципы обработки изображений и естественного языка при помощи базовых алгоритмов, реализованных на Python. В книгу включён проект по построению собственной системы глубокого обучения на основе данных из обычного браузера.

Книга сопровождается примерами кода по каждому из теоретических аспектов, чтобы у разработчиков была возможность применить полученные теоретические знания на практике для решения собственных задач. Весь код доступен в репозитории: https://github.com/Dimitrioum/ml-data-analysis-book.

 

Книгу “Глубокое обучение и анализ данных. Практическое руководство” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Введение. 9

Чему обучит книга?. 10

Для кого эта книга?. 11

Глава 1. Основы машинного обучения. 13

Линейная алгебра. 13

Скаляр. 13

Вектор. 13

Матрица. 14

Тензор. 14

Норма. 17

Теория информации и теория вероятностей. 17

Случайная величина. 18

Распределение вероятности. 18

Условная вероятность. 19

Маргинальное распределение вероятности. 20

Цепное правило. 20

Математическое ожидание. 20

Дисперсия. 21

Ковариация. 21

Правило Байеса. 21

Наиболее часто используемые распределения вероятности. 22

Машинное обучение: основные понятия, подходы и типы задач. 22

Задача Т. 23

Опыт Е. 24

Активация нейронов в нейросетевых моделях. 26

Основы языка программирования Python. 26

Базовые типы. 27

Интерактивный режим работы Python. 27

Переменные в Python. 28

Числа: целые, вещественные. 28

Строки. 29

Списки. 31

Кортежи. 32

Словари. 33

Операторы сравнения. 34

Логические операторы. 34

Операторы ветвления. 35

Циклы. 36

Работа со строками. 37

Срезы строк. 38

Функции. 38

Сценарный режим программирования. 40

Функциональное программирование. 41

Основы объектно-ориентированного программирования. 49

Полезные приемы. 51

Основы разработки программного обеспечения. 53

Глава 2. Основные алгоритмы машинного обучения. 55

Предобработка данных. 55

Алгоритмы снижения размерности данных. 58

Линейные методы. 59

Нелинейные методы. 66

Линейная регрессия. 76

Логистическая регрессия. 77

Дерево решений. 78

Метод опорных векторов. 80

Наивный байесовский классификатор. 81

Алгоритм k ближайших соседей. 83

Алгоритм k средних. 84

Случайный лес. 86

Алгоритмы градиентного бустинга. 88

Глава 3. Основы глубокого обучения. 91

Алгоритм обратного распространения ошибки. 91

Перцептрон. 92

Цепь Маркова. 94

Машина Больцмана. 94

Сеть Хопфилда. 96

Глубокая сеть доверия. 97

Глубокая сверточная сеть. 97

Капсульные нейронные сети. 99

Нейронная сеть с блоком внимания (трансформеры) 101

Рекуррентные нейронные сети. 103

Автокодировщики. 104

Генеративно-состязательные сети. 105

Практические примеры. 106

Система проактивной локализации пользователей киберфизической системы. 109

Концепция системы проактивной локализации. 116

Глава 4. Основы data science. 119

Методология CRISP-DM.. 119

Бизнес-анализ. 120

Анализ данных. 121

Подготовка данных. 122

Моделирование. 124

Оценка результата. 125

Внедрение. 126

Роли специалистов в команде ML-разработки. 127

Современные тренды data science. 129

Борьба с DeepFake-контентом. 129

Интерес бизнеса к полноценным (end-to-end) решениям на основе
машинного обучения. 130

Low-code- и no-code-платформы для ML-разработки. 130

Методы оптимизации (квантования) обученной нейросетевой модели. 130

MLOps 131

Full-stack deep learning-разработчик. 131

Обучение без учителя. 132

Few-shot-, one-shot-, zero-shot-обучение. 132

Обзор современных библиотек для ML-разработки. 133

TensorFlow.. 134

CNTK.. 135

PyTorch. 135

Keras 136

Theano. 136

Torch. 137

Caffe. 137

MxNet 138

Chainer 138

Глава 5. Задачи глубокого обучения. 141

Аугментация данных. 141

Методы аугментации данных. 141

Глубокое обучение в задачах компьютерного зрения. 142

Установка OpenCV.. 142

Загрузка и отображение изображений. 143

Рисование на изображении. 144

Задача оптического распознавания символов. 144

Обработка естественного языка. 148

Методы и инструменты обработки текста. 148

Статистические методы. 148

Текстовая классификация. 149

Извлечение текста. 150

Обработка аудио. 151

Задача идентификации спикера. 151

Как мы представляем звук в цифровом виде?. 152

Подготовка аудиоданных для модели глубокого обучения. 153

Спектр. 153

Аудиомодели глубокого обучения. 154

Какие проблемы решает глубокое обучение аудио?. 155

Классификация аудио. 155

Аудиоразделение и сегментация. 155

Классификация музыкальных жанров. 156

Создание и транскрипция музыки. 156

Распознавание голоса. 156

Преобразование речи в текст и текста в речь. 157

Обработка видеопоследовательности. 157

Декодирование и кодирование. 158

Интерполяция с отслеживанием. 159

Глава 6. Знакомство с TensorFlow.. 161

Начало работы с TensorFlow.. 161

Определение и запуск нейронной сети. 163

Определение нейронной сети. 163

Запуск нейронной сети. 164

Классификация изображений с помощью TensorFlow.. 165

Построение модели для трансферного обучения. 167

Обучение модели. 167

Тонкая настройка модели (fine tuning) 168

Обработка текста с TensorFlow.. 168

Представление текста в виде тензоров. 169

Векторизация текста. 171

Ограничение размера словарного запаса. 171

Текстовое представление набора слов через мешок слов. 171

Обучение классификатора мешка слов. 172

Обучение классификатора как одной сети. 173

Биграммы, триграммы и n-граммы. 174

Автоматический расчет векторов мешка слов. 175

Частота слова и обратная частота документа. 175

Сжатые векторные характеристики. 177

Рекуррентные нейронные сети для обработки текста. 184

Пересмотр последовательностей переменных. 188

Классификация аудио с TensorFlow.. 189

Импортирование набора данных речевых мини-команд. 189

Преобразование сигналов в спектрограммы. 192

Построение и обучение модели. 193

Оценка точности модели. 195

Глава 7. Знакомство с Keras 197

Функции. 197

Преимущества. 197

Установка пакетов. 198

Установка Keras с использованием Python. 200

TensorFlow.. 200

Theano. 201

Доступные модули. 201

Модуль Backend. 202

Модуль Utils 205

Основная концепция слоев в Keras 206

Форма ввода. 210

Модуль Initializers 210

Модуль Constraints 215

Модуль Regularizers 216

Функции активации. 217

linear 217

elu. 218

selu. 218

relu. 219

softmax. 220

softplus 220

softsign. 221

tanh. 221

sigmoid. 222

hard_sigmoid. 222

exponential 223

Классификация изображений с Keras 223

Трансферное обучение. 227

Keras для классификации аудио. 229

Предварительная настройка. 229

Построение кривых амплитуды. 230

Работа с tf.Keras 231

Классификация изображений с использованием TensorFlow 2.x. 231

Импортирование набора данных. 232

Предварительная обработка данных. 232

Компиляция и обучение модели глубокого обучения. 233

Классификация текста с использованием TensorFlow и Keras 234

Предварительная подготовка. 234

Импорт текста. 234

Очистка и предварительная обработка текста. 235

Заполнение текстовых последовательностей. 236

Создание тестовой выборки. 236

Построение и компиляция модели. 236

Обучение модели глубокого обучения. 236

Импорт тестовых данных. 237

Прогноз по набору тестов. 237

Глава 8. Знакомство с PyTorch. 239

Основы PyTorch. 239

Загрузка данных, устройств и CUDA.. 239

Создание параметров. 239

Пакет Autograd. 240

Процедура оптимизации. 240

Функция ошибки. 241

Модель. 241

Набор данных. 243

Метрика качества. 245

Классификация аудио с PyTorch. 245

Тензоры. 247

Классификация изображений с PyTorch. 247

PyTorch для компьютерного зрения. 247

Загрузка данных. 248

Обучение модели. 249

Классификация текста с PyTorch. 251

Подготовка конвейеров обработки данных. 252

Создание пакета данных и итератора. 252

Определение модели. 253

Глава 9. Разработка веб-приложения для демонстрации моделей
глубокого обучения. 259

Разработка веб-приложения на Django. 259

Пару слов о Heroku. 261

Заключение. 267

Предметный указатель. 268

Малов Дмитрий

Малов Дмитрий Александрович, с 2017 по 2021 – научный сотрудник института Санкт-Петербургского Федерального исследовательского центра Российской академии наук, лаборатория больших данных в социокиберфизических системах, автор более 20 научных статей и монографии. Сфера профессиональных интересов – распознавание образов, синтетические данные. Является генеральным директором стартапа «Квант», занимающегося прикладными исследованиями в сфере квантовых вычислений.