Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Крупномасштабное машинное обучение вместе с Python

Покупка
Артикул: 812970.01.99
Доступ онлайн
639 ₽
В корзину
Главная задача настоящей книги состоит в том, чтобы предоставить способы применения мощных методов машинного обучения с открытым исходным кодом в крупномасштабных проектах без привлечения дорогостоящих корпоративных решений или больших вычислительных кластеров. Описаны масштабируемое обучение в Scikit-learn, нейронные сети и глубокое обучение с использованием Theano, H2O и TensorFlow. Рассмотрены классификационные и регрессионные деревья, а также обучение без учителя. Охвачены эффективные методы машинного обучения в вычислительной среде MapReduce на платформах Hadoop и Spark на языке Python.
Шарден, Б. Крупномасштабное машинное обучение вместе с Python : практическое руководство / Б. Шарден, Л. Массарон, А. Боскетти ; пер. с анг. А. В. Логунова. - Москва : ДМК Пресс, 2018. - 358 с. - ISBN 978-5-97060-506-6. - Текст : электронный. - URL: https://znanium.com/catalog/product/2083416 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Бастиан Шарден, Лука Массарон, Альберто Боскетти

Крупномасштабное  
машинное обучение  
вместе с Python

Bastiaan Sjardin, Luca Massaron, Alberto Boschetti

Large Scale  
Machine Learning  
with Python

Learn to build powerful machine learning models quickly 
and deploy large-scale predictive applications

BIRMINGHAM – MUMBAI

Бастиан Шарден, Лука Массарон, Альберто Боскетти

Крупномасштабное  
машинное обучение  
вместе с Python

Учитесь быстро создавать мощные модели машинного обучения  
и развертывать крупномасштабные приложения прогнозирования

Москва, 2018

УДК 004.438Python:004.6
ББК 32.973.22

C33

Шарден Б., Массарон Л., Боскетти А.

Ш25 Крупномасштабное машинное обучение вместе с Python / пер. с анг. 

А. В. Логунова. – М.: ДМК Пресс, 2018. – 358 с.: ил.  

ISBN 978-5-97060-506-6

Главная задача настоящей книги состоит в том, чтобы предоставить способы при
менения мощных методов машинного обучения с открытым исходным кодом в крупномасштабных проектах без привлечения дорогостоящих корпоративных решений или 
больших вычислительных кластеров. Описаны масштабируемое обучение в Scikit-learn, 
нейронные сети и глубокое обучение с использованием Theano, H2O и TensorFlow. 
Рассмотрены классификационные и регрессионные деревья, а также обучение без 
учителя. Охвачены эффективные методы машинного обучения в вычислительной среде 
MapReduce на платформах Hadoop и Spark на языке Python.

УДК 004.438Python:004.6
ББК 32.973.22

First published in the English language under the title 'Large Scale Machine Learning with 

Python – (9781785887215).

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

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

ISBN 978-1-78588-721-5 (анг.) 
Copyright © 2016 Packt Publishing

ISBN 978-5-97060-506-6 (рус.) 
© Оформление, издание, перевод, ДМК Пресс, 2018

Содержание

Об авторах .........................................................................................................................9

О рецензентах .................................................................................................................10

Предисловие ...................................................................................................................11

Глава 1. Первые шаги к масштабируемости .............................................................20
Подробное объяснение термина масштабируемости ....................................................21

Приведение крупномасштабных примеров ...............................................................23
Введение в язык Python ...............................................................................................24
Вертикальное масштабирование средствами Python ................................................25
Горизонтальное масштабирование средствами Python ............................................26

Python для крупномасштабного машинного обучения .................................................27

Выбор между Python 2 и Python 3 ...............................................................................27
Инсталляция среды Python ..........................................................................................28
Пошаговая установка ...................................................................................................28
Установка библиотек ....................................................................................................29
Способы обновления библиотек .................................................................................31
Научные дистрибутивы ...............................................................................................32
Введение в Jupyter ........................................................................................................33

Библиотеки Python ...........................................................................................................37

