Наївний алгоритм Байєса в машинному навчанні
Наївний алгоритм класифікатора Байєса
Класифікатор — це алгоритм машинного навчання, який класифікує дані в один або кілька з набору «класів». Класифікатор електронної пошти є одним із прикладів класифікатора, який сканує електронні листи, щоб відфільтрувати їх за міткою класу: спам або не спам.
Наивний класифікатор Байєса в машинному навчанні — це кероване машинне навчання для завдань класифікації.
Наївний Байєс використовується для розв'язання задач класифікації. Він прогнозує на основі ймовірності об’єкта. Naive Bayes базується на теоремі Байєса і використовується переважно для класифікації тексту. Наивний Байєс – це імовірнісний алгоритм класифікації, який легко реалізувати та швидко навчити.
Оскільки наївний класифікатор Байєса базується на теоремі Байєса, він відомий як класифікатор ймовірностей. Він прогнозує на основі ймовірності елемента.
Чому вас називають наївним Байєсом?
Класифікатор Naive Bayes має два слова: Naive і Bayes. Чому Navie? Цей алгоритм розглядає всі речення зі словами як однакові. Наприклад, «Ви є» і «Ви» однакові для цього алгоритму. Це не залежить від особливостей або появи ознак. Якщо ви хочете впізнати фрукт яблуко, вам потрібен червоний колір, сферична форма, солодкий смак, щоб розпізнати яблуко. Це означає, що ці функції не залежать одна від одної.
- Наївний класифікатор Байєса припускає, що ознаки незалежні одна від одної. Оскільки це рідко можливо в даних реального життя, тому класифікатор називають наївним.
- Цей алгоритм класифікації базується на теоремі Байєса, відомої як наивний класифікатор Байєса.
Наївна теорема Байєса
Теорема Байєса використовується для визначення ймовірності гіпотези з умовними ймовірностями, що залежать від попередніх знань. Ця теорема названа на честь Томаса Байєса. Наївний класифікатор Байєса працює за принципом умовної ймовірності, як визначено теоремою Байєса.
Щоб зрозуміти теорему Байєса, давайте розглянемо простий приклад класифікатора Байєса підкидання двох монет. Ми можемо отримати ці зразки місць, кинувши дві монети: {HH, HT, TH, TT}. Отже, ймовірності цих подій будуть:
- Отримання двох голов = 1/4
- Принаймні один хвіст = 3/4
- Друга монета є головою, якщо перша монета має решту = 1/2
- Отримати дві голови за першу монету це голова = 1/2
Теорема Байєса розраховує ймовірність події на основі ймовірності іншої події, яка вже відбулася. Формула для теореми Байєса має вигляд:
P(A|B) = (P(B|A) * P(A)) / P(B)
P(A|B) Імовірність навіть A, коли навіть B вже відбулося. Імовірність P(B) не повинна дорівнювати нулю.
- Вам потрібно знайти ймовірність події A, яка дається, коли подія B (доказ) істинна.
- P(A) є апріорним (апріорним, тобто ймовірністю спостережуваної події до доказу) A. Тут подія B є значенням невідомого екземпляра.
- P(A|B) — апостеріорна ймовірність події B, тобто ймовірність події після перегляду доказів.
Робочий приклад наївного класифікатора Байєса
Розглянемо приклад покупки, щоб зрозуміти роботу простого класифікатора Байєса. У цьому наборі даних є невеликий вибірковий набір даних із 30 рядків для цього прикладу.
Набір даних
Проблема полягає в тому, щоб передбачити, чи буде людина купувати продукт у конкретну комбінацію дня, знижки та безкоштовної доставки, використовуючи наївну теорему Байєса.
Крок 1) Ми створимо частотні таблиці для кожного атрибута, використовуючи типи вхідних даних, згадані в наборі даних, такі як дні, знижка та безкоштовна доставка.
Нехай подія «Купити», позначена як «А», і незалежні змінні, а саме «Знижка», «Безкоштовна доставка» і «День», позначені як «В». Ми використаємо ці події та змінні для застосування теореми Байєса.
Крок 2) Тепер обчислимо таблиці правдоподібності одну за одною.
Приклад 1:
На основі цієї таблиці правдоподібності ми розрахуємо умовні ймовірності, як показано нижче.
P(A) = P(No Buy) = 6/30 = 0.2 P(B) = P(Weekday) = 11/30 = 0.37 P(B/A) = P(Weekday / No Buy) = 2/6 = 0.33
І знайдіть P(A/B), використовуючи теорему Байєса,
P(A/B) = P(No Buy / Weekday) = P(Weekday / No Buy) * P(No Buy) / P(Weekday) = (2/6 * 6/30) / (11/30) = 0.1818
Подібним чином, якщо A означає "Купити", тоді
= P(Buy / Weekday) = P(Weekday / Buy) * P(Buy) / P(Weekday) = (9/24 * 24/30) / (11/30) = 0.8181
Примітка: Оскільки P(Buy | Weekday) більше, ніж P(No Buy | Weekday), ми можемо зробити висновок, що клієнт, швидше за все, купить продукт у будній день.
Крок 3) Подібним чином ми можемо обчислити ймовірність настання події на основі всіх трьох змінних. Тепер ми обчислимо таблиці правдоподібності для всіх трьох змінних, використовуючи вищенаведені таблиці частот.
Приклад 2:
Тепер, використовуючи ці три таблиці ймовірності, ми обчислимо, чи ймовірно клієнт зробить покупку на основі конкретної комбінації «День», «Знижка» та «Безкоштовна доставка».
Розглянемо комбінацію цих факторів:
- День = Свято
- Знижка = Так
- Безкоштовна доставка = Так
Коли, A = купити
Розрахувати умовну ймовірність покупки за такою комбінацією дня, знижки та безкоштовної доставки.
Де B є:
- День = Свято
- Знижка = Так
- Безкоштовна доставка = Так
І A = Купити
Таким чином,
= P(A/B) = P(Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes) = ( P(Discount=(Yes/Buy)) * P(Free Delivery=(Yes/Buy)) * P(Day=(Holiday/Buy)) * P(Buy) ) / ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) ) = (19/24 * 21/24 * 8/24 * 24/30) / (20/30 * 23/30 * 11/30) = 0.986
Коли, A = Ні покупки
Подібним чином обчисліть умовну ймовірність покупки за такою комбінацією дня, знижки та безкоштовної доставки.
Де B є:
- День = Свято
- Знижка = Так
- Безкоштовна доставка = Так
І A = Не можна купувати
Таким чином,
= P(A/B) = P(No Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes) = ( P(Discount=(Yes/No Buy)) * P(Free Delivery=(Yes/No Buy)) * P(Day=(Holiday/No Buy)) * P(No Buy) ) / ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) ) = (1/6 * 2/6 * 3/6 * 6/30) / (20/30 * 23/30 * 11/30) = 0.027
Крок 4) Отже,
Імовірність покупки = 0.986
Імовірність відсутності покупки = 0.027
Нарешті, у нас є умовні ймовірності купити в цей день. Давайте тепер узагальнимо ці ймовірності, щоб отримати ймовірність подій.
- Сума ймовірностей = 0.986 + 0.027 = 1.013
- Ймовірність покупки = 0.986 / 1.013 = 97.33 %
- Ймовірність відсутності покупки = 0.027 / 1.013 = 2.67 %
Зауважте, що 97.33% більше, ніж 2.67%. Можна зробити висновок, що середньостатистичний покупець буде купувати на свято зі знижкою та безкоштовною доставкою.
Типи наївної моделі Байєса
Існує багато типів наївних байєсівських класифікаторів. Тут ми обговорили мультиноміальний класифікатор, класифікатор Бернуллі та гаусівський наївний байєсівський класифікатор.
1. Багаточлен наївного Байєса
Цей тип наївної моделі Байєса використовується для проблем класифікації документів. Він працює з функціями, які представляють частоту слів у документі. Класифікатор враховує наявність і кількість слів, щоб визначити ймовірність приналежності документа до певної категорії, як-от спорт, політика чи технології.
2. Бернуллі Наївний Байєс
Це схоже на багаточлен Наївного Байєса. Класифікатор Bernoulli Naive Bayes використовується для завдань класифікації документів. Однак він використовує булеві предиктори. Він показує, присутнє слово чи ні, і приймає лише значення «Так» або «Ні». Класифікатор обчислює ймовірності на основі того, чи зустрічається слово в тексті чи ні.
3. Гаусівський наївний Байєс
Цей класифікатор використовується у випадку безперервного значення, але не дискретного значення. Цей класифікатор обчислює ймовірності за допомогою параметрів Гауссія розподіл, тобто середнє та дисперсія.
Формула для умовної ймовірності змінюється на
Переваги та обмеження простого класифікатора Байєса
Існують різні переваги та недоліки алгоритму Наївного Байєса в машинному навчанні.
Переваги простого класифікатора Байєса
- Простота та ефективність: Naive Bayes простий і легкий у навчанні та застосуванні. Він ефективний через низьку обчислювальну вартість. Він може ефективно обробляти великі набори даних.
- Швидке навчання та прогнозування: Наивний Байєс не потребує стільки навчальних даних через незалежність між функціями. Він може швидко передбачати, коли модель навчена.
- Масштаб Наивний Байєс може обробляти багатовимірні набори даних із великою кількістю функцій. Він добре працює, навіть якщо кількість функцій перевищує кількість навчальних прикладів. Він масштабується відповідно до кількості точок даних і предикторів. Він обробляє як безперервні, так і дискретні дані.
- Стійкість до нерелевантних функцій: Він не чутливий до несуттєвих функцій.
- Добре працює з невеликими наборами для тренувань: Наивний Байєс може забезпечити розумні результати навіть з обмеженими навчальними даними. Він може обробляти ситуації, коли кількість екземплярів навчання невелика. Для цього не потрібно стільки тренувальних даних.
Обмеження простого класифікатора Байєса
Наївний Байєс в навчання за допомогою машини припускає, що всі функції незалежні одна від одної. Таким чином, він не може дізнатися про зв’язки між різними функціями в даних. Він розглядає кожну функцію так, ніби вона не має жодного відношення до інших.
Щоб подолати цю проблему, ви можете використовувати Дерева рішень, випадкові ліси, опорні векторні машини (SVM), нейронні мережі тощо. Ці алгоритми мають здатність вивчати складні зв’язки та залежності між функціями в даних. Таким чином, вони можуть передбачити більш точні результати.
Застосування наївного класифікатора Байєса
Оскільки цей алгоритм швидкий і ефективний, ви можете використовувати його для прогнозування в реальному часі.
Виявлення спаму
Послуги електронної пошти (наприклад, Gmail) використовують цей алгоритм, щоб визначити, чи є лист спамом. Цей алгоритм чудово підходить для фільтрації спаму.
Аналіз почуттів
Він може класифікувати текст як позитивний, негативний або нейтральний на основі таких ознак, як вибір слова, структура речення та контекст. Він знаходить застосування в моніторингу соціальних мереж, оглядах клієнтів і дослідженні ринку.
Класифікація документів
Він може класифікувати документи за такими категоріями, як спорт, політика, технології чи фінанси на основі частоти або наявності певних слів чи функцій у документі.
Рекомендуючі системи
Він може аналізувати вподобання користувачів, історичні дані та характеристики предметів, щоб передбачити інтереси користувачів або вподобання для рекомендації продуктів, фільмів або статей.
Цей алгоритм класифікатора також використовується для розпізнавання облич, прогнозування погоди, медичної діагностики, покупок, класифікації новин тощо. Ви можете застосувати наивний Байєс у Python. Є класифікатор Naive Bayes sklearn, тобто sklearn.naive_bayes. Це модуль, який реалізує цей алгоритм.
Висновок
Наївні алгоритми Байєса в машинному навчанні — це класифікатори, які переважно використовуються для виявлення спаму, класифікації новин, аналізу настроїв, прогнозування погоди, покупок тощо. Наївні алгоритми Байєса засновані на теоремі Байєса. Це алгоритм є простим і легким у реалізації. Оскільки він швидкий, ми можемо використовувати його в програмах реального часу. Його найбільшим недоліком є те, що він передбачає наявність незалежних функцій (оскільки незалежні функції рідко можливі в реальному житті, тому він відомий як Naive). Він розглядає кожну функцію як рівноправну. Щоб подолати цей недолік, ви можете використовувати інші класифікатори, такі як Дерево рішень, Випадковий ліс, Машина опорних векторів (SVM) тощо.