Python для сложных задач: наука о данных и машинное обучение: 16+ 🔍
Дж. Вандер Плас; [перевела с английского И. Пальти]
Питер, Бестселлеры O'Reilly, Санкт-Петербург [и др.], Russia, 2018
英语 [en] · 俄语 [ru] · PDF · 13.9MB · 2018 · 📘 非小说类图书 · 🚀/lgli/lgrs · Save
描述
Книга «Python Data Science Handbook» - это подробное руководство по самым разным вычислительным и статистическим методам, без которых немыслима любая интенсивная обработка данных, научные исследования и передовые разработки. Читатели, уже имеющие опыт программирования и желающие эффективно использовать Python в сфере Data Science, найдут в этой книге ответы на всевозможные вопросы, например:
1) как мне считать этот формат данных в мой скрипт?
2) Как преобразовать, очистить эти данные и манипулировать ими?
3) Как визуализировать данные такого типа? Как при помощи этих данных разобраться в ситуации, получить ответы на вопросы, построить статистические модели или реализовать машинное обучение?
https://github.com/jakevdp/PythonDataScienceHandbook
1) как мне считать этот формат данных в мой скрипт?
2) Как преобразовать, очистить эти данные и манипулировать ими?
3) Как визуализировать данные такого типа? Как при помощи этих данных разобраться в ситуации, получить ответы на вопросы, построить статистические модели или реализовать машинное обучение?
https://github.com/jakevdp/PythonDataScienceHandbook
备用文件名
lgrsnf/Плас - Python для сложных задач. Наука о данных и машинное обучение - 2018.pdf
备选标题
Python Data Science Handbook : Essential Tools for Working with Data
备选标题
Python dlya slozhnyh zadach. Nauka o dannyh i mashinnoe obuchenie
备选作者
Jacob T. Vanderplas; Jake VanderPlas
备选作者
Плас, Джейк Вандер
备选作者
Plas Dzh.
备选作者
Dzh. Plas
备用出版商
O'Reilly Media, Incorporated
备用出版商
Piter Press
备用出版商
Piter SPb
备用版本
First edition, Beijing; Boston; Farnham; Sebastopol; Tokyo, 2016
备用版本
Бестселлеры O'Reilly, Санкт-Петербург [и др.], Russia, 2020
备用版本
United States, United States of America
备用版本
O'Reilly Media, Sebastopol, CA, 2016
备用版本
First edition, Sebastopol, CA, 2016
备用版本
Russia, Russian Federation
备用版本
1st Edition, Dec 10, 2016
备用版本
Beijing, 2017
备用版本
1, PS, 2017
元数据中的注释
Фактическая дата выхода в свет - 2019
Пер.: Plas, Jake Vander Python data science handbook Beijing [etc.] : O'Reilly, cop. 2017 978-1491912058
Пер.: Plas, Jake Vander Python data science handbook Beijing [etc.] : O'Reilly, cop. 2017 978-1491912058
元数据中的注释
РГБ
元数据中的注释
Russian State Library [rgb] MARC:
=001 010135037
=005 20200818133845.0
=008 191025s2020\\\\ru\\\\\\\\\\\\|||\|\rus|d
=017 \\ $a КН-П-20-041981 $b RuMoRKP
=017 \\ $a КН-П-19-080267 $b RuMoRKP
=020 \\ $a 978-5-4461-0914-2
=040 \\ $a RuMoRGB $b rus $e rcr
=041 1\ $a rus $h eng
=044 \\ $a ru
=084 \\ $a З973.2-018.19Python,0 $2 rubbk
=100 1\ $a Плас, Джейк Вандер
=245 00 $a Python для сложных задач: наука о данных и машинное обучение : $b 16+ $c Дж. Вандер Плас ; [перевела с английского И. Пальти]
=260 \\ $a Санкт-Петербург [и др.] $b Питер $c 2020
=300 \\ $a 572, [1] с. $b ил., табл. $c 24 см
=336 \\ $a Текст (визуальный)
=337 \\ $a непосредственный
=490 0\ $a Бестселлеры O'Reilly
=500 \\ $a Фактическая дата выхода в свет - 2019
=534 \\ $p Пер.: $a Plas, Jake Vander $t Python data science handbook $c Beijing [etc.] : O'Reilly, cop. 2017 $z 978-1491912058
=650 \7 $a Техника. Технические науки -- Энергетика. Радиоэлектроника -- Радиоэлектроника -- Вычислительная техника -- Вычислительные машины электронные цифровые -- Программирование -- Языки программирования -- Python $2 rubbk
=852 \\ $a РГБ $b FB $j 3 19-60/157 $x 90
=852 7\ $a РГБ $b CZ2 $h З973.2-018/П37 $x 83
=852 \\ $a РГБ $b FB $j 3 20-32/18 $x 90
=852 \\ $a РГБ $b ORF $x 82
=001 010135037
=005 20200818133845.0
=008 191025s2020\\\\ru\\\\\\\\\\\\|||\|\rus|d
=017 \\ $a КН-П-20-041981 $b RuMoRKP
=017 \\ $a КН-П-19-080267 $b RuMoRKP
=020 \\ $a 978-5-4461-0914-2
=040 \\ $a RuMoRGB $b rus $e rcr
=041 1\ $a rus $h eng
=044 \\ $a ru
=084 \\ $a З973.2-018.19Python,0 $2 rubbk
=100 1\ $a Плас, Джейк Вандер
=245 00 $a Python для сложных задач: наука о данных и машинное обучение : $b 16+ $c Дж. Вандер Плас ; [перевела с английского И. Пальти]
=260 \\ $a Санкт-Петербург [и др.] $b Питер $c 2020
=300 \\ $a 572, [1] с. $b ил., табл. $c 24 см
=336 \\ $a Текст (визуальный)
=337 \\ $a непосредственный
=490 0\ $a Бестселлеры O'Reilly
=500 \\ $a Фактическая дата выхода в свет - 2019
=534 \\ $p Пер.: $a Plas, Jake Vander $t Python data science handbook $c Beijing [etc.] : O'Reilly, cop. 2017 $z 978-1491912058
=650 \7 $a Техника. Технические науки -- Энергетика. Радиоэлектроника -- Радиоэлектроника -- Вычислительная техника -- Вычислительные машины электронные цифровые -- Программирование -- Языки программирования -- Python $2 rubbk
=852 \\ $a РГБ $b FB $j 3 19-60/157 $x 90
=852 7\ $a РГБ $b CZ2 $h З973.2-018/П37 $x 83
=852 \\ $a РГБ $b FB $j 3 20-32/18 $x 90
=852 \\ $a РГБ $b ORF $x 82
元数据中的注释
Пер.: Plas, Jake Vander Python data science handbook Beijing [etc.]: O'Reilly 978-1491912058
元数据中的注释
Russian State Library [rgb] MARC:
=001 009883865
=005 20190214131403.0
=008 190211s2018\\\\ru\\\\\\\\\\\\000\|\rus|d
=017 \\ $a КН-П-19-007117 $b RuMoRKP
=020 \\ $a 978-5-4461-0914-2
=040 \\ $a RuMoRGB $b rus $e rcr
=041 1\ $a rus $h eng
=044 \\ $a ru
=084 \\ $a З973.2-018.19Python,0 $2 rubbk
=100 1\ $a Плас, Джейк Вандер
=245 00 $a Python для сложных задач: наука о данных и машинное обучение $h [Текст] $c Дж. Вандер Плас ; [перевела с английского И. Пальти]
=260 \\ $a Санкт-Петербург [и др.] $b Питер $c 2018
=300 \\ $a 572, [1] с. $b ил., табл. $c 23 см
=336 \\ $a текст (text) $b txt $2 rdacontent
=337 \\ $a неопосредованный (unmediated) $b n $2 rdamedia
=338 \\ $a том (volume) $b nc $2 rdacarrier
=490 0\ $a Бестселлеры O'Reilly
=534 \\ $p Пер.: $a Plas, Jake Vander $t Python data science handbook $c Beijing [etc.]: O'Reilly $z 978-1491912058
=650 \7 $a Вычислительная техника -- Вычислительные машины электронные цифровые -- Программирование -- Языки программирования -- Python $2 rubbk
=852 \\ $a РГБ $b FB $j 3 19-6/167 $x 90
=852 \\ $a РГБ $b ORF $x 82
=001 009883865
=005 20190214131403.0
=008 190211s2018\\\\ru\\\\\\\\\\\\000\|\rus|d
=017 \\ $a КН-П-19-007117 $b RuMoRKP
=020 \\ $a 978-5-4461-0914-2
=040 \\ $a RuMoRGB $b rus $e rcr
=041 1\ $a rus $h eng
=044 \\ $a ru
=084 \\ $a З973.2-018.19Python,0 $2 rubbk
=100 1\ $a Плас, Джейк Вандер
=245 00 $a Python для сложных задач: наука о данных и машинное обучение $h [Текст] $c Дж. Вандер Плас ; [перевела с английского И. Пальти]
=260 \\ $a Санкт-Петербург [и др.] $b Питер $c 2018
=300 \\ $a 572, [1] с. $b ил., табл. $c 23 см
=336 \\ $a текст (text) $b txt $2 rdacontent
=337 \\ $a неопосредованный (unmediated) $b n $2 rdamedia
=338 \\ $a том (volume) $b nc $2 rdacarrier
=490 0\ $a Бестселлеры O'Reilly
=534 \\ $p Пер.: $a Plas, Jake Vander $t Python data science handbook $c Beijing [etc.]: O'Reilly $z 978-1491912058
=650 \7 $a Вычислительная техника -- Вычислительные машины электронные цифровые -- Программирование -- Языки программирования -- Python $2 rubbk
=852 \\ $a РГБ $b FB $j 3 19-6/167 $x 90
=852 \\ $a РГБ $b ORF $x 82
备用描述
Оглавление
Предисловие
Что такое наука о данных
Для кого предназначена эта книга
Почему Python
Общая структура книги
Использование примеров кода
Вопросы установки
Условные обозначения
Глава 1. IPython: за пределами обычного Python
Командная строка или блокнот?
Запуск командной оболочки IPython
Запуск блокнота Jupiter
Справка и документация в оболочке IPython
Доступ к документации с помощью символа ?
Доступ к исходному коду с помощью символов ??
Просмотр содержимого модулей с помощью Tab-автодополнения
Автодополнение названий содержимого объектов с помощью клавиши Tab
Автодополнение с помощью клавиши Tab во время импорта
Помимо автодополнения табуляцией, подбор по джокерному символу
Сочетания горячих клавиш в командной оболочке IPython
Навигационные горячие клавиши
Горячие клавиши ввода текста
Горячие клавиши для истории команд
Прочие горячие клавиши
«Магические» команды IPython
Вставка блоков кода: %paste и %cpaste
Выполнение внешнего кода: %run
Длительность выполнения кода: %timeit
Справка по «магическим» функциям: ?, %magic и %lsmagic
История ввода и вывода
Объекты In и Out оболочки IPython
Быстрый доступ к предыдущим выводам с помощью знака подчеркивания
Подавление вывода
Соответствующие «магические» команды
Оболочка IPython и использование системного командного процессора
Краткое введение в использование командного процессора
Инструкции командного процессора в оболочке IPython
Передача значений в командный процессор и из него
«Магические» команды для командного процессора
Ошибки и отладка
Управление исключениями: %xmode
Отладка: что делать, если чтения трассировок недостаточно
Профилирование и мониторинг скорости выполнения кода
Оценка времени выполнения фрагментов кода: %timeit и %time
Профилирование сценариев целиком: %prun
Пошаговое профилирование с помощью %lprun
Профилирование использования памяти: %memit и %mprun
Дополнительные источники информации об оболочке IPython
Веб-ресурсы
Книги
Глава 2. Введение в библиотеку NumPy
Работа с типами данных в языке Python
Целое число в языке Python — больше, чем просто целое число
Список в языке Python — больше, чем просто список
Массивы с фиксированным типом в языке Python
Создание массивов из списков языка Python
Создание массивов с нуля
Стандартные типы данных библиотеки NumPy
Введение в массивы библиотеки NumPy
Атрибуты массивов библиотеки NumPy
Индексация массива: доступ к отдельным элементам
Срезы массивов: доступ к подмассивам
Одномерные подмассивы
Многомерные подмассивы
Доступ к строкам и столбцам массива
Подмассивы как предназначенные только для чтения представления
Создание копий массивов
Изменение формы массивов
Слияние и разбиение массивов
Слияние массивов
Разбиение массивов
Выполнение вычислений над массивами библиотеки NumPy: универсальные функции
Медлительность циклов
Введение в универсальные функции
Обзор универсальных функций библиотеки NumPy
Арифметические функции над массивами
Абсолютное значение
Тригонометрические функции
Показательные функции и логарифмы
Специализированные универсальные функции
Продвинутые возможности универсальных функций
Указание массива для вывода результата
Сводные показатели
Векторные произведения
Универсальные функции: дальнейшая информация
Агрегирование: минимум, максимум и все, что посередине
Суммирование значений из массива
Минимум и максимум
Многомерные сводные показатели
Другие функции агрегирования
Пример: чему равен средний рост президентов США
Пример: чему равен средний рост президентов США
Операции над массивами. Транслирование
Введение в транслирование
Правила транслирования
Транслирование. Пример 1
Транслирование. Пример 2
Транслирование. Пример 3
Транслирование на практике
Центрирование массива
Построение графика двумерной функции
Сравнения, маски и булева логика
Пример: подсчет количества дождливых дней
Операторы сравнения как универсальные функции
Работа с булевыми массивами
Подсчет количества элементов
Булевы операторы
Булевы массивы как маски
«Прихотливая» индексация
Исследуем возможности «прихотливой» индексации
Комбинированная индексация
Пример: выборка случайных точек
Изменение значений с помощью прихотливой индексации
Пример: разбиение данных на интервалы
Сортировка массивов
Быстрая сортировка в библиотеке NumPy: функции np.sort и np.argsort
Частичные сортировки: секционирование
Пример: K ближайших соседей
Структурированные данные: структурированные массивы библиотеки NumPy
Создание структурированных массивов
Более продвинутые типы данных
Массивы записей: структурированные массивы с дополнительными возможностями
Вперед, к Pandas
Глава 3. Манипуляции над данными с помощью пакета Pandas
Установка и использование библиотеки Pandas
Знакомство с объектами библиотеки Pandas
Объект Series библиотеки Pandas
Объект Series как обобщенный массив NumPy
Объект Series как специализированный словарь
Создание объектов Series
Объект DataFrame библиотеки Pandas
DataFrame как обобщенный массив NumPy
Объект DataFrame как специализированный словарь
Создание объектов DataFrame
Объект Index библиотеки Pandas
Объект Index как неизменяемый массив
Index как упорядоченное множество
Индексация и выборка данных
Выборка данных из объекта Series
Объект Series как словарь
Объект Series как одномерный массив
Индексаторы: loc, iloc и ix
Выборка данных из объекта DataFrame
Объект DataFrame как словарь
Объект DataFrame как двумерный массив
Дополнительный синтаксис для индексации
Операции над данными в библиотеке Pandas
Универсальные функции: сохранение индекса
Универсальные функции: выравнивание индексов
Выравнивание индексов в объектах Series
Выравнивание индексов в объектах DataFrame
Универсальные функции: выполнение операции между объектами DataFrame и Series
Обработка отсутствующих данных
Компромиссы при обозначении отсутствующих данных
Отсутствующие данные в библиотеке Pandas
None: отсутствующие данные в языке Python
NaN: отсутствующие числовые данные
Значения NaN и None в библиотеке Pandas
Операции над пустыми значениями
Выявление пустых значений
Удаление пустых значений
Заполнение пустых значений
Иерархическая индексация
Мультииндексированный объект Series
Плохой способ
Лучший способ
Мультииндекс как дополнительное измерение
Методы создания мультииндексов
Явные конструкторы для объектов MultiIndex
Названия уровней мультииндексов
Мультииндекс для столбцов
Индексация и срезы по мультииндексу
Мультииндексация объектов Series
Мультииндексация объектов DataFrame
Перегруппировка мультииндексов
Отсортированные и неотсортированные индексы
Выполнение над индексами операций stack и unstack
Создание и перестройка индексов
Агрегирование по мультииндексам
Объединение наборов данных: конкатенация и добавление в конец
Напоминание: конкатенация массивов NumPy
Простая конкатенация с помощью метода pd.concat
Дублирование индексов
Конкатенация с использованием соединений
Метод append()
Объединение наборов данных: слияние и соединение
Реляционная алгебра
Виды соединений
Соединения «один-к-одному»
Соединения «многие-к-одному»
Соединения «многие-ко-многим»
Задание ключа слияния
Ключевое слово on
Ключевые слова left_on и right_on
Ключевые слова left_index и right_index
Задание операций над множествами для соединений
Пересекающиеся названия столбцов: ключевое слово suffixes
Пример: данные по штатам США
Агрегирование и группировка
Данные о планетах
Простое агрегирование в библиотеке Pandas
GroupBy: разбиение, применение, объединение
Разбиение, применение и объединение
Объект GroupBy
Агрегирование, фильтрация, преобразование, применение
Задание ключа разбиения
Пример группировки
Сводные таблицы
Данные для примеров работы со сводными таблицами
Сводные таблицы «вручную»
Синтаксис сводных таблиц
Многоуровневые сводные таблицы
Дополнительные параметры сводных таблиц
Пример: данные о рождаемости
Векторизованные операции над строками
Знакомство со строковыми операциями библиотеки Pandas
Таблицы методов работы со строками библиотеки Pandas
Методы, аналогичные строковым методам языка Python
Методы, использующие регулярные выражения
Прочие методы
Пример: база данных рецептов
Простая рекомендательная система для рецептов
Дальнейшая работа с рецептами
Работа с временными рядами
Дата и время в языке Python
Нативные даты и время языка Python: пакеты datetime и dateutil
Типизированные массивы значений времени: тип datetime64 библиотеки NumPy
Даты и время в библиотеке Pandas: избранное из лучшего
Временные ряды библиотеки Pandas: индексация по времени
Структуры данных для временных рядов библиотеки Pandas
Периодичность и смещения дат
Передискретизация, временные сдвиги и окна
Передискретизация и изменение периодичности интервалов
Временные сдвиги
Скользящие окна
Где найти дополнительную информацию
Пример: визуализация количества велосипедов в Сиэтле
Визуализация данных
Углубляемся в изучение данных
Увеличение производительности библиотеки Pandas: eval() и query()
Основания для использования функций query() и eval(): составные выражения
Использование функции pandas.eval() для эффективных операций
Использование метода DataFrame.eval() для выполнения операций по столбцам
Присваивание в методе DataFrame.eval()
Локальные переменные в методе DataFrame.eval()
Метод DataFrame.query()
Производительность: когда следует использовать эти функции
Дополнительные источники информации
Глава 4. Визуализация с помощью библиотеки Matplotlib
Общие советы по библиотеке Matplotlib
Импорт matplotlib
Настройка стилей
Использовать show() или не использовать? Как отображать свои графики
Построение графиков из сценария
Построение графиков из командной оболочки IPython
Построение графиков из блокнота IPython
Сохранение рисунков в файл
Два интерфейса по цене одного
Интерфейс в стиле MATLAB
Объектно-ориентированный интерфейс
Простые линейные графики
Настройка графика: цвета и стили линий
Настройка графика: пределы осей координат
Метки на графиках
Простые диаграммы рассеяния
Построение диаграмм рассеяния с помощью функции plt.plot
Построение диаграмм рассеяния с помощью функции plt.scatter
Сравнение функций plot и scatter: примечание относительно производительности
Визуализация погрешностей
Простые планки погрешностей
Непрерывные погрешности
Графики плотности и контурные графики
Гистограммы, разбиения по интервалам и плотность
Двумерные гистограммы и разбиения по интервалам
Функция plt.hist2d: двумерная гистограмма
Функция plt.hexbin: гексагональное разбиение по интервалам
Ядерная оценка плотности распределения
Пользовательские настройки легенд на графиках
Выбор элементов для легенды
Задание легенды для точек различного размера
Отображение нескольких легенд
Пользовательские настройки шкал цветов
Выбор карты цветов
Ограничения и расширенные возможности по использованию цветов
Дискретные шкалы цветов
Пример: рукописные цифры
Множественные субграфики
plt.axes: создание субграфиков вручную
plt.subplot: простые сетки субграфиков
Функция plt.subplots: создание всей сетки за один раз
Функция plt.GridSpec: более сложные конфигурации
Текст и поясняющие надписи
Пример: влияние выходных дней на рождение детей в США
Преобразования и координаты текста
Стрелки и поясняющие надписи
Пользовательские настройки делений на осях координат
Основные и промежуточные деления осей координат
Прячем деления и/или метки
Уменьшение или увеличение количества делений
Более экзотические форматы делений
Краткая сводка локаторов и форматеров
Пользовательские настройки Matplotlib: конфигурации и таблицы стилей
Выполнение пользовательских настроек графиков вручную
Изменяем значения по умолчанию: rcParams
Таблицы стилей
Стиль по умолчанию
Стиль FiveThirtyEight
ggplot
Стиль «байесовские методы для хакеров»
Темный фон
Оттенки серого
Стиль Seaborn
Построение трехмерных графиков в библиотеке Matplotlib
Трехмерные точки и линии
Трехмерные контурные графики
Каркасы и поверхностные графики
Триангуляция поверхностей
Отображение географических данных с помощью Basemap
Картографические проекции
Цилиндрические проекции
Псевдоцилиндрические проекции
Перспективные проекции
Конические проекции
Другие проекции
Отрисовка фона карты
Нанесение данных на карты
Пример: города Калифорнии
Пример: данные о температуре на поверхности Земли
Визуализация с помощью библиотеки Seaborn
Seaborn по сравнению с Matplotlib
Анализируем графики библиотеки Seaborn
Гистограммы, KDE и плотности
Фасетные гистограммы
Графики факторов
Совместные распределения
Столбчатые диаграммы
Пример: время прохождения марафона
Дополнительные источники информации
Источники информации о библиотеке Matplotlib
Другие графические библиотеки языка Python
Глава 5. Машинное обучение
Что такое машинное обучение
Категории машинного обучения
Качественные примеры прикладных задач машинного обучения
Классификация: предсказание дискретных меток
Регрессия: предсказание непрерывных меток
Кластеризация: определение меток для немаркированных данных
Понижение размерности
Резюме
Знакомство с библиотекой Scikit-Learn
Представление данных в Scikit-Learn
Данные как таблица
Матрица признаков
Целевой массив
API статистического оценивания библиотеки Scikit-Learn
Основы API статистического оценивания
Пример обучения с учителем: простая линейная регрессия
Пример обучения с учителем: классификация набора данных Iris
Пример обучения без учителя: понижение размерности набора данных Iris
Обучение без учителя: кластеризация набора данных Iris
Прикладная задача: анализ рукописных цифр
Загрузка и визуализация цифр
Обучение без учителя: понижение размерности
Классификация цифр
Резюме
Гиперпараметры и проверка модели
Соображения относительно проверки модели
Плохой способ проверки модели
Хороший способ проверки модели: отложенные данные
Перекрестная проверка модели
Выбор оптимальной модели
Компромисс между систематической ошибкой и дисперсией
Кривые проверки в библиотеке Scikit-Learn
Кривые обучения
Проверка на практике: поиск по сетке
Резюме
Проектирование признаков
Категориальные признаки
Текстовые признаки
Признаки для изображений
Производные признаки
Внесение отсутствующих данных
Конвейеры признаков
Заглянем глубже: наивная байесовская классификация
Байесовская классификация
Гауссов наивный байесовский классификатор
Полиномиальный наивный байесовский классификатор
Когда имеет смысл использовать наивный байесовский классификатор
Заглянем глубже: линейная регрессия
Простая линейная регрессия
Регрессия по комбинации базисных функций
Полиномиальные базисные функции
Гауссовы базисные функции
Регуляризация
Гребневая регрессия (L2-регуляризация)
Лассо-регуляризация (L1)
Пример: предсказание велосипедного трафика
Заглянем глубже: метод опорных векторов
Основания для использования метода опорных векторов
Метод опорных векторов: максимизируем отступ
Аппроксимация методом опорных векторов
Выходим за границы линейности: SVM-ядро
Настройка SVM: размытие отступов
Пример: распознавание лиц
Резюме по методу опорных векторов
Заглянем глубже: деревья решений и случайные леса
Движущая сила случайных лесов: деревья принятия решений
Создание дерева принятия решений
Деревья принятия решений и переобучение
Ансамбли оценивателей: случайные леса
Регрессия с помощью случайных лесов
Пример: использование случайного леса для классификации цифр
Резюме по случайным лесам
Заглянем глубже: метод главных компонентов
Знакомство с методом главных компонентов
PCA как метод понижения размерности
Использование метода PCA для визуализации: рукописные цифры
В чем смысл компонент?
Выбор количества компонент
Использование метода PCA для фильтрации шума
Пример: метод Eigenfaces
Резюме метода главных компонентов
Заглянем глубже: обучение на базе многообразий
Обучение на базе многообразий: HELLO
Многомерное масштабирование (MDS)
MDS как обучение на базе многообразий
Нелинейные вложения: там, где MDS не работает
Нелинейные многообразия: локально линейное вложение
Некоторые соображения относительно методов обучения на базе многообразий
Пример: использование Isomap для распознавания лиц
Пример: визуализация структуры цифр
Заглянем глубже: кластеризация методом k-средних
Знакомство с методом k-средних
Алгоритм k-средних: максимизация математического ожидания
Примеры
Пример 1: применение метода k-средних для рукописных цифр
Пример 2: использование метода k-средних для сжатия цветов
Заглянем глубже: смеси гауссовых распределений
Причины появления GMM: недостатки метода k-средних
Обобщение EM-модели: смеси гауссовых распределений
Выбор типа ковариации
GMM как метод оценки плотности распределения
Сколько компонент необходимо?
Пример: использование метода GMM для генерации новых данных
Заглянем глубже: ядерная оценка плотности распределения
Обоснование метода KDE: гистограммы
Ядерная оценка плотности распределения на практике
Пример: KDE на сфере
Пример: не столь наивный байес
Внутреннее устройство пользовательского оценивателя
Использование пользовательского оценивателя
Прикладная задача: конвейер распознавания лиц
Признаки в методе HOG
Метод HOG в действии: простой детектор лиц
Предостережения и дальнейшие усовершенствования
Дополнительные источники информации по машинному обучению
Машинное обучение в языке Python
Машинное обучение в целом
Об авторе
Предисловие
Что такое наука о данных
Для кого предназначена эта книга
Почему Python
Общая структура книги
Использование примеров кода
Вопросы установки
Условные обозначения
Глава 1. IPython: за пределами обычного Python
Командная строка или блокнот?
Запуск командной оболочки IPython
Запуск блокнота Jupiter
Справка и документация в оболочке IPython
Доступ к документации с помощью символа ?
Доступ к исходному коду с помощью символов ??
Просмотр содержимого модулей с помощью Tab-автодополнения
Автодополнение названий содержимого объектов с помощью клавиши Tab
Автодополнение с помощью клавиши Tab во время импорта
Помимо автодополнения табуляцией, подбор по джокерному символу
Сочетания горячих клавиш в командной оболочке IPython
Навигационные горячие клавиши
Горячие клавиши ввода текста
Горячие клавиши для истории команд
Прочие горячие клавиши
«Магические» команды IPython
Вставка блоков кода: %paste и %cpaste
Выполнение внешнего кода: %run
Длительность выполнения кода: %timeit
Справка по «магическим» функциям: ?, %magic и %lsmagic
История ввода и вывода
Объекты In и Out оболочки IPython
Быстрый доступ к предыдущим выводам с помощью знака подчеркивания
Подавление вывода
Соответствующие «магические» команды
Оболочка IPython и использование системного командного процессора
Краткое введение в использование командного процессора
Инструкции командного процессора в оболочке IPython
Передача значений в командный процессор и из него
«Магические» команды для командного процессора
Ошибки и отладка
Управление исключениями: %xmode
Отладка: что делать, если чтения трассировок недостаточно
Профилирование и мониторинг скорости выполнения кода
Оценка времени выполнения фрагментов кода: %timeit и %time
Профилирование сценариев целиком: %prun
Пошаговое профилирование с помощью %lprun
Профилирование использования памяти: %memit и %mprun
Дополнительные источники информации об оболочке IPython
Веб-ресурсы
Книги
Глава 2. Введение в библиотеку NumPy
Работа с типами данных в языке Python
Целое число в языке Python — больше, чем просто целое число
Список в языке Python — больше, чем просто список
Массивы с фиксированным типом в языке Python
Создание массивов из списков языка Python
Создание массивов с нуля
Стандартные типы данных библиотеки NumPy
Введение в массивы библиотеки NumPy
Атрибуты массивов библиотеки NumPy
Индексация массива: доступ к отдельным элементам
Срезы массивов: доступ к подмассивам
Одномерные подмассивы
Многомерные подмассивы
Доступ к строкам и столбцам массива
Подмассивы как предназначенные только для чтения представления
Создание копий массивов
Изменение формы массивов
Слияние и разбиение массивов
Слияние массивов
Разбиение массивов
Выполнение вычислений над массивами библиотеки NumPy: универсальные функции
Медлительность циклов
Введение в универсальные функции
Обзор универсальных функций библиотеки NumPy
Арифметические функции над массивами
Абсолютное значение
Тригонометрические функции
Показательные функции и логарифмы
Специализированные универсальные функции
Продвинутые возможности универсальных функций
Указание массива для вывода результата
Сводные показатели
Векторные произведения
Универсальные функции: дальнейшая информация
Агрегирование: минимум, максимум и все, что посередине
Суммирование значений из массива
Минимум и максимум
Многомерные сводные показатели
Другие функции агрегирования
Пример: чему равен средний рост президентов США
Пример: чему равен средний рост президентов США
Операции над массивами. Транслирование
Введение в транслирование
Правила транслирования
Транслирование. Пример 1
Транслирование. Пример 2
Транслирование. Пример 3
Транслирование на практике
Центрирование массива
Построение графика двумерной функции
Сравнения, маски и булева логика
Пример: подсчет количества дождливых дней
Операторы сравнения как универсальные функции
Работа с булевыми массивами
Подсчет количества элементов
Булевы операторы
Булевы массивы как маски
«Прихотливая» индексация
Исследуем возможности «прихотливой» индексации
Комбинированная индексация
Пример: выборка случайных точек
Изменение значений с помощью прихотливой индексации
Пример: разбиение данных на интервалы
Сортировка массивов
Быстрая сортировка в библиотеке NumPy: функции np.sort и np.argsort
Частичные сортировки: секционирование
Пример: K ближайших соседей
Структурированные данные: структурированные массивы библиотеки NumPy
Создание структурированных массивов
Более продвинутые типы данных
Массивы записей: структурированные массивы с дополнительными возможностями
Вперед, к Pandas
Глава 3. Манипуляции над данными с помощью пакета Pandas
Установка и использование библиотеки Pandas
Знакомство с объектами библиотеки Pandas
Объект Series библиотеки Pandas
Объект Series как обобщенный массив NumPy
Объект Series как специализированный словарь
Создание объектов Series
Объект DataFrame библиотеки Pandas
DataFrame как обобщенный массив NumPy
Объект DataFrame как специализированный словарь
Создание объектов DataFrame
Объект Index библиотеки Pandas
Объект Index как неизменяемый массив
Index как упорядоченное множество
Индексация и выборка данных
Выборка данных из объекта Series
Объект Series как словарь
Объект Series как одномерный массив
Индексаторы: loc, iloc и ix
Выборка данных из объекта DataFrame
Объект DataFrame как словарь
Объект DataFrame как двумерный массив
Дополнительный синтаксис для индексации
Операции над данными в библиотеке Pandas
Универсальные функции: сохранение индекса
Универсальные функции: выравнивание индексов
Выравнивание индексов в объектах Series
Выравнивание индексов в объектах DataFrame
Универсальные функции: выполнение операции между объектами DataFrame и Series
Обработка отсутствующих данных
Компромиссы при обозначении отсутствующих данных
Отсутствующие данные в библиотеке Pandas
None: отсутствующие данные в языке Python
NaN: отсутствующие числовые данные
Значения NaN и None в библиотеке Pandas
Операции над пустыми значениями
Выявление пустых значений
Удаление пустых значений
Заполнение пустых значений
Иерархическая индексация
Мультииндексированный объект Series
Плохой способ
Лучший способ
Мультииндекс как дополнительное измерение
Методы создания мультииндексов
Явные конструкторы для объектов MultiIndex
Названия уровней мультииндексов
Мультииндекс для столбцов
Индексация и срезы по мультииндексу
Мультииндексация объектов Series
Мультииндексация объектов DataFrame
Перегруппировка мультииндексов
Отсортированные и неотсортированные индексы
Выполнение над индексами операций stack и unstack
Создание и перестройка индексов
Агрегирование по мультииндексам
Объединение наборов данных: конкатенация и добавление в конец
Напоминание: конкатенация массивов NumPy
Простая конкатенация с помощью метода pd.concat
Дублирование индексов
Конкатенация с использованием соединений
Метод append()
Объединение наборов данных: слияние и соединение
Реляционная алгебра
Виды соединений
Соединения «один-к-одному»
Соединения «многие-к-одному»
Соединения «многие-ко-многим»
Задание ключа слияния
Ключевое слово on
Ключевые слова left_on и right_on
Ключевые слова left_index и right_index
Задание операций над множествами для соединений
Пересекающиеся названия столбцов: ключевое слово suffixes
Пример: данные по штатам США
Агрегирование и группировка
Данные о планетах
Простое агрегирование в библиотеке Pandas
GroupBy: разбиение, применение, объединение
Разбиение, применение и объединение
Объект GroupBy
Агрегирование, фильтрация, преобразование, применение
Задание ключа разбиения
Пример группировки
Сводные таблицы
Данные для примеров работы со сводными таблицами
Сводные таблицы «вручную»
Синтаксис сводных таблиц
Многоуровневые сводные таблицы
Дополнительные параметры сводных таблиц
Пример: данные о рождаемости
Векторизованные операции над строками
Знакомство со строковыми операциями библиотеки Pandas
Таблицы методов работы со строками библиотеки Pandas
Методы, аналогичные строковым методам языка Python
Методы, использующие регулярные выражения
Прочие методы
Пример: база данных рецептов
Простая рекомендательная система для рецептов
Дальнейшая работа с рецептами
Работа с временными рядами
Дата и время в языке Python
Нативные даты и время языка Python: пакеты datetime и dateutil
Типизированные массивы значений времени: тип datetime64 библиотеки NumPy
Даты и время в библиотеке Pandas: избранное из лучшего
Временные ряды библиотеки Pandas: индексация по времени
Структуры данных для временных рядов библиотеки Pandas
Периодичность и смещения дат
Передискретизация, временные сдвиги и окна
Передискретизация и изменение периодичности интервалов
Временные сдвиги
Скользящие окна
Где найти дополнительную информацию
Пример: визуализация количества велосипедов в Сиэтле
Визуализация данных
Углубляемся в изучение данных
Увеличение производительности библиотеки Pandas: eval() и query()
Основания для использования функций query() и eval(): составные выражения
Использование функции pandas.eval() для эффективных операций
Использование метода DataFrame.eval() для выполнения операций по столбцам
Присваивание в методе DataFrame.eval()
Локальные переменные в методе DataFrame.eval()
Метод DataFrame.query()
Производительность: когда следует использовать эти функции
Дополнительные источники информации
Глава 4. Визуализация с помощью библиотеки Matplotlib
Общие советы по библиотеке Matplotlib
Импорт matplotlib
Настройка стилей
Использовать show() или не использовать? Как отображать свои графики
Построение графиков из сценария
Построение графиков из командной оболочки IPython
Построение графиков из блокнота IPython
Сохранение рисунков в файл
Два интерфейса по цене одного
Интерфейс в стиле MATLAB
Объектно-ориентированный интерфейс
Простые линейные графики
Настройка графика: цвета и стили линий
Настройка графика: пределы осей координат
Метки на графиках
Простые диаграммы рассеяния
Построение диаграмм рассеяния с помощью функции plt.plot
Построение диаграмм рассеяния с помощью функции plt.scatter
Сравнение функций plot и scatter: примечание относительно производительности
Визуализация погрешностей
Простые планки погрешностей
Непрерывные погрешности
Графики плотности и контурные графики
Гистограммы, разбиения по интервалам и плотность
Двумерные гистограммы и разбиения по интервалам
Функция plt.hist2d: двумерная гистограмма
Функция plt.hexbin: гексагональное разбиение по интервалам
Ядерная оценка плотности распределения
Пользовательские настройки легенд на графиках
Выбор элементов для легенды
Задание легенды для точек различного размера
Отображение нескольких легенд
Пользовательские настройки шкал цветов
Выбор карты цветов
Ограничения и расширенные возможности по использованию цветов
Дискретные шкалы цветов
Пример: рукописные цифры
Множественные субграфики
plt.axes: создание субграфиков вручную
plt.subplot: простые сетки субграфиков
Функция plt.subplots: создание всей сетки за один раз
Функция plt.GridSpec: более сложные конфигурации
Текст и поясняющие надписи
Пример: влияние выходных дней на рождение детей в США
Преобразования и координаты текста
Стрелки и поясняющие надписи
Пользовательские настройки делений на осях координат
Основные и промежуточные деления осей координат
Прячем деления и/или метки
Уменьшение или увеличение количества делений
Более экзотические форматы делений
Краткая сводка локаторов и форматеров
Пользовательские настройки Matplotlib: конфигурации и таблицы стилей
Выполнение пользовательских настроек графиков вручную
Изменяем значения по умолчанию: rcParams
Таблицы стилей
Стиль по умолчанию
Стиль FiveThirtyEight
ggplot
Стиль «байесовские методы для хакеров»
Темный фон
Оттенки серого
Стиль Seaborn
Построение трехмерных графиков в библиотеке Matplotlib
Трехмерные точки и линии
Трехмерные контурные графики
Каркасы и поверхностные графики
Триангуляция поверхностей
Отображение географических данных с помощью Basemap
Картографические проекции
Цилиндрические проекции
Псевдоцилиндрические проекции
Перспективные проекции
Конические проекции
Другие проекции
Отрисовка фона карты
Нанесение данных на карты
Пример: города Калифорнии
Пример: данные о температуре на поверхности Земли
Визуализация с помощью библиотеки Seaborn
Seaborn по сравнению с Matplotlib
Анализируем графики библиотеки Seaborn
Гистограммы, KDE и плотности
Фасетные гистограммы
Графики факторов
Совместные распределения
Столбчатые диаграммы
Пример: время прохождения марафона
Дополнительные источники информации
Источники информации о библиотеке Matplotlib
Другие графические библиотеки языка Python
Глава 5. Машинное обучение
Что такое машинное обучение
Категории машинного обучения
Качественные примеры прикладных задач машинного обучения
Классификация: предсказание дискретных меток
Регрессия: предсказание непрерывных меток
Кластеризация: определение меток для немаркированных данных
Понижение размерности
Резюме
Знакомство с библиотекой Scikit-Learn
Представление данных в Scikit-Learn
Данные как таблица
Матрица признаков
Целевой массив
API статистического оценивания библиотеки Scikit-Learn
Основы API статистического оценивания
Пример обучения с учителем: простая линейная регрессия
Пример обучения с учителем: классификация набора данных Iris
Пример обучения без учителя: понижение размерности набора данных Iris
Обучение без учителя: кластеризация набора данных Iris
Прикладная задача: анализ рукописных цифр
Загрузка и визуализация цифр
Обучение без учителя: понижение размерности
Классификация цифр
Резюме
Гиперпараметры и проверка модели
Соображения относительно проверки модели
Плохой способ проверки модели
Хороший способ проверки модели: отложенные данные
Перекрестная проверка модели
Выбор оптимальной модели
Компромисс между систематической ошибкой и дисперсией
Кривые проверки в библиотеке Scikit-Learn
Кривые обучения
Проверка на практике: поиск по сетке
Резюме
Проектирование признаков
Категориальные признаки
Текстовые признаки
Признаки для изображений
Производные признаки
Внесение отсутствующих данных
Конвейеры признаков
Заглянем глубже: наивная байесовская классификация
Байесовская классификация
Гауссов наивный байесовский классификатор
Полиномиальный наивный байесовский классификатор
Когда имеет смысл использовать наивный байесовский классификатор
Заглянем глубже: линейная регрессия
Простая линейная регрессия
Регрессия по комбинации базисных функций
Полиномиальные базисные функции
Гауссовы базисные функции
Регуляризация
Гребневая регрессия (L2-регуляризация)
Лассо-регуляризация (L1)
Пример: предсказание велосипедного трафика
Заглянем глубже: метод опорных векторов
Основания для использования метода опорных векторов
Метод опорных векторов: максимизируем отступ
Аппроксимация методом опорных векторов
Выходим за границы линейности: SVM-ядро
Настройка SVM: размытие отступов
Пример: распознавание лиц
Резюме по методу опорных векторов
Заглянем глубже: деревья решений и случайные леса
Движущая сила случайных лесов: деревья принятия решений
Создание дерева принятия решений
Деревья принятия решений и переобучение
Ансамбли оценивателей: случайные леса
Регрессия с помощью случайных лесов
Пример: использование случайного леса для классификации цифр
Резюме по случайным лесам
Заглянем глубже: метод главных компонентов
Знакомство с методом главных компонентов
PCA как метод понижения размерности
Использование метода PCA для визуализации: рукописные цифры
В чем смысл компонент?
Выбор количества компонент
Использование метода PCA для фильтрации шума
Пример: метод Eigenfaces
Резюме метода главных компонентов
Заглянем глубже: обучение на базе многообразий
Обучение на базе многообразий: HELLO
Многомерное масштабирование (MDS)
MDS как обучение на базе многообразий
Нелинейные вложения: там, где MDS не работает
Нелинейные многообразия: локально линейное вложение
Некоторые соображения относительно методов обучения на базе многообразий
Пример: использование Isomap для распознавания лиц
Пример: визуализация структуры цифр
Заглянем глубже: кластеризация методом k-средних
Знакомство с методом k-средних
Алгоритм k-средних: максимизация математического ожидания
Примеры
Пример 1: применение метода k-средних для рукописных цифр
Пример 2: использование метода k-средних для сжатия цветов
Заглянем глубже: смеси гауссовых распределений
Причины появления GMM: недостатки метода k-средних
Обобщение EM-модели: смеси гауссовых распределений
Выбор типа ковариации
GMM как метод оценки плотности распределения
Сколько компонент необходимо?
Пример: использование метода GMM для генерации новых данных
Заглянем глубже: ядерная оценка плотности распределения
Обоснование метода KDE: гистограммы
Ядерная оценка плотности распределения на практике
Пример: KDE на сфере
Пример: не столь наивный байес
Внутреннее устройство пользовательского оценивателя
Использование пользовательского оценивателя
Прикладная задача: конвейер распознавания лиц
Признаки в методе HOG
Метод HOG в действии: простой детектор лиц
Предостережения и дальнейшие усовершенствования
Дополнительные источники информации по машинному обучению
Машинное обучение в языке Python
Машинное обучение в целом
Об авторе
备用描述
For many researchers, Python is a first-class tool mainly because of its libraries for storing, manipulating, and gaining insight from data. Several resources exist for individual pieces of this data science stack, but only with the Python Data Science Handbook do you get them allIPython, NumPy, Pandas, Matplotlib, Scikit-Learn, and other related tools. Working scientists and data crunchers familiar with reading and writing Python code will find this comprehensive desk reference ideal for tackling day-to-day issues: manipulating, transforming, and cleaning data; visualizing different types of data; and using data to build statistical or machine learning models. Quite simply, this is the must-have reference for scientific computing in Python. With this handbook, youll learn how to use: IPython and Jupyter: provide computational environments for data scientists using Python NumPy: includes the ndarray for efficient storage and manipulation of dense data arrays in Python Pandas: features the DataFrame for efficient storage and manipulation of labeled/columnar data in Python Matplotlib: includes capabilities for a flexible range of data visualizations in Python Scikit-Learn: for efficient and clean Python implementations of the most important and established machine learning algorithms
备用描述
For Many Researchers, Python Is A First-class Tool Mainly Because Of Its Libraries For Storing, Manipulating, And Gaining Insight From Data. Several Resources Exist For Individual Pieces Of This Data Science Stack, But Only With The Python Data Science Handbook Do You Get Them All—ipython, Numpy, Pandas, Matplotlib, Scikit-learn, And Other Related Tools. Working Scientists And Data Crunchers Familiar With Reading And Writing Python Code Will Find This Comprehensive Desk Reference Ideal For Tackling Day-to-day Issues: Manipulating, Transforming, And Cleaning Data; Visualizing Different Types Of Data; And Using Data To Build Statistical Or Machine Learning Models. Quite Simply, This Is The Must-have Reference For Scientific Computing In Python.-- Ipython: Beyond Normal Python -- Introduction To Numpy -- Data Manipulation With Pandas -- Visualization With Matplatlib -- Machine Learning. Jake Vanderplas. Includes Index.
备用描述
Kniga Python Data Science Handbook - eto podrobnoe rukovodstvo po samym raznym vychislitelnym i statisticheskim metodam, bez kotorykh nemyslima liubaia intensivnaia obrabotka dannykh, nauchnye issledovaniia i peredovye razrabotki. Chitateli, uzhe imeiushchie opyt programmirovaniia i zhelaiushchie effektivno ispolzovat Python v sfere Data Science, naidut v etoi knige otvety na vsevozmozhnye voprosy, naprimer: 1) kak mne schitat etot format dannykh v moi skript? 2) Kak preobrazovat, ochistit eti dannye i manipulirovat imi? 3) Kak vizualizirovat dannye takogo tipa? Kak pri pomoshchi etikh dannykh razobratsia v situatcii, poluchit otvety na voprosy, postroit statisticheskie modeli ili realizovat mashinnoe obuchenie?
备用描述
**Revision History**
December 2016: First Edition
2016-11-17: First Release
December 2016: First Edition
2016-11-17: First Release
开源日期
2023-11-21
🚀 快速下载
成为会员以支持书籍、论文等的长期保存。为了感谢您对我们的支持,您将获得高速下载权益。❤️
🐢 低速下载
由可信的合作方提供。 更多信息请参见常见问题解答。 (可能需要验证浏览器——无限次下载!)
- 低速服务器(合作方提供) #1 (稍快但需要排队)
- 低速服务器(合作方提供) #2 (稍快但需要排队)
- 低速服务器(合作方提供) #3 (稍快但需要排队)
- 低速服务器(合作方提供) #4 (稍快但需要排队)
- 低速服务器(合作方提供) #5 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #6 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #7 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #8 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #9 (无需排队,但可能非常慢)
- 下载后: 在我们的查看器中打开
所有选项下载的文件都相同,应该可以安全使用。即使这样,从互联网下载文件时始终要小心。例如,确保您的设备更新及时。
外部下载
-
对于大文件,我们建议使用下载管理器以防止中断。
推荐的下载管理器:JDownloader -
您将需要一个电子书或 PDF 阅读器来打开文件,具体取决于文件格式。
推荐的电子书阅读器:Anna的档案在线查看器、ReadEra和Calibre -
使用在线工具进行格式转换。
推荐的转换工具:CloudConvert和PrintFriendly -
您可以将 PDF 和 EPUB 文件发送到您的 Kindle 或 Kobo 电子阅读器。
推荐的工具:亚马逊的“发送到 Kindle”和djazz 的“发送到 Kobo/Kindle” -
支持作者和图书馆
✍️ 如果您喜欢这个并且能够负担得起,请考虑购买原版,或直接支持作者。
📚 如果您当地的图书馆有这本书,请考虑在那里免费借阅。
下面的文字仅以英文继续。
总下载量:
“文件的MD5”是根据文件内容计算出的哈希值,并且基于该内容具有相当的唯一性。我们这里索引的所有影子图书馆都主要使用MD5来标识文件。
一个文件可能会出现在多个影子图书馆中。有关我们编译的各种数据集的信息,请参见数据集页面。
有关此文件的详细信息,请查看其JSON 文件。 Live/debug JSON version. Live/debug page.