NumPy ............................................................................................................................37
SciPy ...............................................................................................................................37
Pandas ............................................................................................................................37
Scikit-learn .....................................................................................................................38

Резюме ...............................................................................................................................44

Глава 2. Масштабируемое обучение в Scikit-learn ..................................................46
Внеядерное обучение .......................................................................................................47

Подвыборка как приемлемый вариант ......................................................................48
Оптимизация по одному прецеденту за раз  .............................................................48
Создание системы внеядерного обучения  ................................................................50

Потоковая передача данных из источников ...................................................................51

Наборы данных для реальных дел ..............................................................................51
Первый пример – потоковая передача набора данных Bike-sharing ........................54
Использование инструментов ввода-вывода библиотеки pandas ............................56
Работа с базами данных ...............................................................................................57
Особое внимание упорядочению прецедентов .........................................................61

Стохастическое обучение .................................................................................................63

Пакетный градиентный спуск .....................................................................................64
Стохастический градиентный спуск ...........................................................................67
Реализация алгоритма SGD в библиотеке Scikit-learn  ..............................................68
Определение параметров обучения алгоритма SGD .................................................70

Управление признаками на потоках данных .................................................................72

Описание целевой переменной ..................................................................................76

 Содержание

Хэширование признаков .............................................................................................79
Другие элементарные преобразования ......................................................................82
Тестирование и перекрестная проверка в потоке .....................................................83
Применение алгоритма SGD в деле ............................................................................84

Резюме ...............................................................................................................................88

Глава 3. Быстрообучающиеся реализации машин SVM .........................................89
Наборы данных для самостоятельного экспериментирования  ...................................90

Набор данных Bike-sharing ..........................................................................................90
Набор данных Covertype ..............................................................................................91

Машины опорных векторов .............................................................................................91

Кусочно-линейная функция потерь и ее варианты ...................................................97
Объяснение реализации алгоритма SVM в Scikit-learn .............................................98
Поиск нелинейных SVM с привлечением подвыборки ...........................................101
Реализация SVM в крупном масштабе на основе SGD .............................................104

Отбор признаков посредством регуляризации ............................................................112
Добавление нелинейности в алгоритм SGD .................................................................114

Испытание явных высокоразмерных отображений ................................................115

Доводка гиперпараметров .............................................................................................117

Другие альтернативы быстро обучающихся реализаций SVM ...............................121

Резюме .............................................................................................................................133

Глава 4. Искусственные нейронные сети и глубокое обучение ..........................134
Архитектура нейронной сети ........................................................................................135

Чему и как нейронные сети обучаются ....................................................................144
Выбор правильной архитектуры ...............................................................................148
Нейронные сети в действии ......................................................................................149
Параллелизация для библиотеки sknn ......................................................................150

Нейронные сети и регуляризация .................................................................................151
Нейронные сети и гиперпараметрическая оптимизация ...........................................153
Нейронные сети и границы решения ...........................................................................154
Глубокое обучение в крупном масштабе с H2O ............................................................157

Крупномасштабное глубокое обучение с H2O .........................................................158
Сеточный поиск в H2O ...............................................................................................161

Глубокое обучение и предтренировка без учителя ......................................................162
Глубокое обучение с theanets .........................................................................................162
Автокодировщики и обучение без учителя ..................................................................164

Автокодировщик ........................................................................................................164

Резюме .............................................................................................................................168

Глава 5. Глубокое обучение с библиотекой TensorFlow ........................................170
Инсталляция TensorFlow ................................................................................................172

Операции TensorFlow .................................................................................................172

Машинное обучение в TensorFlow посредством SkFlow ..............................................177

Глубокое обучение с большими файлами – инкрементное обучение ....................183

Инсталляция библиотеки Keras и платформа TensorFlow ...........................................186

Содержание  7

Сверточные нейронные сети в TensorFlow посредством Keras ...................................190

Сверточный слой ........................................................................................................192
Объединяющий слой ..................................................................................................193
Полносвязный слой ....................................................................................................194

CNN-сети с подходом на основе инкрементной тренировки .....................................195
Вычисления на GPU ........................................................................................................196
Резюме .............................................................................................................................199

