Python для сложных задач: наука о данных и машинное обучение - Дж. Плас вандер - E-Book

Python для сложных задач: наука о данных и машинное обучение E-Book

Дж. Плас вандер

0,0

Beschreibung

Книга «Python Data Science Handbook» - это подробное руководство по самым разным вычислительным и статистическим методам, без которых немыслима любая интенсивная обработка данных, научные исследования и передовые разработки. Читатели, уже имеющие опыт программирования и желающие эффективно использовать Python в сфере Data Science, найдут в этой книге ответы на всевозможные вопросы, например: 1) как мне считать этот формат данных в мой скрипт? 2) Как преобразовать, очистить эти данные и манипулировать ими? 3) Как визуализировать данные такого типа? Как при помощи этих данных разобраться в ситуации, получить ответы на вопросы, построить статистические модели или реализовать машинное обучение?

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern
Kindle™-E-Readern
(für ausgewählte Pakete)

Seitenzahl: 549

Veröffentlichungsjahr: 2022

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Дж. Плас вандер
Python для сложных задач: наука о данных и машинное обучение
2021

Художники С. Заматевская , В. Мостипан

Дж. Плас вандер

Python для сложных задач: наука о данных и машинное обучение. — СПб.: Питер, 2021.

ISBN 978-5-4461-0914-2

© ООО Издательство "Питер", 2021

Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.

Оглавление

Предисловие
Что такое наука о данных
Для кого предназначена эта книга
Почему Python
Общая структура книги
Использование примеров кода
Вопросы установки
Условные обозначения
1. Python: за пределами обычного Python
Командная строка или блокнот?
Справка и документация в оболочке IPython
Сочетания горячих клавиш в командной оболочке IPython
«Магические» команды IPython
История ввода и вывода
Оболочка IPython и использование системного командного процессора
«Магические» команды для командного процессора
Ошибки и отладка
Профилирование и мониторинг скорости выполнения кода
Дополнительные источники информации об оболочке IPython
2. Введение в библиотеку NumPy
Работа с типами данных в языке Python
Введение в массивы библиотеки NumPy
Выполнение вычислений над массивами библиотеки NumPy: универсальные функции
Агрегирование: минимум, максимум и все, что посередине
Операции над массивами. Транслирование
Сравнения, маски и булева логика
«Прихотливая» индексация
Сортировка массивов
Структурированные данные: структурированные массивы библиотеки NumPy
3. Манипуляции над данными с помощью пакета Pandas
Установка и использование библиотеки Pandas
Знакомство с объектами библиотеки Pandas
Индексация и выборка данных
Операции над данными в библиотеке Pandas
Обработка отсутствующих данных
Иерархическая индексация
Объединение наборов данных: конкатенация и добавление в конец
Объединение наборов данных: слияние и соединение
Агрегирование и группировка
Сводные таблицы
Векторизованные операции над строками
Работа с временными рядами
Увеличение производительности библиотеки Pandas: eval() и query()
Дополнительные источники информации
4. Визуализация с помощью библиотеки Matplotlib
Общие советы по библиотеке Matplotlib
Два интерфейса по цене одного
Простые линейные графики
Простые диаграммы рассеяния
Визуализация погрешностей
Графики плотности и контурные графики
Гистограммы, разбиения по интервалам и плотность
Пользовательские настройки легенд на графиках
Пользовательские настройки шкал цветов
Множественные субграфики
Текст и поясняющие надписи
Пользовательские настройки делений на осях координат
Пользовательские настройки Matplotlib: конфигурации и таблицы стилей
Построение трехмерных графиков в библиотеке Matplotlib
Отображение географических данных с помощью Basemap
Визуализация с помощью библиотеки Seaborn
Дополнительные источники информации
5. Машинное обучение
Что такое машинное обучение
Знакомство с библиотекой Scikit-Learn
Гиперпараметры и проверка модели
Проектирование признаков
Заглянем глубже: наивная байесовская классификация
Заглянем глубже: линейная регрессия
Заглянем глубже: метод опорных векторов
Заглянем глубже: деревья решений и случайные леса
Заглянем глубже: метод главных компонент
Заглянем глубже: обучение на базе многообразий
Заглянем глубже: кластеризация методом k-средних
Заглянем глубже: смеси Гауссовых распределений
Заглянем глубже: ядерная оценка плотности распределения
Прикладная задача: конвейер распознавания лиц
Дополнительные источники информации по машинному обучению
Об авторе

Предисловие

Что такое наука о данных

Эта книга посвящена исследованию данных с помощью языка программирования Python. Сразу же возникает вопрос: что же такое наука о данных (data science)? Ответ на него дать непросто — настолько данный термин многозначен.

Долгое время активные критики отказывали термину «наука о данных» в праве на существование либо по причине его избыточности (в конце концов, какая наука не имеет дела с данными?), либо расценивая этот термин как «модное словечко» для придания красоты резюме и привлечения внимания агентов по найму кадров.

