В жизни часто случается, что дополнительная информация радикально меняет нашу оценку вероятности события. Именно это и отражает понятие условной вероятности
, которое лежит в основе многих статистических методов и алгоритмов машинного обучения.
В этом параграфе мы познакомимся с условной вероятностью, формулой Байеса и концепцией независимости событий, а затем продемонстрируем их использование на конкретных примерах.
Но начнём чуть издалека.
Короткая история
Представьте — мы обучили модель, которая на основе определённых характеристик прогнозирует, болен человек или здоров. Теперь нам нужно проверить точность её прогнозов.
Для этого мы можем взять тестовую выборку пациентов, про которых мы уже знаем, здоровы они или больны, прогнать через модель, — а затем посчитать метрики качества (о них чуть ниже).
Сразу заметим, что подобные задачи называются задачами классификации — нам надо распределить объекты по классам. В этом случае объекты — это пациенты, а классов два — «болен» и «здоров».
Если считать, что тестовая выборка достаточно большая и репрезентативная, можно построить вероятностное пространство на основе этих данных. В нём будет четыре элементарных исхода:

Вероятностью каждого элементарного исхода мы будем считать долю соответствующих вариантов в нашей выборке.
Теперь поговорим о метриках. Самая простая — это accuracy
, вероятность правильного предсказания.
Для начала запишем результаты предсказаний модели по тестовой выборке в виде удобной таблицы, которая называется матрицей ошибок (confusion matrix)
. В каждой клетке этой таблицы записано количество людей из тестовой выборки с фиксированным состоянием здоровья и фиксированным предсказанием модели:
Болен |
Здоров |
|
Предсказано, что болен |
10 |
100 |
Предсказано, что здоров |
90 |
9800 |
Чтобы найти вероятность правильного предсказания, нужно количество людей с правильным предсказанием поделить на общее количество людей. У нас получится:
Это отличное значение!
Но при этом мы видим, что модель посчитала большинство больных людей здоровыми. Это показывает, что accuracy
не стоит применять при большом дисбалансе классов (9900 здоровых и 100 больных).
Видим, что нужны какие-то другие метрики для анализа качества модели. Например, precision
(точность) и recall
(полнота). Но, чтобы их посчитать, нам сперва нужно разобраться, что такое условная вероятность
.
Условная вероятность
Начнём с теории. Пусть некоторое событие имеет положительную вероятность . Тогда для любого события мы можем определить его условную вероятность при условии A
по формуле:
Вернёмся к нашей модели. Условные вероятности позволяют ввести следующие метрики:
precision
показывает, какая доля больных среди тех, кого модель считает больными, а recall
— какую долю больных модель правильно определила. Чем ближе эти величины к , тем лучше.
Классическое определение precision
и recall
В курсе машинного обучения эти метрики вводят немного иначе. Давайте посмотрим как.
В задаче бинарной классификации обычно выделяют один из классов, который, собственно, и хочется определять. Его называют положительным (positive). В примере выше это класс «болен». Оставшийся класс — отрицательный (negative). Эти названия совпадают с результатами тестов на болезнь.
Каждый элемент матрицы ошибок принято характеризовать двумя словами, описывающими предсказание модели. Первое говорит, верное было предсказание (true) или нет (false). А второе слово — это просто предсказанный класс.
Болен |
Здоров |
|
Предсказано, что болен |
True Positive (TP) |
False Positive (FP) |
Предсказано, что здоров |
False Negative (FN) |
True Negative (TN) |
В таких обозначениях метрики определяют следующим способом:
Как это определение соотносится с тем, что мы дали выше? Давайте проверим, что эти определения совпадают для метрики recall
.
Для метрики precision
вычисления абсолютно аналогичны.
Для модели из примера выше:
Несмотря на высокий accuracy
, метрики precision
и recall
оказались далеки от 1 — это показывает, что модель получилась не очень хорошей.
Теперь вернёмся к формуле условной вероятности и посмотрим, что ещё полезного она нам может дать.
Формула Байеса и формула полной вероятности
На практике часто бывает, что величины и известны, поэтому формулу оказывается удобнее переписать в виде . Теперь воспользуемся этой же формулой для того, чтобы переписать числитель в следующей дроби:
Полученная формула называется формулой Байеса
. Совсем скоро мы посмотрим на её применение в практических задачах. Но сначала давайте обсудим следующее замечание.
Формулу условной вероятности несложно обобщить на случай нескольких условий. Рассмотрим попарно непересекающиеся события положительной вероятности , для которых (их называют гипотезами
). Тогда для любого события верна формула:
Эта формула называется формулой полной вероятности
.
Теперь формулу Байеса можно переписать в следующем виде:
Посчитаем на примере
Представьте, что некоторая модель для 90% больных людей правильно предсказывает, что они больны, а для здоровых людей с вероятностью 2% даёт ложноположительный результат — то есть говорит, что они больны. При этом известно, что в мире в настоящий момент болеет всего 1% населения.
Пусть теперь вы воспользовались этой моделью и получили результат «болен». С какой вероятностью вы действительно больны? Может показаться, что вероятность по крайней мере 90%. Однако давайте посмотрим более внимательно.
Пусть событие , а событие
. Условие задачи примет вид:
По формуле Байеса получаем:
То есть вероятность быть действительно больным меньше одной трети!
Теперь давайте обсудим практическое применение формулы Байеса.
Байесовский классификатор
Предположим, что мы хотим классифицировать какие-то объекты. Например, хотим рассортировать электронную почту на спам и не спам. Для этого мы находим какие-то важные характеристики этих объектов.
Для электронных писем можно составить список ключевых слов, которые часто употребляются в спаме, и рассмотреть событие , которое будет описывать, какие из этих слов присутствуют в новом письме.
Например, «есть слова бесплатно и срочно, но нет слова акция». Тогда, чтобы определить, является ли спамом это новое письмо, нужно сравнить
.
Какая из этих условных вероятностей будет больше, к такому классу мы и отнесём это новое письмо.
Заметим, что знаменатели в правых частях формул одинаковые, то есть достаточно сравнить числители. А оба сомножителя в числителях можно найти по достаточно большой размеченной выборке писем (для которых достоверно известно, какие из них спам). находится как доля писем этого класса в выборке, а — как доля писем с характеристиками среди писем данного класса.
Кажется, что мы уже получили работающий спам-фильтр. Однако на практике не всё так просто. Список ключевых слов достаточно обширный, поэтому весть слова бесплатно и срочно, но нет слова ароятностная модель, построенная по тренировочной выборке, оказывается слишком неточной — если в выборке не встретилось ни одного письма с характеристиками , то мы не сможем достоверно оценить .
Чтобы разобраться, как можно обойти это ограничение модели, нам потребуется ещё немного теории.
Независимость событий
Рассмотрим два события и . Мы будем говорить, что и независимы, если знание о наступлении одного из них не влияет на вероятность наступления другого, то есть:
Это условие можно эквивалентно переписать так:
Или:
Эквивалентность означает, что можно использовать любое из этих условий.
Важно: обычно используют условие , так как условные вероятности могут быть не определены, если или .
Несмотря на то, что независимость кажется интуитивно понятным условием, хотим предостеречь: интуиция может нас подводить, поэтому проверять независимость стоит строго математически. Рассмотрим следующий пример.
Пусть мы кидаем честный кубик. Рассмотрим три события:
,
,
.
Являются ли события и независимыми? А события и ?
Кажется, что события и очень похожи, то есть ответы на эти вопросы должны быть одинаковыми. Однако давайте посмотрим, что нам говорят вычисления.
Наши события: , , .
Получаем:
и .
Теперь проверим независимость:
, то есть и независимы.
, то есть и не независимы!
Этот пример показывает, что интуицией стоит пользоваться аккуратно, а независимость проверять строго математически.
Если у нас не два события, а больше, то говорят либо о попарной независимости
, либо о независимости в совокупности
. Разберёмся, что это такое.
Пусть у нас есть события . Мы будем говорить, что попарно независимы
, если каждая пара событий , где , независима. Если же каждое из независимо от всех возможных пересечений остальных, то мы будем говорить, что независимы в совокупности
. Независимость в совокупности эквивалентна выполнению следующих условий:
где — все возможные наборы различных индексов.
Важно: из попарной независимости не следует независимость в совокупности!
Может звучать сложно — давайте для примера рассмотрим модель классической вероятности на множестве . И рассмотрим следующие события , , . Тогда
.
и .
Несложно проверить, что события попарно независимы. Однако
, то есть события не независимы в совокупности.
Кроме того, обратите внимание, что для проверки независимости в совокупности недостаточно проверять лишь самые длинные равенства из определения.
На практике оказывается полезным немного более сложное условие — условная независимость. Строго она формулируется следующим образом. События и называются независимыми при условии
если . Несмотря на то, что это свойство кажется похожим на обычную независимость событий, они никак не связаны друг с другом.
Аналогично тому, как для нескольких событий мы ввели независимость в совокупности, можно определить также условную независимость в совокупности
.
Наивный байесовский классификатор
Этого объёма теории уже достаточно, чтобы построить спам-фильтр, способный отсекать до 95% спама.
Рассмотренное ранее событие — «есть слова бесплатно и срочно, но нет слова акция» удобно представить в виде , где каждое — это отсутствие или наличие соответствующего слова. Если ключевых слов больше, то .
Основная проблема Байесовского классификатора заключается в том, что при больших тренировочного размеченного датасета не хватит, чтобы достоверно оценить .
Тут нам на помощь приходит наивное предположение о том, что все слова появляются как в спаме, так и не в спаме независимо друг от друга. Или, если говорить формально, независимы в совокупности как при условии «спам», так и при условии «не спам».
Посмотрим, что такое предположение даёт нам:
Заметим, что уже можно достоверно оценить по не очень большой выборке.
Стоит отметить, что этот же подход без изменений можно применить и к задачам многоклассовой классификации. Например, если нам потребуется рассортировать электронную почту на «спам», «промоакции» и «не спам».
Байесовский подход к вероятности
В прошлом параграфе мы рассмотрели частотный подход к вероятности на примере задачи определения вероятности клика по баннеру.
Единственный его недостаток — требование, чтобы выборка была достаточно большой. Однако порой людям хочется оценить хотя бы грубо вероятность события, которое у них не было возможности наблюдать. Тут нам опять помогает формула Байеса и её вариации.
Рассмотрим вероятность того, что в ближайшую тысячу лет большой метеорит столкнётся с Землей и уничтожит человечество, — событие . Такого раньше не случалось, и частотным подходом воспользоваться не получится. Однако мы можем рассмотреть более простое событие — в течение следующей тысячи лет астрономы засекут приближающийся к Земле астероид достаточно большого размера.
Мы знаем, что
В этой формуле — в мире достаточно много обсерваторий, чтобы гарантированно засечь такой большой астероид, а можно примерно найти, построив математическую модель подлёта астероида (пролетит ли он мимо Земли, если мы его засекли).
Оценка вероятности события при этом кажется уже гораздо проще оценки вероятности исходного события . Если у нас достаточно данных о наблюдениях астероидов, то можно воспользоваться частотным подходом. Иначе можно придумать некоторое удобное событие и применить к нахождению тот же приём.
Такой метод нахождения вероятности событий называется байесовским подходом
. Основным его недостатком является большая неточность, которую, к тому же, нельзя оценить. Однако, когда других вариантов нет, он позволяет получить хотя бы какую-то приблизительную оценку.
Ну вот, с условной вероятностью и её применениями мы разобрались. Советуем пройти квиз, чтобы закрепить знания, — а в следующем параграфе подведём итоги, чему вы научились в этой главе.