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

Новинка: “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 научных статей и монографии. Сфера профессиональных интересов – распознавание образов, синтетические данные. Является генеральным директором стартапа «Квант», занимающегося прикладными исследованиями в сфере квантовых вычислений.