Python: Искусственный интеллект, большие данные и облачные вычисления

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Пол и Харви Дейтелы предлагают по-новому взглянуть на Python и использовать уникальный подход, чтобы быстро решить проблемы, стоящие перед современными айтишниками. Вы на практике познакомитесь с революционными вычислительными технологиями и программированием на Python — одном из самых популярных языков. В вашем распоряжении более пятисот реальных задач — от фрагментов до 40 больших сценариев и примеров с полноценной реализацией. IPython с Jupyter Noteboos позволят быстро освоить современные идиомы программирования Python. Главы 1–5 и фрагменты глав 6–7 сделают понятными примеры решения задач искусственного интеллекта из глав 11–16. Вы познакомитесь с обработкой естественного языка, анализом эмоций в Twitter®, когнитивными вычислениями IBM® Watson™, машинным обучением с учителем в задачах классификации и регрессии, машинным обучением без учителя в задачах кластеризации, распознавания образов с глубоким обучением и сверточными нейронными сетями, рекуррентными нейронными сетями, большими данными с Hadoop®, Spark™ и NoSQL, IoT и многим другим. Вы поработаете (напрямую или косвенно) с облачными сервисами, включая Twitter, Google Translate™, IBM Watson, Microsoft® Azure®, OpenMapQuest, PubNub и др.

Author(s): Пол Дейтел, Харви Дейтел
Edition: 1
Publisher: Питер
Year: 2020

Language: Russian
Commentary: True PDF
Pages: 864
City: СПб.
Tags: Machine Learning; Deep Learning; Natural Language Processing; Regression; Programming; Python; Big Data; Internet of Things; Classification; Clustering; IBM Watson; NoSQL; Apache Spark; Cognitive Computing; Sentiment Analysis; Keras; Apache Hadoop; scikit-learn; Twitter; Object-Oriented Programming; TextBlob; Textbook; Elementary

