Эта статья была опубликована в рамках Блогатона по науке о данных, проводимого analyticsvidhya.com

Введение

Предположим, вы находитесь в компании на собеседовании при приеме на работу, и ваш друг пришел на собеседование раньше вас. Вы оцениваете свои шансы быть выбранными как низкие, но когда вы слышите от своего друга, что собеседование было довольно легким, и он/она считает, что у них есть хорошие шансы быть выбранными, не переоцените ли вы и свои шансы? Ну, это суть теоремы Байеса.

Теорема Байеса, пожалуй, самая важная теорема в контексте вероятностей. Проще говоря, теорема Байеса помогает нам обновить наши прежние убеждения на основе некоторых новых данных. Это, вероятно, суть теоремы Байеса. Я уверен, что у вас есть немало вопросительных знаков по этому поводу, но не волнуйтесь, я вас прикрою :).

Прежде чем перейти к теореме Байеса, нам нужно освежить понятие условной вероятности. Традиционную вероятность можно объяснить как отношение числа благоприятных событий к общему числу событий. Используя это, можно вывести формулу условной вероятности, которая представляет собой вероятность события А при условии, что произошло событие В. Следовательно, приведенная выше формула будет изменена на

Иллюстрация с использованием шариков

Сумка 1– 2 белых, 3 черных шарика.

Сумка 2– 4 белых, 2 черных шарика.

Теперь, если я попрошу вас вычислить вероятность того, что из мешка 1 выпадет белый шарик, вы легко сможете это вычислить, верно? (2/5 = 40%) С другой стороны, если бы я сказал, что белый шарик вынут, определите вероятность того, что он был взят из мешка 2. Как бы вы это вычислили?

Введите «преподобный Томас Байес». Он обнаружил, что если вы можете оценить значения P(A), P(B) и условную вероятность P(B|A), вы можете вычислить условную вероятность P(A|B). Вот почему эту теорему также называют «вероятностью причин».

Событие A — Получение белого шарика

Событие E1 — Выбор сумки 1

Событие E2 — Выбираем сумку 2

P (выбор пакета 1) = P(E1) = P(выбор пакета 2) = P(E2) = 1/2

P(белый мрамор, учитывая, что он из мешка 1) = P(A|E1)= 2/5

P(белый шарик, учитывая, что он из мешка 2) = P(A|E2) = 4/6

Чтобы найти, Вероятность извлечения шарика из мешка 2 при условии, что это белый шарик. С помощью теоремы Байеса мы можем найти P(E2|A).

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

Иллюстрация с использованием футбола

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

Мохамед Салах — футболист мирового класса, нападающий футбольного клуба «Ливерпуль». Он преимущественно левша, поэтому чаще наносит удары левой ногой.

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

Примечание. xG (ожидаемый гол) — это показатель качества броска, то есть каковы шансы забить гол с этой позиции на основе прошлых записей.

Пусть события будут такими,

А — забить гол

E1 — выстрел был произведен с правой ноги

E2 — выстрел произведен с левой ноги

Как показано ниже, Мо Салах сделал в общей сложности 139 бросков в сезоне 2021–22. Поэтому,

P(снимок сделан справа) = P(E1) = 15/139 = 0,1079

P(снимок сделан слева) = P(E2) = 117/139 = 0,8417

Теперь об условных вероятностях, которые будут равны xG/выстрел для этой конкретной стопы.

P(забитый гол при ударе с правой ноги) = P(A|E1) = 0,27

P(забитый гол при ударе с левой ноги) = P(A|E2) = 0,16

Теперь осталось только подставить значения в формулу, упомянутую в первом примере, и бум, у вас есть ответ.

Таким образом, вероятность того, что Мо Салах нанес удар правой ногой, при условии, что удар был забит, составляет 0,1779 ~ 18%. Таким образом, есть вероятность 18 %, что удар был нанесен справа, учитывая, что это был гол. Аналогичным образом, можете ли вы узнать вероятность того, что Мо Салах нанес удар левой ногой, если в результате был забит гол? Дайте мне знать ответ в комментариях.

Теорема Байеса в машинном обучении

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

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

Как показано на рисунке выше, можно рассчитать апостериорную вероятность каждого класса с учетом характеристик и выбрать максимальную апостериорную вероятность, также называемую Максимальная апостериорная вероятность (MAP). Предельная вероятность постоянна для каждого класса и используется только для нормализации результата.

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

гауссовский

  • нормальное распределение
  • непрерывные значения

Многочлен:

  • мультиномиальное распределение
  • полиномиальные категориальные переменные

Бернулли:

  • биномиальное распределение
  • бинарные категориальные переменные

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

Win Predictor Используя наивную байесовскую модель

Давайте реализуем наивную байесовскую модель на Python, чтобы получить практическое представление о модели. Начнем с импорта данных и необходимых библиотек. Данные взяты с fotmob.com, ознакомиться с инструкцией можно здесь.

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
#ML libs
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import confusion_matrix,accuracy_score
#reading the data
df = pd.read_csv('ISL_Per_Match.csv')
df.head()

В наборе данных не было столбца результатов, поэтому я добавил его.

#Home — 1
#Away — 2
#Draw — 0
results = []
result = 0
for i in range(len(df)):
  if df.home_team_score[i] > df.away_team_score[i]:
     result = 1
     results.append(result)
  elif df.home_team_score[i] < df.away_team_score[i]:
     result = 2
     results.append(result)
  else:
     result = 0
     results.append(result)
df['result'] = results

Затем я заменил названия команд цифрами.

df.replace({‘ATK Mohun Bagan FC’:1, ‘Bengaluru FC’:2, 
            ‘SC East Bengal’:3,‘Mumbai City FC’:4, ‘Hyderabad FC’:5, 
            ‘Odisha FC’:6,‘Northeast United FC’:7, ‘FC Goa’:8,
‘Jamshedpur’:9,'Chennaiyin FC’:10,‘Kerala Blasters FC’:11},inplace=True)

Обучение модели и прогнозирование результатов.

X = df.drop(['result'],axis=1)
y = df['result']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
gnb = GaussianNB()
y_pred = gnb.fit(X_train, y_train).predict(X_test)
cf = confusion_matrix(y_test,y_pred)
sns.heatmap(cf, annot=True)

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

Заключение

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

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

Подводя итог статьи:

  1. Теорема Байеса — это научный подход к обновлению предыдущих убеждений с учетом новых данных. То есть, если известна вероятность событий A, B и (B при задании A), вы можете вычислить P(A при задании B).
  2. Он используется в нескольких секторах, таких как финансы, спорт и здравоохранение, для оценки шансов.
  3. Он закладывает основу для моделей машинного обучения, таких как наивная теорема Байеса.
  4. Наивная байесовская модель в основном используется в системах фильтрации спама, анализа настроений и рекомендаций.

Я надеюсь, что эта статья помогла вам понять теорему и ее использование в машинном обучении.

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