На мой взгляд, в подобных высказываниях критики упускали нечто очень важное. Лучшее из возможных определений науки о данных приведено в диаграмме Венна в науке о данных, впервые опубликованной Дрю Конвеем в его блоге в сентябре 2010 года (рис. 0.1). Междисциплинарность — ключ к ее пониманию.

Рис. 0.1. Диаграмма Венна в науке о данных Дрю Конвея

Хотя некоторые названия немного ироничны, эта диаграмма улавливает суть того, что, как мне кажется, понимается под наукой о данных: она является междисциплинарным предметом.

Наука о данных охватывает три отдельные, но пересекающиеся сферы:

• навыки специалиста по математической статистике, умеющего моделировать наборы данных и извлекать из них основное;

• навыки специалиста в области компьютерных наук, умеющего проектировать и использовать алгоритмы для эффективного хранения, обработки и визуализации этих данных;

• экспертные знания предметной области, полученные в ходе традиционного изучения предмета, — умение как формулировать правильные вопросы, так и рассматривать ответы на них в соответствующем контексте.

С учетом этого я рекомендовал бы рассматривать науку о данных не как новую область знаний, которую нужно изучить, а как новый набор навыков, который вы можете использовать в рамках хорошо знакомой вам предметной области. Извещаете ли вы о результатах выборов, прогнозируете ли прибыльность ценных бумаг, занимаетесь ли оптимизацией контекстной рекламы в Интернете или распознаванием микроорганизмов на сделанных с помощью микроскопа фото, ищете ли новые классы астрономических объектов или же работаете с данными в любой другой сфере, цель этой книги — научить задавать новые вопросы о вашей предметной области и отвечать на них.

Для кого предназначена эта книга

«Как именно следует изучать Python?» — один из наиболее часто задаваемых мне вопросов на различных технологических конференциях и встречах. Задают его заинтересованные в технологиях студенты, разработчики или исследователи, часто уже со значительным опытом написания кода и использования вычислительного и цифрового инструментария. Большинству из них не нужен язык программирования Python в чистом виде, они хотели бы изучать его, чтобы применять в качестве инструмента для решения задач, требующих вычислений с обработкой больших объемов данных.

Эта книга не планировалась в качестве введения в язык Python или в программирование вообще. Я предполагаю, что читатель знаком с языком Python, включая описание функций, присваивание переменных, вызов методов объектов, управление потоком выполнения программы и решение других простейших задач. Она должна помочь пользователям языка Python научиться применять стек инструментов исследования данных языка Python — такие библиотеки, как IPython, NumPy, Pandas, Matplotlib, Scikit-Learn и соответствующие инструменты, — для эффективного хранения, манипуляции и понимания данных.

Почему Python

За последние несколько десятилетий язык программирования Python превратился в первоклассный инструмент для научных вычислений, включая анализ и визуализацию больших наборов данных. Это может удивить давних поклонников Python: сам по себе этот язык не был создан в расчете на анализ данных или научные вычисления.

Язык программирования Python пригоден для науки о данных в основном благодаря большой и активно развивающейся экосистеме пакетов, созданных сторонними разработчиками:

• библиотеки NumPy — для работы с однородными данными в виде массивов;

• библиотеки Pandas — для работы с неоднородными и поименованными данными;

• SciPy — для общих научных вычислительных задач;

• библиотеки Matplotlib — для визуализаций типографского качества;

• оболочки IPython — для интерактивного выполнения и совместного использования кода;

• библиотеки Scikit-Learn — для машинного обучения и множества других инструментов, которые будут упомянуты в дальнейшем.