Глава 6. Классификационные и регрессионные деревья  
в крупном масштабе ....................................................................................................200
Агрегация бутстрапированных выборок ......................................................................203
Случайный лес и экстремально рандомизированный лес ..........................................204
Быстрая параметрическая оптимизация посредством рандомизированного  
поиска ..............................................................................................................................208

Экстремально рандомизированные деревья и большие наборы данных ..............210

Алгоритм CART и бустинг ..............................................................................................214

Машины градиентного бустинга ...............................................................................214

Алгоритм XGBoost ..........................................................................................................221

Регрессия на основе XGBoost .....................................................................................224
Потоковая передача больших наборов данных посредством XGBoost ..................227
Персистентность модели XGBoost.............................................................................228

Внеядерный алгоритм CART в среде H2O .....................................................................229

Случайный лес и сеточный поиск в H2O ..................................................................229
Стохастический градиентный бустинг и сеточный поиск в H2O ...........................231

Резюме .............................................................................................................................233

Глава 7. Обучение без учителя в крупном масштабе ............................................235
Методы машинного обучения без учителя ...................................................................235
Разложение признаков – PCA ........................................................................................236

Алгоритм PCA в среде H2O ........................................................................................246

Кластеризация – алгоритм K-средних ..........................................................................247

Методы инициализации ............................................................................................250
Допущения алгоритма K-средних .............................................................................251
Подбор оптимальной величины K ............................................................................253
Масштабирование алгоритма K-средних – мини-пакет .........................................257

Алгоритм K-средних в среде H2O ..................................................................................261
Алгоритм LDA .................................................................................................................263

Масштабирование алгоритма LDA – оперативная память, CPU и машины ...........271

Резюме .............................................................................................................................272

Глава 8. Распределенные среды – Hadoop и Spark ...............................................273
От автономной машины к набору узлов .......................................................................273

Зачем нужна распределенная платформа? ..............................................................275

Настройка виртуальной машины ..................................................................................276

Виртуализатор VirtualBox ..........................................................................................277
Конфигуратор Vagrant ................................................................................................279

 Содержание

Использование виртуальной машины ......................................................................279

Экосистема Hadoop .........................................................................................................281

Архитектура ................................................................................................................281
Распределенная файловая система HDFS .................................................................282
Вычислительная парадигма MapReduce ...................................................................289
Менеджер ресурсов YARN ..........................................................................................298

Платформа Spark.............................................................................................................299

Библиотека pySpark ....................................................................................................299

Резюме .............................................................................................................................309

Глава 9. Практическое машинное обучение в среде Spark .................................310
Настройка виртуальной машины для данной главы ...................................................310
Распространение переменных по всем узлам кластера ..............................................311

Широковещательные переменные только для чтения ............................................311
Аккумуляторные переменные только для записи ...................................................313
Широковещательные и аккумуляторные переменные – пример ...........................314

Предобработка данных в среде Spark ............................................................................316

Файлы JSON и объекты DataFrame платформы Spark ..............................................317
Работа с пропущенными данными ...........................................................................319
Группирование и создание таблиц в оперативной памяти ....................................320
Запись предобработанного объекта DataFrame или RDD-набора на диск .............322
Работа с объектами DataFrame  .................................................................................323

Машинное обучение с платформой Spark ....................................................................326

Платформа Spark на наборе данных KDD99 .............................................................326
Чтение набора данных ...............................................................................................327
Конструирование признаков .....................................................................................329
Тренировка ученика ...................................................................................................334
Оценка результативности ученика ...........................................................................335
Возможности конвейера машинного обучения .......................................................336
Ручная доводка ...........................................................................................................338
Перекрестная проверка .............................................................................................340
Заключительная очистка ...........................................................................................342

Резюме .............................................................................................................................342

Приложение. Введение в графические процессоры и платформа Theano ......344
Вычисления на GPU ........................................................................................................344
Платформа Theano – параллельные вычисления на GPU ............................................346
Установка платформы Theano .......................................................................................347

Предметный указатель ...............................................................................................350

