- Артикул:00-01041593
- Автор: Плас Дж. Вандер
- ISBN: 978-5-4461-0914-2
- Обложка: Мягкая обложка
- Издательство: Питер (все книги издательства)
- Город: Санкт-Петербург
- Страниц: 576
- Формат: 70x100 1/16
- Год: 2023
- Вес: 1437 г
Книга «Python для сложных задач: наука о данных и машинное обучение» - это подробное руководство по самым разным вычислительным и статистическим методам, без которых немыслима любая интенсивная обработка данных, научные исследования и передовые разработки. Читатели, уже имеющие опыт программирования и желающие эффективно использовать Python в сфере Data Science, найдут в этой книге ответы на всевозможные вопросы, например: как считать этот формат данных в скрипт? как преобразовать, очистить эти данные и манипулировать ими? как визуализировать данные такого типа? как при помощи этих данных разобраться в ситуации, получить ответы на вопросы, построить статистические модели или реализовать машинное обучение?
Оглавление
Предисловие
Что такое наука о данных
Для кого предназначена эта книга
Почему Python
Общая структура книги
Использование примеров кода
Вопросы установки
Условные обозначения
Глава 1. IPython: за пределами обычного Python
Командная строка или блокнот?
Запуск командной оболочки IPython
Запуск блокнота Jupiter
Справка и документация в оболочке IPython
Доступ к документации с помощью символа?
Доступ к исходному коду с помощью символов??
Просмотр содержимого модулей с помощью
Тab-автодополнения
Сочетания горячих клавиш в командной оболочке IPython
Навигационные горячие клавиши
Горячие клавиши ввода текста
Горячие клавиши для истории команд
Прочие горячие клавиши
«Магические» команды IPython
Вставка блоков кода: %paste и %cpaste
Выполнение внешнего кода: %run
Длительность выполнения кода: %timeit
Справка по «магическим» функциям: ?, %magic и %lsmagic
История ввода и вывода
Объекты In и Out оболочки IPython
Быстрый доступ к предыдущим выводам с помощью знака подчеркивания
Подавление вывода
Соответствующие «магические» команды
Оболочка IPython и использование системного командного процессора
Краткое введение в использование командного процессора
Инструкции командного процессора в оболочке IPython
Передача значений в командный процессор и из него
«Магические» команды для командного процессора
Ошибки и отладка
Управление исключениями: %xmode
Отладка: что делать, если чтения трассировок недостаточно
Профилирование и мониторинг скорости выполнения кода
Оценка времени выполнения фрагментов кода: %timeit и %time
Профилирование сценариев целиком: %prun
Пошаговое профилирование с помощью %Iprun
Профилирование использования памяти: %memit и %mprun
Дополнительные источники информации об оболочке IPython
Веб-ресурсы
Книги
Глава 2. Введение в библиотеку NumPy
Работа с типами данных в языке Python
Целое число в языке Python - больше, чем просто целое число
Список в языке Python - больше, чем просто список
Массивы с фиксированным типом в языке Python
Создание массивов из списков языка Python
Создание массивов с нуля
Стандартные типы данных библиотеки NumPy
Введение в массивы библиотеки NumPy
Атрибуты массивов библиотеки NumPy
Индексация массива: доступ к отдельным элементам
Срезы массивов: доступ к подмассивам
Изменение формы массивов
Слияние и разбиение массивов
Выполнение вычислений над массивами библиотеки NumPy: универсальные функции
Медлительность циклов
Введение в универсальные функции
Обзор универсальных функций библиотеки NumPy
Продвинутые возможности универсальных функций
Универсальные функции: дальнейшая информация
Агрегирование: минимум, максимум и все, что посередине
Суммирование значений из массива
Минимум и максимум
Пример: чему равен средний рост президентов США
Операции над массивами. Транслирование
Введение в транслирование
Правила транслирования
Транслирование на практике
Сравнения, маски и булева логика
Пример: подсчет количества дождливых дней
Операторы сравнения как универсальные функции
Работа с булевыми массивами
Булевы массивы как маски
«Прихотливая» индексация
Исследуем возможности «прихотливой» индексации
Комбинированная индексация
Пример: выборка случайных точек
Изменение значений с помощью прихотливой индексации
Пример: разбиение данных на интервалы
Сортировка массивов
Быстрая сортировка в библиотеке NumPy: функции пр.sort и np.argsort
Частичные сортировки: секционирование
Пример: К ближайших соседей
Структурированные данные: структурированные массивы библиотеки NumPy
Создание структурированных массивов
Более продвинутые типы данных
Массивы записей: структурированные массивы с дополнительными возможностями
Вперед, к Pandas
Глава 3. Манипуляции над данными с помощью пакета Pandas
Установка и использование библиотеки Pandas
Знакомство с объектами библиотеки Pandas
Объект Series библиотеки Pandas
Объект Data Fra те библиотеки Pandas
Объект Index библиотеки Pandas
Индексация и выборка данных
Выборка данных из объекта Series
Выборка данных из объекта Data Fra те
Операции над данными в библиотеке Pandas
Универсальные функции: сохранение индекса
Универсальные функции: выравнивание индексов
Универсальные функции: выполнение операции между объектами Data Frame и Series
Обработка отсутствующих данных
Компромиссы при обозначении отсутствующих данных
Отсутствующие данные в библиотеке Pandas
Операции над пустыми значениями
Иерархическая индексация
Мультииндексированный объект Series
Методы создания мультииндексов
Индексация и срезы по мультииндексу
Перегруппировка мультииндексов
Агрегирование по мультииндексам
Объединение наборов данных: конкатенация и добавление в конец
Напоминание: конкатенация массивов NumPy
Простая конкатенация с помощью метода pd.concat
Объединение наборов данных: слияние и соединение
Реляционная алгебра
Виды соединений
Задание ключа слияния
Задание операций над множествами для соединений
Пересекающиеся названия столбцов: ключевое слово suffixes
Пример: данные по штатам США
Агрегирование и группировка
Данные о планетах
Простое агрегирование в библиотеке Pandas
GroupBy: разбиение, применение, объединение
Сводные таблицы
Данные для примеров работы со сводными таблицами
Сводные таблицы «вручную»
Синтаксис сводных таблиц
Пример: данные о рождаемости
Векторизованные операции над строками
Знакомство со строковыми операциями библиотеки Pandas
Таблицы методов работы со строками библиотеки Pandas
Пример: база данных рецептов
Работа с временными рядами
Дата и время в языке Python
Временные ряды библиотеки Pandas: индексация по времени
Структуры данных для временных рядов библиотеки Pandas
Периодичность и смещения дат
Где найти дополнительную информацию
Пример: визуализация количества велосипедов в Сиэтле
Увеличение производительности библиотеки Pandas: eval() и query()
Основания для использования функций query() и eval(): составные выражения
Использование функции pandas.eval() для эффективных операций
Использование метода DataFrame.eval() для выполнения операций по столбцам
Метод DataFrame.query()
Производительность: когда следует использовать эти функции
Дополнительные источники информации
Глава 4. Визуализация с помощью библиотеки Matplotlib
Общие советы по библиотеке Matplotlib
Импорт matplotlib
Настройка стилей
Использовать show() или не использовать?
Как отображать свои графики
Сохранение рисунков в файл
Два интерфейса по цене одного
Интерфейс в стиле MATLAB
Объектно-ориентированный интерфейс
Простые линейные графики
Настройка графика: цвета и стили линий
Настройка графика: пределы осей координат
Метки на графиках
Простые диаграммы рассеяния
Построение диаграмм рассеяния с помощью функции pit.plot
Построение диаграмм рассеяния с помощью функции plt.scatter
Сравнение функций plot и scatter: примечание относительно производительности
Визуализация погрешностей
Простые планки погрешностей
Непрерывные погрешности
Графики плотности и контурные графики
Гистограммы, разбиения по интервалам и плотность
Двумерные гистограммы и разбиения по интервалам
Ядерная оценка плотности распределения
Пользовательские настройки легенд на графиках
Выбор элементов для легенды
Задание легенды для точек различного размера
Отображение нескольких легенд
Пользовательские настройки шкал цветов
Выбор карты цветов
Ограничения и расширенные возможности по использованию цветов
Дискретные шкалы цветов
Пример: рукописные цифры
Множественные субграфики
plt.axes: создание субграфиков вручную
plt.subplot: простые сетки субграфиков
Функция plt.subplots: создание всей сетки за один раз
Функция plt.GridSpec: более сложные конфигурации
Текст и поясняющие надписи
Пример: влияние выходных дней на рождение детей в США
Преобразования и координаты текста
Стрелки и поясняющие надписи
Пользовательские настройки делений на осях координат
Основные и промежуточные деления осей координат
Прячем деления и/или метки
Уменьшение или увеличение количества делений
Более экзотические форматы делений
Краткая сводка локаторов и форматеров
Пользовательские настройки Matplotlib: конфигурации и таблицы стилей
Выполнение пользовательских настроек графиков вручную
Изменяем значения по умолчанию: rcParams
Таблицы стилей
Построение трехмерных графиков в библиотеке Matplotlib
Трехмерные точки и линии
Трехмерные контурные графики
Каркасы и поверхностные графики
Триангуляция поверхностей
Отображение географических данных с помощью Basemap
Картографические проекции
Отрисовка фона карты
Нанесение данных на карты
Пример: города Калифорнии
Пример: данные о температуре на поверхности Земли
Визуализация с помощью библиотеки Seaborn
Seaborn по сравнению с Matplotlib
Анализируем графики библиотеки Seaborn
Пример: время прохождения марафона
Дополнительные источники информации
Источники информации о библиотеке Matplotlib
Другие графические библиотеки языка Python
Глава 5. Машинное обучение
Что такое машинное обучение
Категории машинного обучения
Качественные примеры прикладных задач машинного обучения
Классификация: предсказание дискретных меток
Резюме
Знакомство с библиотекой Scikit-Learn
Представление данных в Scikit-Learn
API статистического оценивания библиотеки Scikit-Learn
Прикладная задача: анализ рукописных цифр
Резюме
Гиперпараметры и проверка модели
Соображения относительно проверки модели
Выбор оптимальной модели
Кривые обучения
Проверка на практике: поиск по сетке
Резюме
Проектирование признаков
Категориальные признаки
Текстовые признаки
Признаки для изображений
Производные признаки
Внесение отсутствующих данных
Конвейеры признаков
Заглянем глубже: наивная байесовская классификация
Байесовская классификация
Гауссов наивный байесовский классификатор
Полиномиальный наивный байесовский классификатор
Когда имеет смысл использовать наивный байесовский классификатор
Заглянем глубже: линейная регрессия
Простая линейная регрессия
Регрессия по комбинации базисных функций
Регуляризация
Пример: предсказание велосипедного трафика
Заглянем глубже: метод опорных векторов
Основания для использования метода опорных векторов
Метод опорных векторов: максимизируем отступ
Пример: распознавание лиц
Резюме по методу опорных векторов
Заглянем глубже: деревья решений и случайные леса
Движущая сила случайных лесов: деревья принятия решений
Ансамбли оценивателей: случайные леса
Регрессия с помощью случайных лесов
Пример: использование случайного леса для классификации цифр
Резюме по случайным лесам
Заглянем глубже: метод главных компонент
Знакомство с методом главных компонент
Использование метода РСА для фильтрации шума
Пример: метод Eigenfaces
Резюме метода главных компонент
Заглянем глубже: обучение на базе многообразий
Обучение на базе многообразий: HELLO
Многомерное масштабирование (MDS)
MDS как обучение на базе многообразий
Нелинейные вложения: там, где MDS не работает
Нелинейные многообразия: локально линейное вложение
Некоторые соображения относительно методов обучения на базе многообразий
Пример: использование Isomap для распознавания лиц
Пример: визуализация структуры цифр
Знакомство с методом k-средних
Алгоритм к-средних: максимизация математического ожидания
Примеры
Заглянем глубже: смеси Гауссовых распределений
Причины появления GMM: недостатки метода k-средних
Обобщение ЕМ-модели: смеси Гауссовых распределений
GMM как метод оценки плотности распределения
Пример: использование метода GMM для генерации новых данных
Заглянем глубже: ядерная оценка плотности распределения
Обоснование метода KDE: гистограммы
Ядерная оценка плотности распределения на практике
Пример: KDE на сфере
Пример: не столь наивный байес
Прикладная задача: конвейер распознавания лиц
Метод HOG в действии: простой детектор лиц
Предостережения и дальнейшие усовершенствования
Дополнительные источники информации по машинному обучению
Машинное обучение в языке Python
Машинное обучение в целом
Об авторе