Если вы ищете руководство по самому языку программирования Python, рекомендую обратить ваше внимание на проект «Краткая экскурсия по языку программирования Python» (https://github.com/jakevdp/WhirlwindTourOfPython). Он знакомит с важнейшими возможностями языка Python и рассчитан на исследователей данных, уже знакомых с одним или несколькими языками программирования.

Языки программирования Python 2 и Python 3. В книге используется синтаксис Python 3, содержащий несовместимые с выпусками 2.x языка программирования Python расширения. Хотя Python 3.0 был впервые выпущен в 2008 году, он внедрялся довольно медленно, особенно в научном сообществе и сообществе веб-разработчиков. Главная причина заключалась в том, что многие важные сторонние пакеты и наборы программ только через некоторое время стали совместимы с новым языком.

В начале 2014 года стабильные выпуски важнейших инструментов экосистемы науки о данных были полностью совместимы как с языком Python 2, так и Python 3, поэтому данная книга использует более новый синтаксис языка Python 3. Однако абсолютное большинство фрагментов кода в этой книге будет также работать без всяких модификаций на языке Python 2. Случаи, когда применяется несовместимый с Python 2 синтаксис, я буду указывать.

Общая структура книги

Каждая глава книги посвящена конкретному пакету или инструменту, составляющему существенную часть инструментария Python для исследования данных.

•IPython и Jupyter (глава 1) — предоставляют вычислительную среду, в которой работают многие использующие Python исследователи данных.

• NumPy (глава 2) — предоставляет объект ndarray для эффективного хранения и работы с плотными массивами данных в Python.

• Pandas (глава 3) —предоставляет объект DataFrame для эффективного хранения и работы с поименованными/столбчатыми данными в Python.

• Matplotlib (глава 4) — предоставляет возможности для разнообразной гибкой визуализации данных в Python.

•Scikit-Learn (глава 5) — предоставляет эффективные реализации на Python большинства важных и широко известных алгоритмов машинного обучения.

Мир PyData гораздо шире представленных пакетов, и он растет день ото дня. С учетом этого я использую каждую возможность в книге, чтобы сослаться на другие интересные работы, проекты и пакеты, расширяющие пределы того, что можно сделать на языке Python. Тем не менее сегодня эти пять пакетов являются основополагающими для многого из того, что можно сделать в области применения языка программирования Python к исследованию данных. Я полагаю, что они будут сохранять свое значение и при росте окружающей их экосистемы.

Использование примеров кода

Дополнительные материалы (примеры кода, упражнения и т. п.) доступны для скачивания по адресу https://github.com/jakevdp/PythonDataScienceHandbook.

Задача этой книги — помочь вам делать вашу работу. Вы можете использовать любой пример кода из книги в ваших программах и документации. Обращаться к нам за разрешением нет необходимости, разве что вы копируете значительную часть кода. Например, написание программы, использующей несколько фрагментов кода из этой книги, не требует отдельного разрешения. Однако для продажи или распространения компакт-диска с примерами из книг O’Reilly разрешение требуется. Ответ на вопрос путем цитирования этой книги и цитирования примеров кода не требует разрешения. Но включение значительного количества примеров кода из книги в документацию к вашему продукту потребует разрешения.

Мы ценим, хотя и не требуем ссылки на первоисточник. Она включает название, автора, издательство и ISBN. Например, «Python для сложных задач. Наука о данных­ и машинное обучение (“Питер”). Copyright Джейк Вандер Пласс, 2017, 978-1-491-91205-8».

Если вам кажется, что вы выходите за рамки правомерного использования примеров кода, не стесняясь, связывайтесь с нами по адресу [email protected].

Вопросы установки

Инсталляция Python и набора библиотек, обеспечивающих возможность научных вычислений, не представляет сложности. В данном разделе будут рассмотрены особенности, которые следует принимать во внимание при настройке.

Существует множество вариантов установки Python, но я предложил бы воспользоваться дистрибутивом Anaconda, одинаково работающим в операционных системах Windows, Linux и Mac OS X. Дистрибутив Anaconda существует в двух вариантах.

•Miniconda (http://conda.pydata.org/miniconda.html) содержит сам интерпретатор языка программирования Python, а также утилиту командной строки conda, функционирующую в качестве межплатформенной системы управления пакетами, ориентированной на работу с пакетами Python и аналогичной по духу утилитам apt и yum, хорошо знакомым пользователям операционной системы Linux.

•Anaconda (https://www.continuum.io/downloads) включает интерпретатор Python и утилиту conda, а также набор предустановленных пакетов, ориентированных на научные вычисления. Приготовьтесь к тому, что установка займет несколько гигабайт дискового пространства.

Все включаемые в Anaconda пакеты можно также установить вручную поверх Miniconda, именно поэтому я рекомендую вам начать с Miniconda.

Для начала скачайте и установите пакет Miniconda (не забудьте выбрать версию с языком Python 3), после чего установите базовые пакеты, используемые в данной книге:

[~]$ conda install numpy pandas scikit-learn matplotlib seaborn ipython-notebook

На протяжении всей книги мы будем применять и другие, более специализированные утилиты из научной экосистемы Python, установка которых сводится к выполнению команды conda install название_пакета. За дополнительной информацией об утилите conda, включая информацию о создании и использовании сред разработки conda (что я бы крайне рекомендовал), обратитесь к онлайн-документации утилиты conda (http://conda.pydata.org/docs/).

Условные обозначения

В этой книге используются следующие условные обозначения.

Курсив

Курсивом выделены новые термины.

Моноширинный шрифт

Используется для листингов программ, а также внутри абзацев, чтобы обратиться к элементам программы вроде переменных, функций и типов данных. Им также выделены имена и расширения файлов.

Полужирный моноширинный шрифт

Показывает команды или другой текст, который пользователь должен ввести самостоятельно.

Курсивный моноширинный шрифт

Показывает текст, который должен быть заменен значениями, введенными пользователем, или значениями, определяемыми контекстом.