22 февраля 2021

🎲 Зачем в науке о данных нужны теория вероятностей и статистика

Разработчик ПО (системы PDM/PLM) с 1993 года, компания "ИНТЕРМЕХ" (www.intermech.ru). В 2020-м успешно закончил курсы "Основы Data Science" (минская IT Academy) Референт-переводчик технической литературы с английского языка.
Завершает наш небольшой цикл обзор методов и понятий теории вероятностей и статистики, используемых в машинном обучении и науке о данных.
🎲 Зачем в науке о данных нужны теория вероятностей и статистика
В двух первых статьях мы рассказали о роли математического анализа и линейной алгебры в машинном обучении. Продолжая тему, поговорим о теории вероятностей и статистике в науке о данных. Более углубленно эти темы будут рассмотрены в нашем «Онлайн-курсе по математике в Data Science Lite».

С одной стороны, роль теории вероятностей и статистики в машинном обучении сравнительно невелика: используются лишь базовые понятия, хотя и довольно широко. С другой стороны, разведочный анализ данных, их очистка, подготовка и конструирование новых признаков – это чистая статистика. А поскольку эти операции в прикладной науке о данных (Data Science) занимают 90-95% времени, самый важный раздел математики для Data Scientist'ов – именно статистика. Кстати, это отлично демонстрирует разницу между машинным обучением и наукой о данных.

"Вероятности" классификации

Практически все модели классификации, используемые в машинном обучении, на самом деле выдают не единственную метку класса (или его номер), а набор "вероятностей" принадлежности к каждому классу. Логистическая регрессия с бинарной классификацией – это та же линейная регрессия, результат которой пропускается через функцию сигмоиды, преобразующую весь диапазон действительных чисел к диапазону [0,1].

Функции сигмоиды с разными параметрами
Функции сигмоиды с разными параметрами

Число p, являющееся результатом сигмоиды, считается "вероятностью" принадлежности результата к одному из классов, а "вероятность" принадлежности к другому классу равна 1-p. Разумеется, это не настоящие вероятности – строго говоря, в данном случае вообще нет смысла говорить о вероятности, ведь результат классификации однозначен. Возможно, в данном случае было бы правильнее называть результат степенью уверенности: например, модель считает, что данный экземпляр принадлежит к классу 1 с уверенностью 74%. Тем не менее, принято называть этот показатель именно вероятностью.

Если классов больше двух, вместо сигмоиды используется Softmax – функция, преобразующая вектор вещественных чисел z размерности N в вектор неотрицательных чисел той же размерности, сумма которых равна 1 (sigma):

σ(z)i=ezik=1Nezk

В результате мы получаем "вероятности" принадлежности к каждому классу, которые можно интерпретировать по-разному. Традиционно результатом классификации считается класс с максимальной "вероятностью", но ничто не мешает принять какие-то особые меры в тех случаях, когда модель "не уверена" в результате – например, если разница между двумя максимальными "вероятностями" невелика.

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

Все будет нормально

Нормальное распределение, или распределение Гаусса – это семейство функций плотности распределения вероятности с двумя параметрами: mu (среднее значение, оно же медиана и мода) и sigma (стандартное или среднеквадратическое отклонение). Иногда вместо sigma используется параметр sigma2 – дисперсия нормального распределения:

ϕμ,σ2(x)=1σ2πe(xμ)22σ2

График функции плотности нормального распределения похож на колокол. Его центральная координата равна mu, а стандартное отклонение sigma определяет уровень "крутизны" графика: чем оно меньше, чем большая доля значений переменной будет находиться недалеко от центра.

Функции плотности нормального распределения с разными параметрами
Функции плотности нормального распределения с разными параметрами

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

Нормальное распределение настолько важно, что многие методы машинного обучения работают намного лучше, если данные нормально распределены (или даже вообще не работают в противном случае). Поэтому нормализация данных – очень часто выполняемая операция, а для нейронных сетей даже разработан слой пакетной нормализации (batch normalization).

Байесовские модели

Одно семейство методов машинного обучения полностью основано на теории вероятностей – байесовские модели. Теорема Байеса определяет вероятность события A, при условии события B, через обратную вероятность и вероятности A и B:

P(A|B)=P(B|A)P(A)P(B)

Вероятностные модели предполагают, что данные, на которых они обучаются, отражают реальное распределение вероятностей появления всех значений каждого признака. Если данных достаточно много, и все признаки распределены нормально, это предположение может быть почти верным. Например, в задаче классификации вероятность соответствия результата y для набора признаков x1, x2,..., xn одному из классов A предсказывается по обобщенной теореме Байеса:

P(y=A|x1,x2,...,xn)=P(x1,x2,...,xn|y=A)P(y=A)P(x1,x2,...,xn)

Таким образом, для получения вероятности того, что результат y при значениях признаков x1, x2,..., xn примет значение А, нужно рассчитать три вероятности:

  1. P(y = A) – заведомо известная вероятность того, что у равна A.
  2. P(x1, x2,..., xn) – совместная вероятность того, что признаки примут такие значения (легко рассчитывается по набору данных или с помощью теоремы о полной вероятности).
  3. P(x1, x2,..., xn | у = A) – условная вероятность того, что признаки примут такие значения при данном значении результата (рассчитывается по набору данных либо с помощью цепного правила вероятностей).

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

