logo

Наївні байєсівські класифікатори

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

Що таке наївні байєсівські класифікатори?

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



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

Для задач класифікації використовується наївний алгоритм Байєса. Він широко використовується в класифікації текстів. У завданнях класифікації тексту дані містять велику розмірність (оскільки кожне слово представляє одну функцію в даних). Він використовується для фільтрації спаму, визначення настроїв, рейтингової класифікації тощо. Перевагою використання наївного методу Байєса є його швидкість. Це швидко, і робити прогнози легко з великою розмірністю даних.

Ця модель передбачає ймовірність приналежності екземпляра до класу з заданим набором значень ознаки. Це ймовірнісний класифікатор. Це тому, що передбачається, що одна функція в моделі не залежить від існування іншої. Іншими словами, кожна функція вносить свій внесок у прогнози без жодного зв’язку між собою. У реальному світі ця умова задовольняє рідко. Він використовує теорему Байєса в алгоритмі для навчання та прогнозування



Чому його називають наївним Байєсом?

Наївна частина назви вказує на спрощене припущення, зроблене класифікатором Наївного Байєса. Класифікатор передбачає, що ознаки, які використовуються для опису спостереження, є умовно незалежними, враховуючи позначку класу. Частина назви Байєса відноситься до преподобного Томаса Байєса, статистика і богослова 18-го століття, який сформулював теорему Байєса.

Розглянемо вигаданий набір даних, який описує погодні умови для гри в гольф. Враховуючи погодні умови, кожен кортеж класифікує умови як придатні (Так) або непридатні (Ні) для гри в гольф. Ось табличне представлення нашого набору даних.

OutlookТемператураВологістьВітряноГрати в гольф
0ДощоваГарячеВисокийпомилковийНемає
1ДощоваГарячеВисокийправдаНемає
2ПохмуроГарячеВисокийпомилковийТак
3СонячноПомірнийВисокийпомилковийТак
4СонячнокрутонормальнийпомилковийТак
5СонячнокрутонормальнийправдаНемає
6ПохмурокрутонормальнийправдаТак
7ДощоваПомірнийВисокийпомилковийНемає
8ДощовакрутонормальнийпомилковийТак
9СонячноПомірнийнормальнийпомилковийТак
10ДощоваПомірнийнормальнийправдаТак
одинадцятьПохмуроПомірнийВисокийправдаТак
12ПохмуроГаряченормальнийпомилковийТак
13СонячноПомірнийВисокийправдаНемає

Набір даних розділений на дві частини, а саме: матриця ознак і вектор відповіді .



  • Матриця ознак містить усі вектори (рядки) набору даних, у якому кожен вектор складається зі значення залежні особливості . У наведеному вище наборі даних такі функції: «Прогноз», «Температура», «Вологість» і «Вітер».
  • Вектор відповіді містить значення змінна класу (прогноз або вихід) для кожного рядка матриці ознак. У наведеному вище наборі даних ім’я змінної класу – «Грати в гольф».

Припущення Наївного Байєса

Основне припущення Наївного Байєса полягає в тому, що кожна функція робить:

  • Незалежність функції: Характеристики даних умовно не залежать одна від одної, враховуючи позначку класу.
  • Безперервні ознаки зазвичай розподіляються: Якщо ознака безперервна, то передбачається, що вона нормально розподілена в кожному класі.
  • Дискретні ознаки мають мультиноміальний розподіл: Якщо функція є дискретною, то передбачається, що вона має мультиноміальний розподіл у кожному класі.
  • Не менш важливі функції: Передбачається, що всі функції однаково сприяють передбаченню мітки класу.
  • Немає відсутніх даних: Дані не повинні містити пропущених значень.

Стосовно нашого набору даних цю концепцію можна розуміти як:

  • Ми припускаємо, що жодна пара ознак не є залежною. Наприклад, «гаряча» температура не має нічого спільного з вологістю, або «дощова» не впливає на вітер. Отже, передбачається, що функції є незалежний .
  • По-друге, кожній функції надається однакова вага (або важливість). Наприклад, знаючи лише температуру та вологість, неможливо точно передбачити результат. Жоден із атрибутів не є нерелевантним і не вважається таким, що сприяє порівну до результату.

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

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

Теорема Байєса визначає ймовірність події, яка відбудеться, враховуючи ймовірність іншої події, яка вже відбулася. Математично теорема Байєса формулюється як таке рівняння:

