Инженерия данных в Python: Основы анализа данных с помощью Pandas, NumPy и Scikit-learn
Год издания: 2025
Автор: Cuantum Technologies
Переводчик: Гинько А. Ю.
Издательство: ДМК Пресс
ISBN: 978-5-93700-381-2
Язык: Русский
Формат: PDF
Качество: Издательский макет или текст (eBook)
Интерактивное оглавление: Да
Количество страниц: 530
Описание: Цель этой книги – научить вас подготавливать и преобразовывать сырые данные, конструировать новые признаки и придавать исходным данным форму, пригодную для будущего интеллектуального анализа при помощи методов машинного и глубокого обучения. Предложенные в книге эффективные техники и приемы будут полезны для обработки любого объема данных. Примеры кода опираются на наиболее популярные библиотеки Python для работы с данными, такие как Pandas, NumPy и Scikit-learn.
Издание предназначено как делающим первые шаги в освоении науки о данных, так и практикующим специалистам, желающим улучшить свои навыки.
Примеры страниц (скриншоты)
Оглавление
От издательства.......................................................................................................13
Кто мы?.......................................................................................................................14
О переводчике.........................................................................................................16
Введение....................................................................................................................17
Часть I. ПОДГОТОВКА К РАСШИРЕННОМУ АНАЛИЗУ
ДАННЫХ...................................................................................................................21
Глава 1. Введение. Основы и не только...........................................................22
1.1. Введение в промежуточный анализ данных........................................................23
1.1.1. Ключевые концепции промежуточного анализа данных............................26
1.1.2. Пример: промежуточный анализ данных с помощью Pandas и NumPy.....32
1.1.3. Заполнение пропущенных значений............................................................36
1.1.4. Вычисление скользящих средних..................................................................40
1.1.5. Оптимизация типов данных..........................................................................42
1.1.6. Ключевые выводы...........................................................................................46
1.2. Путь от простого к сложному................................................................................47
1.2.1. От простых техник манипулирования данными к более сложным............47
1.2.2. Промежуточный уровень манипулирования данными...............................49
1.2.3. Построение эффективных рабочих процессов.............................................50
1.2.4. Использование библиотеки NumPy для повышения
производительности................................................................................................53
1.3. Pandas, NumPy и Scikit-learn в действии..............................................................55
1.3.1. Pandas: манипулирование табличными данными на экспертном
уровне........................................................................................................................56
1.3.2. NumPy: высокоэффективные числовые вычисления...................................60
1.3.3. Использование инструментов NumPy для преобразований.......................64
1.3.4. Scikit-learn: эксперт в области машинного обучения..................................66
1.3.5. Почему Scikit-learn?........................................................................................68
1.3.6. Собираем все вместе: полный рабочий процесс..........................................69
1.3.7. Ключевые выводы...........................................................................................71
1.4. Практические упражнения....................................................................................72
1.5. Возможные проблемы...........................................................................................76
1.5.1. Неэффективное манипулирование данными в Pandas................................76
1.5.2. Неправильная обработка пропущенных значений......................................77
1.5.3. Неправильное применение масштабирования и преобразования
признаков.................................................................................................................78
1.5.4. Неправильное использование конвейеров Scikit-learn...............................78
1.5.5. Неправильная интерпретация результатов модели в Scikit-learn..............79
1.5.6. Узкие места в операциях NumPy...................................................................79
1.5.7. Избыточное конструирование признаков.....................................................80
Заключение...................................................................................................................80
Глава 2. Оптимизация потоков данных...........................................................82
2.1. Расширенное манипулирование данными с Pandas...........................................82
2.1.1. Сложная фильтрация и извлечение подмножеств.......................................85
2.1.2. Многоуровневая группировка с агрегацией.................................................93
2.1.3. Сводные таблицы и изменение структуры данных.....................................96
2.1.4. Эффективный анализ временных рядов.....................................................101
2.1.5. Оптимизация производительности и использования памяти..................105
2.2. Повышение производительности при помощи массивов NumPy....................109
2.2.1. Работа с массивами в NumPy.......................................................................109
2.2.2. Векторизованные операции: скорость и простота.....................................113
2.2.3. Транслирование: гибкие операции с массивами.......................................114
2.2.4. Работа с памятью: типы данных в NumPy..................................................116
2.2.5. Многомерные массивы: работа со сложными структурами данных...........118
2.3. Комбинирование инструментов для выполнения эффективного анализа
данных.........................................................................................................................121
2.3.1. Шаг 1: предварительная обработка данных с помощью Pandas
и NumPy..................................................................................................................121
2.3.2. Шаг 2: конструирование признаков с помощью Pandas и NumPy............125
2.3.3. Шаг 3: построение модели машинного обучения с помощью
Scikit-learn...............................................................................................................127
2.3.4. Шаг 4: оптимизация рабочих процессов с помощью конвейеров
Scikit-learn...............................................................................................................129
2.4. Практические упражнения..................................................................................132
2.5. Возможные проблемы.........................................................................................137
2.5.1. Большие накладные расходы при работе с большими наборами
данных в Pandas.....................................................................................................137
2.5.2. Игнорирование или неправильное использование векторизации
в NumPy...................................................................................................................138
2.5.3. Утечка информации в конвейерах Scikit-learn...........................................138
2.5.4. Чрезмерная надежда на значения гиперпараметров модели
по умолчанию.........................................................................................................139
2.5.5. Излишняя сложность конвейеров................................................................139
Заключение.................................................................................................................140
Контрольный опрос. Часть I. Подготовка данных
для дальнейшего анализа..................................................................................141
Часть II. КОНСТРУИРОВАНИЕ ПРИЗНАКОВ ДЛЯ МОДЕЛЕЙ МАШИННОГО ОБУЧЕНИЯ...........145
Проект 1. Предсказание стоимости домов с помощью
конструирования признаков.............................................................................146
Исследование переменных и очистка данных.........................................................146
Конструирование признаков.....................................................................................151
Построение и оценка предсказательной модели.....................................................157
Итоги проекта.............................................................................................................161
Дальнейшие улучшения.............................................................................................162
Глава 3. Роль конструирования признаков в машинном обучении............................163
3.1. Почему так важно конструировать признаки?..................................................163
3.1.1. Области влияния признаков на качество моделей....................................164
3.2. Примеры эффективного конструирования признаков.....................................172
3.2.1. Создание переменных взаимодействия.....................................................173
3.2.2. Создание признаков на основе временных рядов.....................................176
3.2.3. Разбиение числовых переменных на интервалы.......................................185
3.2.4. Кодирование на основе целевой переменной............................................189
3.3. Практические упражнения..................................................................................193
3.4. Возможные проблемы.........................................................................................197
3.4.1. Переобучение из-за слишком большого количества признаков...............197
3.4.2. Мультиколлинеарность................................................................................198
3.4.3. Утечка информации......................................................................................198
3.4.4. Неправильная интерпретация признаков на основе времени.................199
3.4.5. Неподобающее масштабирование признаков............................................199
3.4.6. Недооценка знаний о предметной области................................................200
Заключение.................................................................................................................201
Глава 4. Сложные техники заполнения пропусков в данных................202
4.1. Использование продвинутых техник заполнения пропущенных значений...202
4.1.1. Подстановка с помощью метода k-ближайших соседей............................203
4.1.2. Метод множественной подстановки с помощью цепных уравнений
(MICE)......................................................................................................................208
4.1.3. Использование моделей машинного обучения для подстановки.............212
4.2. Обработка пропущенных значений в больших наборах данных.....................216
4.2.1. Оптимизация техник подстановки с целью обеспечения
масштабируемости.................................................................................................217
4.2.2. Обработка столбцов с большим количеством пропущенных значений.....224
4.2.3. Использование распределенных вычислительных систем для
заполнения пропусков...........................................................................................229
4.2.4. Ключевые выводы.........................................................................................238
4.3. Практические упражнения..................................................................................240
4.4. Возможные проблемы.........................................................................................245
4.4.1. Погрешность модели при неправильной подстановке пропусков...........245
4.4.2. Переобучение модели вследствие замены пропусков в тестовой
выборке...................................................................................................................246
4.4.3. Удаление слишком большого количества данных......................................246
4.4.4. Неправильное интерпретирование данных о временных рядах..............247
4.4.5. Вычислительная сложность при работе с большими наборами данных.....247
4.4.6. Сложности с нахождением шаблонов в пропущенных значениях...........248
Заключение.................................................................................................................248
Глава 5. Преобразование и масштабирование признаков.....................250
5.1. Масштабирование и нормализация: оптимальное применение.....................250
5.1.1. Почему так важны масштабирование и нормализация.............................251
5.1.2. Масштабирование и нормализация: в чем разница?................................252
5.1.3. Минимаксное масштабирование (нормализация).....................................253
5.1.4. Стандартизация (z-нормализация).............................................................256
5.1.5. Когда использовать минимаксное масштабирование, а когда
стандартизацию.....................................................................................................259
5.1.6. Робастное масштабирование, устойчивое к выбросам..............................260
5.1.7. Винсоризация................................................................................................264
5.2. Логарифм, квадратный корень и другие нелинейные преобразования
признаков....................................................................................................................267
5.2.1. Логарифмическое преобразование.............................................................268
5.2.2. Преобразование квадратного корня...........................................................270
5.2.3. Преобразование кубического корня............................................................273
5.2.4. Преобразования Бокса−Кокса и Йео−Джонсона.........................................276
5.3. Практические упражнения..................................................................................282
5.4. Возможные проблемы.........................................................................................286
5.4.1. Неправильный выбор метода преобразования..........................................286
5.4.2. Неправильное масштабирование тестовых данных..................................287
5.4.3. Излишнее преобразование признаков........................................................288
5.4.4. Неправильная интерпретация результатов логарифмического
преобразования......................................................................................................288
5.4.5. Игнорирование природы нелинейных зависимостей...............................289
5.4.6. Неправильное обращение с выбросами......................................................289
Заключение.................................................................................................................290
Глава 6. Кодирование категориальных переменных...............................291
6.1. Кодирование с одним активным состоянием: углубленное изучение.............291
6.1.1. Совет 1: избегайте ловушки, связанной с фиктивными переменными.....294
6.1.2. Совет 2: правильно кодируйте значения в столбцах с высокой
кардинальностью...................................................................................................296
6.1.3. Совет 3: используйте разреженные матрицы для повышения
эффективности.......................................................................................................305
6.1.4. Выводы и рекомендации..............................................................................308
6.2. Более сложные примеры применения кодирования на основе целевой
переменной , частоты и порядкового кодирования.................................................309
6.2.1. Кодирование на основе целевой переменной с регуляризацией и без....310
6.2.2. Пример использования кодирования на основе частоты..........................315
6.2.3. Порядковое кодирование.............................................................................318
6.2.4. Выводы и рекомендации..............................................................................322
6.3. Практические упражнения..................................................................................323
6.4. Возможные проблемы.........................................................................................326
6.4.1. Переобучение при использовании кодирования на основе целевой
переменной............................................................................................................327
6.4.2. Неправильное использование порядкового кодирования........................327
6.4.3. Использование кодирования с одним активным состоянием
для столбцов с высокой кардинальностью...........................................................328
6.4.4. Пренебрежение разреженностью матрицы при кодировании
с одним активным состоянием.............................................................................328
6.4.5. Утечка информации при использовании кодирования на основе
целевой переменной..............................................................................................329
6.4.6. Ошибочная интерпретация результатов кодирования на основе
частоты....................................................................................................................329
Заключение.................................................................................................................330
Глава 7. Конструирование признаков и переменных
взаимодействия.....................................................................................................331
7.1. Создание признаков на основе существующих переменных...........................331
7.1.1. Математические преобразования переменных.........................................331
7.1.2. Извлечение компонентов из дат..................................................................337
7.1.3. Комбинирование признаков........................................................................340
7.2. Переменные взаимодействия и значимость признаков для моделей.............342
7.2.1. Полиномиальные признаки.........................................................................343
7.2.2. Перекрестные признаки...............................................................................345
7.2.3. Переменные взаимодействия и нелинейные зависимости.......................351
7.2.4. Комбинирование полиномиальных и перекрестных признаков..............354
7.3. Практические упражнения..................................................................................358
7.4. Возможные проблемы..........................................................................................362
7.4.1. Переобучение модели при использовании избыточного количества
признаков...............................................................................................................362
7.4.2. Возникновение мультиколлинеарности......................................................362
7.4.3. Добавление в модель избыточных признаков............................................363
7.4.4. Ошибки при интерпретации перекрестных признаков.............................364
7.4.5. Проблемы с производительностью при использовании
полиномиальных признаков в больших наборах данных...................................364
Заключение.................................................................................................................365
Контрольный опрос. Часть II. Конструирование признаков
для сложных моделей.........................................................................................366
Часть III. Очистка и предварительная обработка данных......................371
Проект 2. Прогнозирование временных рядов
с конструированием признаков.......................................................................372
Введение в прогнозирование временных рядов с использованием
конструирования признаков.....................................................................................373
Признаки на основе временного лага в прогнозировании временных
рядов.......................................................................................................................373
Признаки на основе скользящего окна для обнаружения трендов
и сезонности...............................................................................................................377
Циклические признаки на основе гармонических функций..................................381
Часовые пояса и пропущенные значения во временных рядах.............................382
Детрендирование и работа с сезонностью во временных рядах............................386
Что такое детрендирование?.................................................................................386
Методы детрендирования временных рядов.......................................................387
Работа с сезонностью во временных рядах..........................................................394
Как детрендирование и выделение сезонности влияют на качество
моделей...................................................................................................................397
Применение методов из семейства ARIMA и алгоритмов машинного
обучения для прогнозирования временных рядов..................................................397
Шаг 1. Подготовка данных для алгоритма машинного обучения.......................398
Шаг 2. Применение методов прогнозирования временных рядов....................403
Шаг 2(б). Применение методов машинного обучения
для прогнозирования временных рядов..............................................................424
Подбор гиперпараметров для методов машинного обучения................................434
Что такое гиперпараметры?..................................................................................435
Использование поиска по сетке для подбора гиперпараметров........................436
Использование случайного поиска для подбора гиперпараметров...................438
Итоги проекта.............................................................................................................440
Особенности развертывания моделей прогнозирования временных
рядов............................................................................................................................441
Практические упражнения........................................................................................442
Возможные проблемы................................................................................................444
Утечка информации в результате неправильно созданных признаков.............444
Неправильно выбранный размер окна при создании скользящих
признаков...............................................................................................................445
Пропуски, возникающие в результате создания новых признаков...................445
Неправильная интерпретация циклических переменных.................................446
Разреженность данных при создании скользящих признаков...........................446
Неправильный учет часовых поясов в данных....................................................447
Глава 8. Корректировка аномалий в данных при помощи Pandas..............................448
8.1. Обработка некорректных форматов данных.....................................................449
8.2. Поиск и удаление дубликатов.............................................................................455
8.3. Исправление неконсистентных категориальных данных................................459
8.4. Обработка значений, выходящих за допустимые границы..............................463
8.5. Обработка пропущенных значений, образовавшихся в результате
коррекции аномалий..................................................................................................467
8.6. Практические упражнения..................................................................................469
8.7. Возможные проблемы..........................................................................................473
8.7.1. Удаление важных наблюдений вместе с выбросами..................................473
8.7.2. Чрезмерная стандартизация категориальных данных..............................474
8.7.3. Ошибочное интерпретирование дубликатов..............................................474
12 Содержание
8.7.4. Ошибочное удаление значений, выходящих за границы диапазона........475
8.7.5. Ошибки, появляющиеся в результате автоматической
стандартизации......................................................................................................475
8.7.6. Ошибки в результате подстановки пропущенных значений....................476
Заключение.................................................................................................................476
Глава 9. Методы снижения размерности......................................................477
9.1. Анализ главных компонент (PCA).......................................................................477
9.1.1. Суть анализа главных компонент................................................................479
9.1.2. Реализация анализа главных компонент при помощи Scikit-learn..........483
9.1.3. Объясненная дисперсия и анализ главных компонент.............................487
9.1.4. Когда стоит применять анализ главных компонент..................................491
9.1.5. Ключевые выводы об анализе главных компонент...................................492
9.2. Техники отбора признаков..................................................................................493
9.2.1. Методы фильтрации.....................................................................................494
9.2.2. Оберточные методы.....................................................................................501
9.2.3. Встроенные методы......................................................................................506
9.2.4. Ключевые выводы о техниках отбора признаков.......................................511
9.3. Практические упражнения..................................................................................512
9.4. Возможные проблемы.........................................................................................516
9.4.1. Удаление слишком большого количества признаков.................................516
9.4.2. Опасности использования только методов фильтрации...........................516
9.4.3. Утечка информации при использовании оберточных методов................517
9.4.4. Чрезмерные штрафы при использовании встроенных методов..............517
9.4.5. Ошибки при интерпретации главных компонент.....................................518
9.4.6. Избыточность данных при использовании техник отбора признаков.....519
Заключение.................................................................................................................519
Контрольный опрос. Часть III. Очистка и предобработка данных............................520
Заключение.............................................................................................................523
Предметный указатель........................................................................................524