Предисловие
Спрос на квалификацию в области data science
Модульная структура
Ключевые особенности
Ответы на вопросы
Поддержка Jupyter
Приложения
Как связаться с авторами книги
Благодарности
Об авторах
О компании Deitel® & Associates, Inc.
Приступая к работе
Загрузка примеров кода
Структура папки examples
Установка Anaconda
Обновление Anaconda
Менеджеры пакетов
Установка программы статического анализа кода Prospector
Установка jupyter-matplotlib
Установка других пакетов
Получение учетной записи разработчика Twitter
Необходимость подключения к интернету в некоторых главах
Различия в выводе программ
Получение ответов на вопросы
Глава 1. Компьютеры и Python
1.1. Введение
1.2. Основы объектных технологий
1.3. Python
1.4. Библиотеки
1.4.1. Стандартная библиотека Python
1.4.2. Библиотеки data science
1.5. Первые эксперименты: использование IPython и Jupyter Notebook
1.5.1. Использование интерактивного режима IPython как калькулятора
1.5.2. Выполнение программы Python с использованием интерпретатора IPython
1.5.3. Написание и выполнение кода в Jupyter Notebook
1.6. Облачные вычисления и «интернет вещей»
1.6.1. Облачные вычисления
1.6.2. «Интернет вещей»
1.7. Насколько велики большие данные?
1.7.1. Анализ больших данных
1.7.2. Data Science и большие данные изменяют ситуацию: практические примеры
1.8. Практический пример: использование больших данных в мобильном приложении
1.9. Введение в data science: искусственный интеллект — на пересечении компьютерной теории и data science
1.10. Итоги
Глава 2. Введение в программирование Python
2.1. Введение
2.2. Переменные и команды присваивания
2.3. Арифметические операторы
2.4. Функция print и строки, заключенные в одинарные и двойные кавычки
2.5. Строки в тройных кавычках
2.6. Получение ввода от пользователя
2.7. Принятие решений: команда if и операторы сравнения
2.8. Объекты и динамическая типизация
2.9. Введение в data science: основные описательные статистики
2.10. Итоги
Глава 3. Управляющие команды
3.1. Введение
3.2. Управляющие команды
3.3. Команда if
3.4. Команды if…else и if…elif…else
3.5. Команда while
3.6. Команда for
3.6.1. Итерируемые объекты, списки и итераторы
3.6.2. Встроенная функция range
3.7. Расширенное присваивание
3.8. Повторение, управляемое последовательностью; отформатированные строки
3.9. Повторение, управляемое контрольным значением
3.10. Подробнее о встроенной функции range
3.11. Использование типа Decimal для представления денежных сумм
3.12. Команды break и continue
3.13. Логические операторы and, or или not
3.14. Введение в data science: параметры, характеризующие положение центра распределения, — математическое ожидание, медиана и мода
3.15. Итоги
Глава 4. Функции
4.1. Введение
4.2. Определение функций
4.3. Функции с несколькими параметрами
4.4. Генератор случайных чисел
4.5. Практический пример: игра «крэпс»
4.6. Стандартная библиотека Python
4.7. Функции модуля math
4.8. Использование автозаполнения IPython
4.9. Значения параметров по умолчанию
4.10. Ключевые аргументы
4.11. Произвольные списки аргументов
4.12. Методы: функции, принадлежащие объектам
4.13. Правила области видимости
4.14. Подробнее об импортировании
4.15. Подробнее о передаче аргументов функциям
4.16. Рекурсия
4.17. Программирование в функциональном стиле
4.18. Введение в data science: дисперсионные характеристики
4.19. Итоги
Глава 5. Последовательности: списки и кортежи
5.1. Введение
5.2. Списки
5.3. Кортежи
5.4. Распаковка последовательностей
5.5. Сегментация последовательностей
5.6. Команда del
5.7. Передача списков функциям
5.8. Сортировка списков
5.9. Поиск в последовательностях
5.10. Другие методы списков
5.11. Моделирование стека на базе списка
5.12. Трансформации списков
5.13. Выражения-генераторы
5.14. Фильтрация, отображение и свертка
5.15. Другие функции обработки последовательностей
5.16. Двумерные списки
5.17. Введение в data science: моделирование и статические визуализации
5.17.1. Примеры диаграмм для 600, 60 000 и 6 000 000 бросков
5.17.2. Визуализация частот и процентов
5.18. Итоги
Глава 6. Словари и множества
6.1. Введение
6.2. Словари
6.2.1. Создание словаря
6.2.2. Перебор по словарю
6.2.3. Основные операции со словарями
6.2.4. Методы keys и values
6.2.5. Сравнения словарей
6.2.6. Пример: словарь с оценками студентов
6.2.7. Пример: подсчет слов
6.2.8. Метод update
6.2.9. Трансформации словарей
6.3. Множества
6.3.1. Сравнение множеств
6.3.2. Математические операции с множествами
6.3.3. Операторы и методы изменяемых множеств
6.3.4. Трансформации множеств
6.4. Введение в data science: динамические визуализации
6.4.1. Как работает динамическая визуализация
6.4.2. Реализация динамической визуализации
6.5. Итоги
Глава 7. NumPy и программирование, ориентированное на массивы
7.1. Введение
7.2. Создание массивов на основе существующих данных
7.3. Атрибуты array
7.4. Заполнение array конкретными значениями
7.5. Создание коллекций array по диапазонам
7.6. Сравнение быстродействия списков и array
7.7. Операторы array
7.8. Вычислительные методы NumPy
7.9. Универсальные функции
7.10. Индексирование и сегментация
7.11. Представления: поверхностное копирование
7.12. Глубокое копирование
7.13. Изменение размеров и транспонирование
7.14. Введение в data science: коллекции Series и DataFrame библиотеки pandas
7.14.1. Коллекция Series
7.14.2. DataFrame
7.15. Итоги
Глава 8. Подробнее о строках
8.1. Введение
8.2. Форматирование строк
8.2.1. Типы представлений
8.2.2. Ширины полей и выравнивание
8.2.3. Форматирование чисел
8.2.4. Метод format
8.3. Конкатенация и повторение строк
8.4. Удаление пропусков из строк
8.5. Изменение регистра символов
8.6. Операторы сравнения для строк
8.7. Поиск подстрок
8.8. Замена подстрок
8.9. Разбиение и объединение строк
8.10. Символы и методы проверки символов
8.11. Необработанные строки
8.12. Знакомство с регулярными выражениями
8.12.1. Модуль re и функция fullmatch
8.12.2. Замена подстрок и разбиение строк
8.12.3. Другие функции поиска, обращение к совпадениям
8.13. Введение в data science: pandas, регулярные выражения и первичная обработка данных
8.14. Итоги
Глава 9. Файлы и исключения
9.1. Введение
9.2. Файлы
9.3. Обработка текстовых файлов
9.3.1. Запись в текстовый файл: команда with
9.3.2. Чтение данных из текстового файла
9.4. Обновление текстовых файлов
9.5. Сериализация в формат JSON
9.6. Вопросы безопасности: сериализация и десериализация pickle
9.7. Дополнительные замечания по поводу файлов
9.8. Обработка исключений
9.8.1. Деление на нуль и недействительный ввод
9.8.2. Команды try
9.8.3. Перехват нескольких исключений в одной секции except
9.8.4. Какие исключения выдают функция или метод?
9.8.5. Какой код должен размещаться в наборе try?
9.9. Секция finally
9.10. Явная выдача исключений
9.11. Раскрутка стека и трассировка (дополнение)
9.12. Введение в data science: работа с CSV-файлами
9.12.1. Модуль csv стандартной библиотеки Python
9.12.2. Чтение CSV-файлов в коллекции DataFrame библиотеки pandas
9.12.3. Чтение набора данных катастрофы «Титаника»
9.12.4. Простой анализ данных на примере набора данных катастрофы «Титаника»
9.12.5. Гистограмма возраста пассажиров
9.13. Итоги
Глава 10. Объектно-ориентированное программирование
10.1. Введение
10.2. Класс Account
10.2.1. Класс Account в действии
10.2.2. Определение класса Account
10.2.3. Композиция: ссылка на объекты как компоненты классов
10.3. Управление доступом к атрибутам
10.4. Использование свойств для доступа к данным
10.4.1. Класс Time в действии
10.4.2. Определение класса Time
10.4.3. Замечания по проектированию определения класса Time
10.5. Моделирование «приватных» атрибутов
10.6. Практический пример: моделирование тасования и сдачи карт
10.6.1. Классы Card и DeckOfCards в действии
10.6.2. Класс Card — знакомство с атрибутами класса
10.6.3. Класс DeckOfCards
10.6.4. Вывод изображений карт средствами Matplotlib
10.7. Наследование: базовые классы и подклассы
10.8. Построение иерархии наследования. Концепция полиморфизма
10.8.1. Базовый класс CommissionEmployee
10.8.2. Подкласс SalariedCommissionEmployee
10.8.3. Полиморфная обработка CommissionEmployee и SalariedCommissionEmployee
10.8.4. Объектно-базированное и объектно-ориентированное программирование
10.9. Утиная типизация и полиморфизм
10.10. Перегрузка операторов
10.10.1. Класс Complex в действии
10.10.2. Определение класса Complex
10.11. Иерархия классов исключений и пользовательские исключения
10.12. Именованные кортежи
10.13. Краткое введение в новые классы данных Python 3.7
10.13.1. Создание класса данных Card
10.13.2. Использование класса данных Card
10.13.3. Преимущества классов данных перед именованными кортежами
10.13.4. Преимущества класса данных перед традиционными классами
10.14. Модульное тестирование с doc-строками и doctest
10.15. Пространства имен и области видимости
10.16. Введение в data science: временные ряды и простая линейная регрессия
10.17. Итоги
Глава 11. Обработка естественного языка (NLP)
11.1. Введение
11.2. TextBlob
11.2.1. Создание TextBlob
11.2.2. Разбиение текста на предложения и слова
11.2.3. Пометка частей речи
11.2.4. Извлечение именных конструкций
11.2.5. Анализ эмоциональной окраски с использованием анализатора TextBlob по умолчанию
11.2.6. Анализ эмоциональной окраски с использованием NaiveBayesAnalyzer
11.2.7. Распознавание языка и перевод
11.2.8. Формообразование: образование единственного и множественного числа
11.2.9. Проверка орфографии и исправление ошибок
11.2.10. Нормализация: выделение основы и лемматизация
11.2.11. Частоты слов
11.2.12. Получение определений, синонимов и антонимов из WordNet
11.2.13. Удаление игнорируемых слов
11.2.14. n-граммы
11.3. Визуализация частот вхождения слов с использованием гистограмм и словарных облаков
11.3.1. Визуализация частот вхождения слов средствами Pandas
11.3.2. Визуализация частот слов в словарных облаках
11.4. Оценка удобочитаемости с использованием Textatistic
11.5. Распознавание именованных сущностей с использованием spaCy
11.6. Выявление сходства средствами spaCy
11.7. Другие библиотеки и инструменты NLP
11.8. Машинное обучение и NLP-приложения с глубоким обучением
11.9. Наборы данных естественных языков
11.10. Итоги
Глава 12. Глубокий анализ данных Twitter
12.1. Введение
12.2. Обзор Twitter APIs
12.3. Создание учетной записи Twitter
12.4. Получение регистрационных данных Twitter — создание приложения
12.5. Какую информацию содержит объект Tweet?
12.6. Tweepy
12.7. Аутентификация Twitter с использованием Tweepy
12.8. Получение информации об учетной записи Twitter
12.9. Введение в курсоры Tweepy: получение подписчиков и друзей учетной записи
12.9.1. Определение подписчиков учетной записи
12.9.2. Определение друзей учетной записи
12.9.3. Получение недавних твитов пользователя
12.10. Поиск недавних твитов
12.11. Выявление тенденций: Twitter Trends API
12.11.1. Места с актуальными темами
12.11.2. Получение списка актуальных тем
12.11.3. Создание словарного облака по актуальным темам
12.12. Очистка / предварительная обработка твитов для анализа
12.13. Twitter Streaming API
12.13.1. Создание подкласса StreamListener
12.13.2. Запуск обработки потока
12.14. Анализ эмоциональной окраски твитов
12.15. Геокодирование и вывод информации на карте
12.15.1. Получение твитов и нанесение их на карту
12.15.2. Вспомогательные функции tweetutilities.py
12.15.3. Класс LocationListener
12.16. Способы хранения твитов
12.17. Twitter и временные ряды
12.18. Итоги
Глава 13. IBM Watson и когнитивные вычисления
13.1. Введение: IBM Watson и когнитивные вычисления
13.2. Учетная запись IBM Cloud и консоль Cloud
13.3. Сервисы Watson
13.4. Другие сервисы и инструменты
13.5. Watson Developer Cloud Python SDK
13.6. Практический пример: приложение-переводчик
13.6.1. Перед запуском приложения
13.6.2. Пробный запуск приложения
13.6.3. Сценарий SimpleLanguageTranslator.py
13.7. Ресурсы Watson
13.8. Итоги
Глава 14. Машинное обучение: классификация, регрессия и кластеризация
14.1. Введение в машинное обучение
14.1.1. Scikit-learn
14.1.2. Типы машинного обучения
14.1.3. Наборы данных, включенные в поставку scikit-learn
14.1.4. Последовательность действий в типичном исследовании data science
14.2. Практический пример: классификация методом k ближайших соседей и набор данных Digits, часть 1
14.2.1. Алгоритм k ближайших соседей
14.2.2. Загрузка набора данных
14.2.3. Визуализация данных
14.2.4. Разбиение данных для обучения и тестирования
14.2.5. Создание модели
14.2.6. Обучение модели
14.2.7. Прогнозирование классов для рукописных цифр
14.3. Практический пример: классификация методом k ближайших соседей и набор данных Digits, часть 2
14.3.1. Метрики точности модели
14.3.2. K-проходная перекрестная проверка
14.3.3. Выполнение нескольких моделей для поиска наилучшей
14.3.4. Настройка гиперпараметров
14.4. Практический пример: временные ряды и простая линейная регрессия
14.5. Практический пример: множественная линейная регрессия с набором данных California Housing
14.5.1. Загрузка набора данных
14.5.2. Исследование данных средствами Pandas
14.5.3. Визуализация признаков
14.5.4. Разбиение данных для обучения и тестирования
14.5.5. Обучение модели
14.5.6. Тестирование модели
14.5.7. Визуализация ожидаемых и прогнозируемых цен
14.5.8. Метрики регрессионной модели
14.5.9. Выбор лучшей модели
14.6. Практический пример: машинное обучение без учителя, часть 1 — понижение размерности
14.7. Практический пример: машинное обучение без учителя, часть 2 — кластеризация методом k средних
14.7.1. Загрузка набора данных Iris
14.7.2. Исследование набора данных Iris: описательная статистика в Pandas
14.7.3. Визуализация набора данных функцией pairplot
14.7.4. Использование оценщика KMeans
14.7.5. Понижение размерности методом анализа главных компонент
14.7.6. Выбор оптимального оценщика для кластеризации
14.8. Итоги
Глава 15. Глубокое обучение
15.1. Введение
15.1.1. Практическое применение глубокого обучения
15.1.2. Демонстрационные приложения глубокого обучения
15.1.3. Ресурсы Keras
15.2. Встроенные наборы данных Keras
15.3. Нестандартные среды Anaconda
15.4. Нейронные сети
15.5. Тензоры
15.6. Сверточные нейронные сети для распознавания образов; множественная классификация с набором данных MNIST
15.6.1. Загрузка набора данных MNIST
15.6.2. Исследование данных
15.6.3. Подготовка данных
15.6.4. Создание нейронной сети
15.6.5. Обучение и оценка модели
15.6.6. Сохранение и загрузка модели
15.7. Визуализация процесса обучения нейронной сети в TensorBoard
15.8. ConvnetJS: глубокое обучение и визуализация в браузере
15.9. Рекуррентные нейронные сети для последовательностей; анализ эмоциональной окраски с набором данных IMDb
15.9.1. Загрузка набора данных IMDb
15.9.2. Исследование данных
15.9.3. Подготовка данных
15.9.4. Создание нейронной сети
15.9.5. Обучение и оценка модели
15.10. Настройка моделей глубокого обучения
15.11. Модели сверточных нейронных сетей с предварительным обучением на ImageNet
15.12. Итоги
Глава 16. Большие данные: Hadoop, Spark, NoSQL и IoT
16.1. Введение
16.2. Реляционные базы данных и язык структурированных запросов (SQL)
16.2.1. База данных books
16.2.2. Запросы SELECT
16.2.3. Секция WHERE
16.2.4. Условие ORDER BY
16.2.5. Слияние данных из нескольких таблиц: INNER JOIN
16.2.6. Команда INSERT INTO
16.2.7. Команда UPDATE
16.2.8. Команда DELETE FROM
16.3. Базы данных NoSQL и NewSQL: краткое введение
16.3.1. Базы данных NoSQL «ключ-значение»
16.3.2. Документные базы данных NoSQL
16.3.3. Столбцовые базы данных NoSQL
16.3.4. Графовые базы данных NoSQL
16.3.5. Базы данных NewSQL
16.4. Практический пример: документная база данных MongoDB
16.4.1. Создание кластера MongoDB Atlas
16.4.2. Потоковая передача твитов в MongoDB
16.5. Hadoop
16.5.1. Обзор Hadoop
16.5.2. Получение статистики по длине слов в «Ромео и Джульетте» с использованием MapReduce
16.5.3. Создание кластера Apache Hadoop в Microsoft Azure HDInsight
16.5.4. Hadoop Streaming
16.5.5. Реализация сценария отображения
16.5.6. Реализация сценария свертки
16.5.7. Подготовка к запуску примера MapReduce
16.5.8. Выполнение задания MapReduce
16.6. Spark
16.6.1. Краткий обзор Spark
16.6.2. Docker и стеки Jupyter Docker
16.6.3. Подсчет слов с использованием Spark
16.6.4. Подсчет слов средствами Spark в Microsoft Azure
16.7. Spark Streaming: подсчет хештегов Twitter с использованием стека Docker pyspark-notebook
16.7.1. Потоковая передача твитов в сокет
16.7.2. Получение сводки хештегов и Spark SQL
16.8. «Интернет вещей»
16.8.1. Публикация и подписка
16.8.2. Визуализация живого потока PubNub средствами Freeboard
16.8.3. Моделирование термостата, подключенного к интернету, в коде Python
16.8.4. Создание информационной панели с Freeboard.io
16.8.5. Создание подписчика PubNub в коде Python
16.9. Итоги