Разведочный анализ данных

Разведочный анализ данных (exploratory data analysis, EDA) – это изучение данных для принятия решений по поводу их применения, очистки, преобразования и конструирования новых признаков. Как сказано выше, EDA – это чистая статистика, и основные цели его первого этапа – понять вид распределения признаков, основные параметры этого распределения, обнаружить выбросы и т.д.

В первую очередь для анализа данных обычно применяются гистограммы и "ящики с усами". Гистограмма просто разбивает весь диапазон данных на несколько отрезков, и для каждого отрезка выводит количество элементов набора данных, попадающих в этот отрезок. Легко заметить, что гистограмма отдаленно похожа на график функции плотности распределения вероятности, так что по ней очень легко определить, распределен ли признак нормально или имеет какое-то иное распределение. Обычно выводятся гистограммы сразу для нескольких признаков.

🎲 Зачем в науке о данных нужны теория вероятностей и статистика

"Ящик с усами" не позволяет увидеть общую картину распределения, зато предоставляет ценную информацию о его параметрах, особенно квантилях. Квантиль – это такое значение признака, что заданный процент значений этого признака в наборе данных меньше этого квантиля. Например, квантиль 50% – это такое значение, что половина значений признака меньше, а вторая половина – больше него, этот квантиль называется медианой. Квантили 0%, 25%, 50%, 75% и 100% называются квартилями, поскольку они делят область определения признака на четыре части.

"Ящик с усами" и его параметры. Минимум и максимум не учитывают выбросы (на рисунке не показаны)
"Ящик с усами" и его параметры. Минимум и максимум не учитывают выбросы (на рисунке не показаны)

"Усы" выводятся без учета выбросов (outliers) – значений, больших Q3+1.5*IQR или меньших Q1-1.5*IQR. Принято считать, что выбросы скорее свидетельствуют об ошибках ввода данных, чем о реальных значениях признаков, и с ними надо что-то делать – например, удалить. На нашем рисунке выбросы не показаны, а в реальных "ящиках с усами" они выводятся в виде кружков за пределами "усов". Все понятия, о которых мы говорили, изучает статистика.

Анализ зависимостей между признаками

Для исследования возможных зависимостей между признаками используется множество методов, но самые простые из них – попарная диаграмма и матрица корреляции. Начнем с попарной диаграммы (pairplot). Выбираются несколько признаков, зависимости между которыми вы хотите исследовать, и получается комбинированная диаграмма, включающая небольшую диаграмму рассеяния (scatter plot) для каждой пары параметров. В диагональных клетках обычно выводятся графики или гистограммы соответствующих признаков.

Попарная диаграмма четырех признаков пингвинов (для трех разных видов, обозначенных цветами). Рисунок взят из документации по Seaborn.
Попарная диаграмма четырех признаков пингвинов (для трех разных видов, обозначенных цветами). Рисунок взят из документации по Seaborn.

Коэффициент корреляции между двумя признаками x и y по набору данных, состоящему из n записей, считается следующим образом ("x с крышкой" и "y с крышкой" – средние значения x и y):

rxy=i=1n(xix¯)(yiy¯)i=1n(xix¯)2i=1n(yiy¯)2

Коэффициент корреляции всегда находится в интервале [-1, 1], и его значение показывает, насколько велика линейная зависимость между признаками. Если его значение близко к 1, то зависимость очень сильна, если к -1, то признаки противоположны друг другу, а если к 0 – совершенно не зависят друг от друга. Для анализа многих признаков сразу обычно выводится матрица корреляции, в которой цвет каждого коэффициента соответствует его значению.

Матрица корреляции для набора данных о "Титанике".
Матрица корреляции для набора данных о "Титанике".

Например, из матрицы корреляции для набора данных о "Титанике" легко увидеть, что какая-то положительная корреляция есть только между количеством родителей и количеством детей на борту: люди плыли либо парами/в одиночку, либо целыми семьями. Отрицательная корреляция есть между пассажирским классом и ценой проезда (естественно, билеты низших по номеру классов стоили дороже) и между полом и признаком выжившего: мужчины уступали места в шлюпках дамам.

Заключение

Как мы уже говорили, статистика занимает особое место в науке о данных, поскольку все данные собираются и обрабатываются именно методами статистики. Более того, иногда вся работа Data Scientist'а, включая создание и усовершенствование моделей, проводится только для того, чтобы доказать или опровергнуть какую-нибудь статистическую гипотезу! А это значит, что каждый Data Scientist обязан знать статистику на профессиональном уровне – по крайней мере, именно такие требования к ним предъявляют на Западе. Помимо статистики придется освоить основы математического анализа и линейной алгебры, о которых шла речь в первых публикациях нашего небольшого цикла.

***

Если вы хотите наработать необходимую для изучения Data Science математическую базу и подготовиться к углубленным занятиям в «Школе обработки данных» или Computer Science Center, обратите внимание на онлайн-курс «Библиотеки программиста». С помощью опытных преподавателей из ведущих вузов страны сделать это будет намного проще, чем самостоятельно по книгам.

МЕРОПРИЯТИЯ

Комментарии

ВАКАНСИИ

Добавить вакансию
Senior Java Developer
Москва, по итогам собеседования
Java Team Lead
Москва, по итогам собеседования
Разработчик С#
от 200000 RUB до 400000 RUB

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