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

«Python. Большая книга примеров»

Автор: Антон Марченко

Действительно большая книга примеров, автор не обманывает. Сам Марченко — преподаватель в МГУ, а в книге есть не только основы языка на доступных примерах, но и база для подготовки к собеседованию на Junior Python Developer. Конечно, основы — это хорошо, но к ним нужны ещё и определённые знания и опыт.

Благо автор рассказывает и о том, и о другом. Есть большое количество самых разных примеров, включая код для создания анимированной диаграммы на Matplotlib:

import matplotlib.pyplot as plt
from matplotlib.animation import ArtistAnimation
import numpy
 
def gaussian(x, delay, sigma):
  # Функция, график которой будет отображаться в процессе анимации
  return numpy.exp(-((x - delay) / sigma) ** 2)
 
 
if __name__ == '__main__':
  # Параметры отображаемой функции
  maxSize = 200
  sigma = 10.0
  # Диапазон точек для расчёта графика функции
  x = numpy.arange(maxSize)
  # Значения графика функции
  y = numpy.zeros(maxSize)
  # Создание окна для графика
  fig, ax = plt.subplots()
  ax.grid()
  # Установка отображаемых интервалов по осям
  ax.set_xlim(0, maxSize)
  ax.set_ylim(-1.1, 1.1)
 
  # Создание списка линий, которые будут последовательно
  # переключаться и предъявляться при изменении номера кадра
  frames = []
  for delay in numpy.arange(-50.0, 200.0, 1.0):
	y = gaussian(x, delay, sigma)
  # список рисунков линий
  # голубой цвет линии задаётся параметром '-b'
	line, = ax.plot(x, y, '-b')
  # Поскольку на каждом кадре может меняться несколько объектов,
  # каждый элемент списка — это список изменяемых объектов
	frames.append([line])
 
  # Задержка между кадрами в мс
  interval = 30
  # Использовать ли буферизацию для устранения мерцания
  blit = True
  # Будет ли анимация циклической
  repeat = True
  # Создание анимации
  animation = ArtistAnimation(
	fig, # Figure (это ссылка на глобальную fig)
	# Объект рисунка, используемый для получения
	# необходимых событий, таких как
	# рисование или изменение размера.
	frames, # Источник данных — список линий, которые
	# будут последовательно переключаться и
	# предъявляться при изменении номера кадра interval=interval,
	# Временной интервал между кадрами
	blit = blit, # Использовать буферизацию для устранения мерцания
	repeat = repeat)
  plt.show()

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

Машинное обучение доступным языком

Автор: Елена Капаца

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

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

Много примеров кода с поясняющими комментариями. Также автор показывает разницу в эффективности работы моделей на базе глубокого обучения и классического машинного. Например, приводится работа дерева решений, причём с кодом и примерами.

tr = tree.DecisionTreeClassifier(max_depth=3, random_state=25)
tr.fit(X_train, y_train)

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

Машинное обучение без лишних слов

Автор: Андрей Бурков

Автор этой книги основной акцент делает на анализе алгоритмов машинного обучения. Книга написана лаконично, так что ничего лишнего там нет — и в издании всего 100 страниц. Также автор разбирает разные примеры, код при этом есть на GitHub, так что по мере чтения можно открывать репо автора и работать с примерами.

Вот скриншот его GitHub для понимания того, какие темы раскрываются:

Он подробно останавливается на некоторых темах, включая, например, виды регрессии и подбор функций для них.

А ещё Бурков помогает читателю понять, когда именно стоит применять машинное обучение, а когда можно обойтись без него. Вот некоторые примеры условий, когда применять его стоит:

  • задача очень сложная, и все условия вручную учесть не получается

  • условий много и они динамические

  • когда изучаем ранее неизученное явление

Python и машинное обучение

Автор: Себастьян Рашка

Автор раскрывает методы и технологии, применяемые при решении самых разных задач. Это может быть распознавание лиц, объектов или работа с динамикой цен на товары за определённое время. Рашка показывает, как выстраивается весь процесс построения модели — от получения первичных данных до машинного обучения.

Кроме того, подробно раскрываются некоторые нюансы работы и инструменты. Это, к примеру, ML-библиотека scikit-learn и некоторые другие. Для понимания некоторых частей книги какой-то опыт в машинном обучении уже должен быть, но минимальный. Так что книгу также можно рекомендовать начинающему специалисту.

Машинное обучение с использованием Python. Сборник рецептов

Автор: Элбон Крис

В книге содержится сразу 200 рецептов решения многих задач машинного обучения. Автор приводит решения, используя векторы, матрицы и массивы, линейную и логистическую регрессию, деревья, леса и k ближайших соседей, кластеризацию и нейронные сети. Если описать всё содержимое, то это будет отдельная статья, так что лучше ознакомиться самостоятельно. Среди преимуществ книги можно выделить следующее: автор раскрывает неочевидные приёмы работы, о которых не все знают, а также приводит примеры решения частых проблем ML и DS.

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

The Machine Learning Simplified: A Gentle Introduction to Supervised Learning

Автор: Andrew Wolf

Отличная книга для начинающих — это новинка 2022 года. Пока что есть версия лишь на английском языке, поэтому если вы его не знаете на уровне, достаточном для чтения технической литературы, придётся немного подождать, когда книгу переведут.

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

На сегодня, к сожалению, всё. Если у вас есть собственные любимые книги, пишите о них в комментариях — обсудим!

Комментарии (2)


  1. SibProgrammer
    08.09.2023 08:08

    Читал ряд книг по теме и больше всего понравилась "Grokking Machine Learning" (не путать с "Grokking Deep Learning"). В книге, имхо, отличный баланс между теорией, математикой и практическими примерами. Чувствуется, что у автора большой опыт преподавания - старается донести так, чтобы читателю было максимально понятно. Поэтому именно "Grokking Machine Learning" рекомендовал бы в качестве первой книжки погружения в тему.


  1. SibProgrammer
    08.09.2023 08:08

    Машинное обучение без лишних слов

    ...

    Книга написана лаконично, так что ничего лишнего там нет — и в издании всего 100 страниц.

    Выглядит так, что автор обзора не открывал книгу :) Из русского перевода даже выкинули фразу "100 page book".

    Плюс, имхо, это точно не "первая книга, чтобы прочитать и погрузиться в тему". Очень много материала, очень сжато, с множеством формул и т.п. Книгой 3 или 4-ой, наверное, стоит читать.