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

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

Зачем использовать теорему Байеса в машинном обучении?

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

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

Прежде чем мы перейдем к самой теореме, давайте разберемся с некоторыми терминами на примере. Скажем, у менеджера книжного магазина есть информация о возрасте и доходе его клиентов. Он хочет знать, как распределяются продажи книг по трем возрастным классам покупателей: молодежь (18–35 лет), средний возраст (35–60 лет) и пожилые люди (60+).

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

Наша цель — определить условную вероятность нашей гипотезы H при заданном X, т. е. P(H | X).

Проще говоря, определяя P(H | X), мы получаем вероятность принадлежности X к классу C при заданном X. X имеет атрибуты возраста и дохода — скажем, например, 26 лет с доходом 2000 долларов. H — наша гипотеза о том, что покупатель купит книгу.

Обратите особое внимание на следующие четыре термина:

  1. Свидетельство. Как обсуждалось ранее, P(X) известно как свидетельство. Это просто вероятность того, что в этом случае покупателю будет 26 лет, и он заработает 2000 долларов.
  2. Априорная вероятность — P(H), известная как априорная вероятность, — это простая вероятность нашей гипотезы, а именно того, что покупатель купит книгу. Эта вероятность не будет обеспечена какими-либо дополнительными входными данными в зависимости от возраста и дохода. Поскольку расчет выполняется с меньшим количеством информации, результат менее точен.
  3. Апостериорная вероятность — P(H | X) известна как апостериорная вероятность. Здесь P(H | X) — это вероятность того, что покупатель купит книгу (H) при условии X (что ему 26 лет и он зарабатывает 2000 долларов).
  4. Вероятность — P(X | H) — вероятность правдоподобия. В этом случае, учитывая, что мы знаем, что покупатель купит книгу, вероятность правдоподобия — это вероятность того, что покупателю 26 лет и его доход составляет 2000 долларов.

Учитывая это, теорема Байеса утверждает:

P(H | X) = [ P(X | H) * P(H) ] / P(X)

Обратите внимание на появление в теореме четырех терминов, приведенных выше: апостериорная вероятность, вероятность правдоподобия, априорная вероятность и свидетельство.

Как применить теорему Байеса в машинном обучении

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

Давайте посмотрим, как можно применить наивный байесовский классификатор в качестве алгоритма классификации.

  1. Рассмотрим общий пример: X — это вектор, состоящий из «n» атрибутов, то есть X = {x1, x2, x3, …, xn}.
  2. Скажем, у нас есть m классов {C1, C2, …, Cm}. Наш классификатор должен будет предсказать, что X принадлежит к определенному классу. Класс, обеспечивающий наибольшую апостериорную вероятность, будет выбран как лучший класс. Таким образом, математически классификатор будет предсказывать класс Ci тогда и только тогда, когда P(Ci | X) > P(Cj | X). Применение теоремы Байеса:

P(Ci | X) = [ P(X | Ci) * P(Ci) ] / P(X)

  1. P(X), будучи независимым от условий, постоянен для каждого класса. Таким образом, чтобы максимизировать P(Ci | X), мы должны максимизировать [P(X | Ci) * P(Ci)]. Учитывая, что все классы равновероятны, мы имеем P(C1) = P(C2) = P(C3) … = P(Cn). Таким образом, в конечном итоге нам нужно максимизировать только P(X | Ci).
  2. Поскольку типичный большой набор данных, вероятно, будет иметь несколько атрибутов, выполнение операции P(X | Ci) для каждого атрибута требует значительных вычислительных ресурсов. Именно здесь вступает в действие условно-классовая независимость, которая упрощает задачу и снижает затраты на вычисления. Под классово-условной независимостью мы подразумеваем, что мы считаем значения атрибута независимыми друг от друга условно. Это наивная байесовская классификация.

P(Xi | C) = P(x1 | C) * P(x2 | C) *… * P(xn | C)

