Наївний Байєс

Він є типовим ймовірнісним алгоритмом машинного навчання, який використовує теорему Байєса для генерації результату. Щоб зрозуміти цей алгоритм, потрібно чітко розуміти теорему Байєса.

Теорема Байєса:

Вона надає спосіб оновлення гіпотези C на основі нових доказів. Головним елементом теореми Байєса є умовна ймовірність.

Розглянемо приклад:

У коробці є п’ять куль: три з них червоні, а дві сині.

P(a) = червона куля = 3/5

P(b) = синя куля = 2/5

P(a|b) — це умова, коли одна куля вибрана, і це синя. Тобто, це буде виглядати так:

P(b/a) = 1/4

P(a|b) = P(a ∩ b) / P(b)

P(a ∩ b) = P(b) x P(b/a) = 2/5 x 1/4 = 1/10

P(a|b) = P(a ∩ b) / P(b) = (1/10) / (2/5) = 1/4

Ось так відбувається умовне обчислення.

Наївний Байєс:

Розглянемо приклад. Уявімо, що ви отримуєте листи, де деякі можуть бути від друзів або компаній, а деякі — спамом. Розглянемо слова Dear, Friend, Lunch і Money, які зазвичай зустрічаються в звичайних листах.

Є 12 повідомлень, з яких 8 — звичайні, а 4 — спам.

pic

Лист від друга

Ймовірність кожного слова у цих листах:

P(Dear) = 0.47

P(Friend) = 0.29

P(Lunch) = 0.18

P(Money) = 0.06

pic

Лист зі спамом

Тепер розглянемо цей спам-лист, ймовірності для якого наступні:

P(Dear) = 0.29

P(Friend) = 0.14

P(Lunch) = 0.00

P(Money) = 0.57

Уявімо, що ми отримуємо повідомлення "Dear Friend", і нам потрібно вирішити, чи це звичайне чи спам-повідомлення.

Оскільки з 12 повідомлень 8 — звичайні:

P(N) = 0.67

Початкове припущення, яке ми спостерігаємо, називається Prior Probability.

Множимо ймовірності слів "Dear" та "Friend":

P(N|Dear Friend) = P(N) x P(Dear|N) x P(Friend|N) = 0.09

Тепер для спам-повідомлень:

P(s) = 0.33

P(s|Dear Friend) = P(s) x P(Dear) x P(Friend) = 0.01

Оскільки P(N|Dear Friend) [0.09] > P(s|Dear Friend) [0.01], то "Dear Friend" відноситься до звичайного повідомлення.

Варіант ii:

Розглянемо слова "Lunch Money Money Money Money".

У звичайному повідомленні обчислення буде таким же, як і за попереднім методом:

P(N|Lunch Money Money Money Money) = 0.000002

У той час, як у спамі P(Lunch) дорівнює нулю, що завжди дає нульовий результат.

Для цієї проблеми зазвичай потрібно додавати одиничний рахунок для кожного слова. Тепер, коли ми обчислюємо ймовірності, ми не отримаємо нуль.

Тепер результат буде таким:

P(s|Lunch Money Money Money Money) = 0.00122, що більше, отже, "Lunch Money Money Money Money" — це спам-повідомлення.

Перегляньте мій Colab для реалізації.

[

Google Colab

Опис редагування

colab.research.google.com

](https://colab.research.google.com/drive/1zlkj4Z909jhLqm7wBYxj5thAjCfxwdX?usp=sharing&source=postpage-----bd0fbd7836ef--------------------------------)

Перекладено з: Naive bayes

Leave a Reply

Your email address will not be published. Required fields are marked *