Об авторах

Бастиан Шарден – исследователь-аналитик и создатель с опытом работы в области искусственного интеллекта и математики. Имеет степень магистра по 
когнити вистике, полученную им в университете Лейдена вместе с очными курсами в Массачусетском технологическом институте (MIT). В течение прошедших 
5 лет он работал над широким спектром проектов в области науки о данных и искусственного интеллекта. Часто принимает участие как непостоянный член преподавательского состава в онлайн-курсах Coursera в области анализа социальных 
сетей Мичиганского университета и практического машинного обучения Университета Джонса Хопкинса. Его предпочтительными языками программирования являются Python и R. В настоящее время является соучредителем компании 
Quandbee (http://www.quandbee.com/), предлагающей масштабируемые приложения машинного обучения и искусственного интеллекта.
Лука Массарон – исследователь-аналитик и директор по анализу рынка, специализирующийся на многомерном статистическом анализе, машинном обучении и потребительском понимании, с более чем десятилетним опытом в решении 
реаль ных задач и генерировании стоимости для заинтересованных сторон путем 
применения логического обоснования, статистики, анализа данных и алгоритмов. 
Являясь первопроходцем в сфере исследования веб-аудитории в Италии, сегодня 
входит в лучшую десятку аналитиков по версии профессионального аналитического веб-сайта Kaggle. Всегда очень увлекался всем, что связано с данными и их 
анализом, а также демонстрацией потенциала, управляемого данными обнаружения знаний для экспертов и неспециалистов. Отдавая предпочтение простоте над 
ненужной сложностью, он полагает, что в науке о данных можно достичь многого, 
всего лишь руководствуясь основами.

Хотел бы благодарить Юкико и Амелию за их постоянную поддержку, помощь 
и любвеобильное терпение.

Альберто Боскетти – исследователь-аналитик с профессиональным опытом 
в области обработки сигналов и математической статистики. Имеет научную степень доктора наук по инженерному делу в области телекоммуникаций, в настоящее время живет и работает в Лондоне. В своих рабочих проектах он занимается 
решением сложных задач, которые включают в себя широкий круг областей – от 
обработки естественного языка (NLP) вплоть до машинного обучения и распределенной обработки. Очень увлечен своей работой и всегда пытается оставаться 
в курсе технологических новинок в области науки о данных, участвуя во встречах 
профессио налов, конференциях и других событиях.

О рецензентах

Олег Окунь – эксперт по машинному обучению, является автором/редактором 
четырех книг, многочисленных журнальных статей и докладов на конференциях. 
Работает в отрасли уже более четверти века, проработав в высшей школе и промышленности на своей родине в Белоруссии и за границей (в Финляндии, Швеции 
и Германии). Его опыт работы включает анализ цифровых образов документов, 
биометрию цифрового отпечатка, биоинформатику, онлайновую и внесетевую 
маркетинговую аналитику и аналитику рейтинга кредитоспособности. Интересуется всеми аспектами распределенного машинного обучения и Интернетом вещей. Олег в настоящее время живет и работает в Гамбурге, Германия, и собирается 
приступить к новой работе в качестве главного архитектора интеллектуальных 
систем. Его предпочтительными языками программирования являются Python, 
R и Scala.

Хотел бы выразить свою самую глубокую благодарность моим родителям за все, 
что они для меня сделали.

Кай Лонденберг – исследователь-аналитик и эксперт в области больших данных с многолетним профессиональным опытом. В настоящее время работает исследователем-аналитиком в компании Volkswagen Data Lab. До этого имел удовольствие работать ведущим исследователем-аналитиком в компании Searchmetrics, 
где Лука Массарон был членом его команды. Кай любит работать с передовыми 
технологиями, и, являясь прагматично настроенным практиком машинного обучения и действую щим разработчиком программного обеспечения, он любит всегда оставаться в курсе последних технологических и научных достижений в области машинного обучения, ИИ и смежных областях. Его можно найти в социальной 
сети LinkedIn по адресу https://www.linkedin.com/in/kailondenberg.

Доступ онлайн
639 ₽
В корзину