P(A|B) = fracP(B{P(B)}

де A і B — події, а P(B) ≠ 0

  • По суті, ми намагаємося знайти ймовірність події A, якщо подія B є істинною. Подія B також називається як докази .
  • P(A) - це апріорі А (попередня ймовірність, тобто ймовірність події до того, як буде видно докази). Свідченням є значення атрибута невідомого екземпляра (тут це подія B).
  • P(B) — гранична ймовірність: вірогідність доказів.
  • P(A|B) — це апостериорна ймовірність B, тобто ймовірність події після того, як буде видно докази.
  • P(B|A) — ймовірність правдоподібності, тобто ймовірність того, що гіпотеза справдиться на основі доказів.

Тепер, щодо нашого набору даних, ми можемо застосувати теорему Байєса таким чином:

P(y|X) = fracP(X{P(X)}

де y — змінна класу, а X — залежний вектор ознак (розміру п ) де:

X = (x_1,x_2,x_3,…..,x_n)

Просто для ясності прикладом вектора ознак і відповідної змінної класу може бути: (див. 1-й рядок набору даних)

X = (Rainy, Hot, High, False)>
y = No>

Отже, в основному,P(y|X) тут означає ймовірність не грати в гольф, оскільки погодні умови очікуються дощі, висока температура, висока вологість і відсутність вітру.

Стосовно нашого набору даних цю концепцію можна розуміти як:

  • Ми припускаємо, що жодна пара ознак не є залежною. Наприклад, «гаряча» температура не має нічого спільного з вологістю, або «дощова» не впливає на вітер. Отже, передбачається, що функції є незалежний .
  • По-друге, кожній функції надається однакова вага (або важливість). Наприклад, знаючи лише температуру та вологість, неможливо точно передбачити результат. Жоден із атрибутів не є нерелевантним і не вважається таким, що сприяє порівну до результату.

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

Тепер, якщо будь-які дві події A і B незалежні, тоді,

P(A,B) = P(A)P(B)>

Отже, доходимо до результату:

P(y|x_1,…,x_n) = frac P(x_1{P(x_1)P(x_2)…P(x_n)}

який можна виразити як:

P(y|x_1,…,x_n) = frac{P(y)prod_{i=1}^{n}P(x_i|y)}{P(x_1)P(x_2)…P(x_n)}

Тепер, оскільки знаменник залишається постійним для даного вхідного параметра, ми можемо видалити цей член:

P(y|x_1,…,x_n)propto P(y)prod_{i=1}^{n}P(x_i|y)

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

y = argmax_{y} P(y)prod_{i=1}^{n}P(x_i|y)

Отже, нарешті, ми залишилися з завданням обчислення P(y) іP(x_i | y) .

Будь ласка, зверніть увагу, щоP(y) також називається ймовірністю класу іP(x_i | y) називається умовною ймовірністю.

Різні наївні класифікатори Байєса відрізняються головним чином припущеннями, які вони роблять щодо розподілуP(x_i | y).

Давайте спробуємо вручну застосувати наведену вище формулу до нашого набору погодних даних. Для цього нам потрібно виконати деякі попередні обчислення нашого набору даних.

Треба знайти P(x_i | y_j) для кожногоx_i в X іy_j в y. Усі ці розрахунки продемонстровано в таблицях нижче:


Отже, на малюнку вище ми розрахувалиP(x_i | y_j) для кожногоx_i в X іy_j вручну в таблицях 1-4. Наприклад, ймовірність гри в гольф за умови прохолодної температури, тобто P(temp. = прохолодно | грати в гольф = Так) = 3/9.

Крім того, нам потрібно знайти ймовірності класуP(y) який було розраховано в таблиці 5. Наприклад, P(грати в гольф = Так) = 9/14.

Отже, ми закінчили з нашими попередніми обчисленнями, і класифікатор готовий!

повна форма

Давайте протестуємо його на новому наборі функцій (назвемо це сьогодні):

today = (Sunny, Hot, Normal, False)>

P(Yes | today) = fracYes)P(No Wind{P(today)}

і ймовірність не грати в гольф визначається:

P(No | today) = fracP(Sunny Outlook{P(today)}

Оскільки P(сьогодні) є спільним для обох ймовірностей, ми можемо ігнорувати P(сьогодні) і знайти пропорційні ймовірності як:

P(Yes | today) propto frac{3}{9}.frac{2}{9}.frac{6}{9}.frac{6}{9}.frac{9}{14} approx 0.02116

і

P(No | today) propto frac{3}{5}.frac{2}{5}.frac{1}{5}.frac{2}{5}.frac{5}{14} approx 0.0068

Тепер, оскільки

P(Yes | today) + P(No | today) = 1

Ці числа можна перетворити на ймовірність, зробивши суму рівною 1 (нормалізація):

P(Yes | today) = frac{0.02116}{0.02116 + 0.0068} approx 0.0237

і

P(No | today) = frac{0.0068}{0.0141 + 0.0068} approx 0.33

Оскільки

P(Yes | today)>P(Ні | сьогодні)

Отже, прогноз, що гратиметься в гольф, є «так».

Метод, який ми обговорювали вище, застосовний для дискретних даних. У разі безперервних даних нам потрібно зробити деякі припущення щодо розподілу значень кожної ознаки. Різні наївні класифікатори Байєса відрізняються головним чином припущеннями, які вони роблять щодо розподілуP(x_i | y).

Типи наївної моделі Байєса

Існує три типи наївної моделі Байєса:

Наївний байєсівський класифікатор Гауса

У Гаусовому наивному Байєсі безперервні значення, пов’язані з кожною ознакою, вважаються розподіленими відповідно до розподілу Гауса. Розподіл Гаусса також називають Нормальний розподіл На графіку вона дає дзвоноподібну криву, симетричну щодо середнього значення ознак, як показано нижче: нормально

Оновлена ​​таблиця попередніх ймовірностей для функції Outlook така:

Припускається, що ймовірність ознак є Гаусовою, отже, умовна ймовірність визначається як:

P(x_i | y) = frac{1}{sqrt{2pisigma _{y}^{2} }} exp left (-frac{(x_i-mu _{y})^2}{2sigma _{y}^{2}} ight )

Тепер ми розглянемо реалізацію класифікатора Gaussian Naive Bayes за допомогою scikit-learn.


Так

Немає

П (Так)

P (Ні)

Сонячно

3

2

3/9

2/5

Дощова

4

0

4/9

0/5

Похмуро

2

3

2/9

3/5

Всього

9

5

100%

100%

панель інструментів швидкого доступу Word


Python

# load the iris dataset> from> sklearn.datasets>import> load_iris> iris>=> load_iris()> > # store the feature matrix (X) and response vector (y)> X>=> iris.data> y>=> iris.target> > # splitting X and y into training and testing sets> from> sklearn.model_selection>import> train_test_split> X_train, X_test, y_train, y_test>=> train_test_split(X, y, test_size>=>0.4>, random_state>=>1>)> > # training the model on training set> from> sklearn.naive_bayes>import> GaussianNB> gnb>=> GaussianNB()> gnb.fit(X_train, y_train)> > # making predictions on the testing set> y_pred>=> gnb.predict(X_test)> > # comparing actual response values (y_test) with predicted response values (y_pred)> from> sklearn>import> metrics> print>(>'Gaussian Naive Bayes model accuracy(in %):'>, metrics.accuracy_score(y_test, y_pred)>*>100>)>
     Output:   Gaussian Naive Bayes model accuracy(in %): 95.0  Multinomial Naive Bayes  Feature vectors represent the frequencies with which certain events have been generated by a multinomial distribution. This is the event model typically used for document classification.   Bernoulli Naive Bayes  In the multivariate Bernoulli event model, features are independent booleans (binary variables) describing inputs. Like the multinomial model, this model is popular for document classification tasks, where binary term occurrence(i.e. a word occurs in a document or not) features are used rather than term frequencies(i.e. frequency of a word in the document). Advantages of Naive Bayes ClassifierEasy to implement and computationally efficient.Effective in cases with a large number of features.Performs well even with limited training data.It performs well in the presence of categorical features. For numerical features data is assumed to come from normal distributionsDisadvantages of Naive Bayes ClassifierAssumes that features are independent, which may not always hold in real-world data.Can be influenced by irrelevant attributes.May assign zero probability to unseen events, leading to poor generalization.Applications of Naive Bayes Classifier  Spam Email Filtering  : Classifies emails as spam or non-spam based on features.  Text Classification  : Used in sentiment analysis, document categorization, and topic classification.  Medical Diagnosis:   Helps in predicting the likelihood of a disease based on symptoms.  Credit Scoring:   Evaluates creditworthiness of individuals for loan approval.  Weather Prediction  : Classifies weather conditions based on various factors.As we reach to the end of this article, here are some important points to ponder upon: In spite of their apparently over-simplified assumptions, naive Bayes classifiers have worked quite well in many real-world situations, famously document classification and spam filtering. They require a small amount of training data to estimate the necessary parameters.Naive Bayes learners and classifiers can be extremely fast compared to more sophisticated methods. The decoupling of the class conditional feature distributions means that each distribution can be independently estimated as a one dimensional distribution. This in turn helps to alleviate problems stemming from the curse of dimensionality.ConclusionIn conclusion, Naive Bayes classifiers, despite their simplified assumptions, prove effective in various applications, showcasing notable performance in document classification and spam filtering. Their efficiency, speed, and ability to work with limited data make them valuable in real-world scenarios, compensating for their naive independence assumption. Frequently Asked Questions on Naive Bayes ClassifiersWhat is Naive Bayes real example?Naive Bayes is a simple probabilistic classifier based on Bayes’ theorem. It assumes that the features of a given data point are independent of each other, which is often not the case in reality. However, despite this simplifying assumption, Naive Bayes has been shown to be surprisingly effective in a wide range of applications. Why is it called Naive Bayes?Naive Bayes is called naive because it assumes that the features of a data point are independent of each other. This assumption is often not true in reality, but it does make the algorithm much simpler to compute. What is an example of a Bayes classifier?A Bayes classifier is a type of classifier that uses Bayes’ theorem to compute the probability of a given class for a given data point. Naive Bayes is one of the most common types of Bayes classifiers. What is better than Naive Bayes?There are several classifiers that are better than Naive Bayes in some situations. For example, logistic regression is often more accurate than Naive Bayes, especially when the features of a data point are correlated with each other. Can Naive Bayes probability be greater than 1?No, the probability of an event cannot be greater than 1. The probability of an event is a number between 0 and 1, where 0 indicates that the event is impossible and 1 indicates that the event is certain.>