От издательства
Кто мы?
О переводчике
Введение
Часть I. Подготовка к расширенному анализу данных
Глава 1. Введение. Основы и не только
1.1. Введение в промежуточный анализ данных
1.1.1. Ключевые концепции промежуточного анализа данных
1.1.2. Пример: промежуточный анализ данных с помощью Pandas и NumPy
1.1.3. Заполнение пропущенных значений
1.1.4. Вычисление скользящих средних
1.1.5. Оптимизация типов данных
1.1.6. Ключевые выводы
1.2. Путь от простого к сложному
1.2.1. От простых техник манипулирования данными к более сложным
1.2.2. Промежуточный уровень манипулирования данными
1.2.3. Построение эффективных рабочих процессов
1.2.4. Использование библиотеки NumPy для повышения производительности
1.3. Pandas, NumPy и Scikit-learn в действии
1.3.1. Pandas: манипулирование табличными данными на экспертном уровне
1.3.2. NumPy: высокоэффективные числовые вычисления
1.3.3. Использование инструментов NumPy для преобразований
1.3.4. Scikit-learn: эксперт в области машинного обучения
1.3.5. Почему Scikit-learn?
1.3.6. Собираем все вместе: полный рабочий процесс
1.3.7. Ключевые выводы
1.4. Практические упражнения
1.5. Возможные проблемы
1.5.1. Неэффективное манипулирование данными в Pandas
1.5.2. Неправильная обработка пропущенных значений
1.5.3. Неправильное применение масштабирования и преобразования признаков
1.5.4. Неправильное использование конвейеров Scikit-learn
1.5.5. Неправильная интерпретация результатов модели в Scikit-learn
1.5.6. Узкие места в операциях NumPy
1.5.7. Избыточное конструирование признаков
Заключение
Глава 2. Оптимизация потоков данных
2.1. Расширенное манипулирование данными с Pandas
2.1.1. Сложная фильтрация и извлечение подмножеств
2.1.2. Многоуровневая группировка с агрегацией
2.1.3. Сводные таблицы и изменение структуры данных
2.1.4. Эффективный анализ временных рядов
2.1.5. Оптимизация производительности и использования памяти
2.2. Повышение производительности при помощи массивов NumPy
2.2.1. Работа с массивами в NumPy
2.2.2. Векторизованные операции: скорость и простота
2.2.3. Транслирование: гибкие операции с массивами
2.2.4. Работа с памятью: типы данных в NumPy
2.2.5. Многомерные массивы: работа со сложными структурами данных
2.3. Комбинирование инструментов для выполнения эффективного анализа данных
2.3.1. Шаг 1: предварительная обработка данных с помощью Pandas и NumPy
2.3.2. Шаг 2: конструирование признаков с помощью Pandas и NumPy
2.3.3. Шаг 3: построение модели машинного обучения с помощью Scikit-learn
2.3.4. Шаг 4: оптимизация рабочих процессов с помощью конвейеров Scikit-learn
2.4. Практические упражнения
2.5. Возможные проблемы
2.5.1. Большие накладные расходы при работе с большими наборами данных в Pandas
2.5.2. Игнорирование или неправильное использование векторизации в NumPy
2.5.3. Утечка информации в конвейерах Scikit-learn
2.5.4. Чрезмерная надежда на значения гиперпараметров модели по умолчанию
2.5.5. Излишняя сложность конвейеров
Заключение
Контрольный опрос. Часть I. Подготовка данных для дальнейшего анализа
Часть II. Конструирование признаков для моделей машинного обучения
Проект 1. Предсказание стоимости домов с помощью конструирования признаков
Исследование переменных и очистка данных
Конструирование признаков
Построение и оценка предсказательной модели
Итоги проекта
Дальнейшие улучшения
Глава 3. Роль конструирования признаков в машинном обучении
3.1. Почему так важно конструировать признаки?
3.1.1. Области влияния признаков на качество моделей
3.2. Примеры эффективного конструирования признаков
3.2.1. Создание переменных взаимодействия
3.2.2. Создание признаков на основе временных рядов
3.2.3. Разбиение числовых переменных на интервалы
3.2.4. Кодирование на основе целевой переменной
3.3. Практические упражнения
3.4. Возможные проблемы
3.4.1. Переобучение из-за слишком большого количества признаков
3.4.2. Мультиколлинеарность
3.4.3. Утечка информации
3.4.4. Неправильная интерпретация признаков на основе времени
3.4.5. Неподобающее масштабирование признаков
3.4.6. Недооценка знаний о предметной области
Заключение
Глава 4. Сложные техники заполнения пропусков в данных
4.1. Использование продвинутых техник заполнения пропущенных значений
4.1.1. Подстановка с помощью метода k-ближайших соседей
4.1.2. Метод множественной подстановки с помощью цепных уравнений (MICE)
4.1.3. Использование моделей машинного обучения для подстановки
4.2. Обработка пропущенных значений в больших наборах данных
4.2.1. Оптимизация техник подстановки с целью обеспечения масштабируемости
4.2.2. Обработка столбцов с большим количеством пропущенных значений
4.2.3. Использование распределенных вычислительных систем для заполнения пропусков
4.2.4. Ключевые выводы
4.3. Практические упражнения
4.4. Возможные проблемы
4.4.1. Погрешность модели при неправильной подстановке пропусков
4.4.2. Переобучение модели вследствие замены пропусков в тестовой выборке
4.4.3. Удаление слишком большого количества данных
4.4.4. Неправильное интерпретирование данных о временных рядах
4.4.5. Вычислительная сложность при работе с большими наборами данных
4.4.6. Сложности с нахождением шаблонов в пропущенных значениях
Заключение
Глава 5. Преобразование и масштабирование признаков
5.1. Масштабирование и нормализация: оптимальное применение
5.1.1. Почему так важны масштабирование и нормализация
5.1.2. Масштабирование и нормализация: в чем разница?
5.1.3. Минимаксное масштабирование (нормализация)
5.1.4. Стандартизация (z-нормализация)
5.1.5. Когда использовать минимаксное масштабирование, а когда стандартизацию
5.1.6. Робастное масштабирование, устойчивое к выбросам
5.1.7. Винсоризация
5.2. Логарифм, квадратный корень и другие нелинейные преобразования признаков
5.2.1. Логарифмическое преобразование
5.2.2. Преобразование квадратного корня
5.2.3. Преобразование кубического корня
5.2.4. Преобразования Бокса−Кокса и Йео−Джонсона
5.3. Практические упражнения
5.4. Возможные проблемы
5.4.1. Неправильный выбор метода преобразования
5.4.2. Неправильное масштабирование тестовых данных
5.4.3. Излишнее преобразование признаков
5.4.4. Неправильная интерпретация результатов логарифмического преобразования
5.4.5. Игнорирование природы нелинейных зависимостей
5.4.6. Неправильное обращение с выбросами
Заключение
Глава 6. Кодирование категориальных переменных
6.1. Кодирование с одним активным состоянием: углубленное изучение
6.1.1. Совет 1: избегайте ловушки, связанной с фиктивными переменными
6.1.2. Совет 2: правильно кодируйте значения в столбцах с высокой кардинальностью
6.1.3. Совет 3: используйте разреженные матрицы для повышения эффективности
6.1.4. Выводы и рекомендации
6.2. Более сложные примеры применения кодирования на основе целевой переменной , частоты и порядкового кодирования
6.2.1. Кодирование на основе целевой переменной с регуляризацией и без
6.2.2. Пример использования кодирования на основе частоты
6.2.3. Порядковое кодирование
6.2.4. Выводы и рекомендации
6.3. Практические упражнения
6.4. Возможные проблемы
6.4.1. Переобучение при использовании кодирования на основе целевой переменной
6.4.2. Неправильное использование порядкового кодирования
6.4.3. Использование кодирования с одним активным состоянием для столбцов с высокой кардинальностью
6.4.4. Пренебрежение разреженностью матрицы при кодировании с одним активным состоянием
6.4.5. Утечка информации при использовании кодирования на основе целевой переменной
6.4.6. Ошибочная интерпретация результатов кодирования на основе частоты
Заключение
Глава 7. Конструирование признаков и переменных взаимодействия
7.1. Создание признаков на основе существующих переменных
7.1.1. Математические преобразования переменных
7.1.2. Извлечение компонентов из дат
7.1.3. Комбинирование признаков
7.2. Переменные взаимодействия и значимость признаков для моделей
7.2.1. Полиномиальные признаки
7.2.2. Перекрестные признаки
7.2.3. Переменные взаимодействия и нелинейные зависимости
7.2.4. Комбинирование полиномиальных и перекрестных признаков
7.3. Практические упражнения
7.4. Возможные проблемы
7.4.1. Переобучение модели при использовании избыточного количества признаков
7.4.2. Возникновение мультиколлинеарности
7.4.3. Добавление в модель избыточных признаков
7.4.4. Ошибки при интерпретации перекрестных признаков
7.4.5. Проблемы с производительностью при использовании полиномиальных признаков в больших наборах данных
Заключение
Контрольный опрос. Часть II. Конструирование признаков для сложных моделей
Часть III. Очистка и предварительная обработка данных
Проект 2. Прогнозирование временных рядов с конструированием признаков
Введение в прогнозирование временных рядов с использованием конструирования признаков
Признаки на основе временного лага в прогнозировании временных рядов
Признаки на основе скользящего окна для обнаружения трендов и сезонности
Циклические признаки на основе гармонических функций
Часовые пояса и пропущенные значения во временных рядах
Детрендирование и работа с сезонностью во временных рядах
Что такое детрендирование?
Методы детрендирования временных рядов
Работа с сезонностью во временных рядах
Как детрендирование и выделение сезонности влияют на качество моделей
Применение методов из семейства ARIMA и алгоритмов машинного обучения для прогнозирования временных рядов
Шаг 1. Подготовка данных для алгоритма машинного обучения
Шаг 2. Применение методов прогнозирования временных рядов
Шаг 2(б). Применение методов машинного обучения для прогнозирования временных рядов
Подбор гиперпараметров для методов машинного обучения
Что такое гиперпараметры?
Использование поиска по сетке для подбора гиперпараметров
Использование случайного поиска для подбора гиперпараметров
Итоги проекта
Особенности развертывания моделей прогнозирования временных рядов
Практические упражнения
Возможные проблемы
Утечка информации в результате неправильно созданных признаков
Неправильно выбранный размер окна при создании скользящих признаков
Пропуски, возникающие в результате создания новых признаков
Неправильная интерпретация циклических переменных
Разреженность данных при создании скользящих признаков
Неправильный учет часовых поясов в данных
Глава 8. Корректировка аномалий в данных при помощи Pandas
8.1. Обработка некорректных форматов данных
8.2. Поиск и удаление дубликатов
8.3. Исправление неконсистентных категориальных данных
8.4. Обработка значений, выходящих за допустимые границы
8.5. Обработка пропущенных значений, образовавшихся в результате коррекции аномалий
8.6. Практические упражнения
8.7. Возможные проблемы
8.7.1. Удаление важных наблюдений вместе с выбросами
8.7.2. Чрезмерная стандартизация категориальных данных
8.7.3. Ошибочное интерпретирование дубликатов
8.7.4. Ошибочное удаление значений, выходящих за границы диапазона
8.7.5. Ошибки, появляющиеся в результате автоматической стандартизации
8.7.6. Ошибки в результате подстановки пропущенных значений
Заключение
Глава 9. Методы снижения размерности
9.1. Анализ главных компонент (PCA)
9.1.1. Суть анализа главных компонент
9.1.2. Реализация анализа главных компонент при помощи Scikit-learn
9.1.3. Объясненная дисперсия и анализ главных компонент
9.1.4. Когда стоит применять анализ главных компонент
9.1.5. Ключевые выводы об анализе главных компонент
9.2. Техники отбора признаков
9.2.1. Методы фильтрации
9.2.2. Оберточные методы
9.2.3. Встроенные методы
9.2.4. Ключевые выводы о техниках отбора признаков
9.3. Практические упражнения
9.4. Возможные проблемы
9.4.1. Удаление слишком большого количества признаков
9.4.2. Опасности использования только методов фильтрации
9.4.3. Утечка информации при использовании оберточных методов
9.4.4. Чрезмерные штрафы при использовании встроенных методов
9.4.5. Ошибки при интерпретации главных компонент
9.4.6. Избыточность данных при использовании техник отбора признаков
Заключение
Контрольный опрос. Часть III. Очистка и предобработка данных
Заключение
Предметный указатель
Перед вами полноценный путеводитель в увлекательный мир обработки данных при помощи Pandas, NumPy и Scikit-learn. Он содержит множество примеров, которые помогут вам научиться преобразовывать сырые крупицы данных в настоящий шедевр из ценной информации и аналитических выводов.
Книга разбита на три части, каждая из которых посвящена отдельным аспектам работы с данными.
Часть I. Подготовка к расширенному анализу данных
Вы научитесь свободно использовать средства, представленные в библиотеках Pandas, NumPy и Scikit-learn для предварительной подготовки данных.
Часть II. Конструирование признаков для моделей машинного обучения
Вы примете участие в полноценном проекте по анализу данных, а также научитесь конструировать новые признаки и корректировать данные.
Часть III. Очистка и предварительная обработка данных
Вы поучаствуете в большом проекте по прогнозированию временных рядов,
а также научитесь корректировать аномалии в данных и освоите методы снижения размерности.
Издание предназначено как делающим первые шаги в освоении науки о данных, так и практикующим специалистам, желающим улучшить свои навыки.
Книга написана сотрудниками компании Cuantum Technologies, специализирующейся на разработке качественных веб-приложений с использованием передовых технологий и инструментов. Авторы обладают обширным опытом в анализе и визуализации данных, машинном обучении и искусственном интеллекте.