Теперь легко вычислить меньшие вероятности. Здесь следует отметить одну важную вещь: поскольку xk принадлежит каждому атрибуту, нам также необходимо проверить, является ли атрибут, с которым мы имеем дело, категориальным или непрерывным.

  1. Если у нас есть категориальный атрибут, все проще. Мы можем просто подсчитать количество экземпляров класса Ci, состоящих из значения xk для атрибута k, а затем разделить его на количество экземпляров класса Ci.
  2. Если у нас есть непрерывный атрибут, учитывая, что у нас есть функция нормального распределения, мы применяем следующую формулу со средним значением ? и стандартное отклонение ?:

В конечном итоге мы получим P(x | Ci) = F(xk, ?k, ?k).

  1. Теперь у нас есть все значения, необходимые для использования теоремы Байеса для каждого класса Ci. Нашим прогнозируемым классом будет класс, достигший наибольшей вероятности P(X | Ci) * P(Ci)читать лучшие книги по машинному обучению

Пример: Предиктивная классификация покупателей книжного магазина

У нас есть следующий набор данных из книжного магазина:

ВозрастДоходСтудентКредит_РейтингКуплен_КнигаМолодежьВысокийНетУдовлетворительноНетМолодежьВысокийНетОтличноНетСредний_возрастВысокийНетУдовлетворительноДаСтаршийСреднийНетУдовлетворительноДаСтаршийНизкийДаУдовлетворительноДаСтаршийНизкийДаОтличноНетСредний_возрастНизкийДаОтличноДаМолодежьСреднийНетУдовлетворительноНетМолодежьНизкийДаУдовлетворительноДаСтаршийСреднийДаУдовлетворительноДаМолодежьСреднийДаОтличноДа Средний_возрастСреднийНетОтличноДаСредний_возрастВысокийДаУдовлетворительноДаСтаршийСреднийНетОтличноНет

У нас есть такие атрибуты, как возраст, доход, студент и кредитный рейтинг. Наш класс, buys_book, имеет два результата: Да или Нет.

Наша цель состоит в том, чтобы классифицировать на основе следующих признаков:

X = {возраст = молодежь, студент = да, доход = средний, кредитный_рейтинг = удовлетворительный}.

Как мы показали ранее, чтобы максимизировать P(Ci | X), нам нужно максимизировать [P(X | Ci) * P(Ci)] для i = 1 и i = 2.

Следовательно, P(buys_book = yes) = 9/14 = 0,643.

P(buys_book = нет) = 5/14 = 0,357

P(возраст = молодость | покупка_книги = да) = 2/9 = 0,222

P(возраст = молодость | покупка_книги = нет) = 3/5 = 0,600

P(доход = средний | книга_покупок = да) = 4/9 = 0,444

P(доход = средний | книга_покупок = нет) = 2/5 = 0,400

P(студент = да | покупает_книгу = да) = 6/9 = 0,667

P(студент = да | покупает_книгу = нет) = 1/5 = 0,200

P(кредит_рейтинг = справедливо | книга_покупок = да) = 6/9 = 0,667

P(кредит_рейтинг = справедливо | книга_покупок = нет) = 2/5 = 0,400

Используя вычисленные выше вероятности, имеем

P(X | книга_покупок = да) = 0,222 х 0,444 х 0,667 х 0,667 = 0,044

Сходным образом,

P(X | buys_book = нет) = 0,600 х 0,400 х 0,200 х 0,400 = 0,019

Какой класс Ci обеспечивает максимальное значение P(X|Ci)*P(Ci)? Мы вычисляем:

P(X | покупка_книги = да) * P(покупки_книги = да) = 0,044 x 0,643 = 0,028

P(X | покупка_книги = нет) * P(покупки_книги = нет) = 0,019 x 0,357 = 0,007

Сравнивая два приведенных выше показателя, начиная с 0,028 > 0,007, наивный байесовский классификатор прогнозирует, что покупатель с указанными выше атрибутами будеткупить книгу.

Является ли байесовский классификатор хорошим методом?

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

освойте продвинутые навыки из лучшей книги по машинному обучению