Наивен алгоритъм на Бейс в машинното обучение

Алгоритъм за наивен класификатор на Бейс

Алгоритъм за наивен класификатор на Бейс

Класификаторът е алгоритъм за машинно обучение, който категоризира данните в един или повече от набор от „класове“. Имейл класификаторът е един пример за класификатор, който сканира имейли, за да ги филтрира по етикет на клас: Спам или Не Спам.

Naive Bayes Classifier в машинното обучение е контролирано машинно обучение за класификационни задачи.

Алгоритъм за наивен класификатор на Бейс

Naive Bayes се използва за решаване на проблеми с класификацията. Той прогнозира въз основа на вероятността за обект. Naive Bayes се основава на теоремата на Bayes и се използва най-вече за класификация на текст. Naive Bayes е алгоритъм за вероятностна класификация, който е лесен за внедряване и бърз за обучение.

Тъй като Naive Bayes класификаторът се основава на теоремата на Bayes, той е известен като вероятностен класификатор. Той прогнозира въз основа на вероятността за даден елемент.

Причина да бъдете наричани Наивен Бейс?

Класификаторът Naive Bayes има две думи: Naive и Bayes. Защо Navie? Този алгоритъм третира всички изречения с думи като еднакви. Например „Вие сте“ и „Вие ли сте“ са едни и същи за този алгоритъм. Не зависи от функции или появата на характеристики. Ако искате да идентифицирате плода Ябълка, тогава имате нужда от червен цвят, сферична форма, сладък вкус, за да разпознаете като ябълка. Това означава, че тези функции са независими една от друга.

  • Класификаторът на Naive Bayes предполага, че характеристиките са независими един от друг. Тъй като това рядко е възможно в данните от реалния живот, класификаторът се нарича наивен.
  • Този класификационен алгоритъм се основава на теоремата на Байс, така известна като наивен класификатор на Байс.

Наивна теорема на Бейс

Теоремата на Байс се използва за намиране на вероятността на хипотеза с условни вероятности, зависещи от предварителното знание. Тази теорема е кръстена на Томас Байс. Класификаторът на Naive Bayes работи на принципа на условната вероятност, както е дадено от теоремата на Bayes.

За да разберем теоремата на Бейс, нека разгледаме прост пример за наивен класификатор на Бейс за хвърляне на две монети. Можем да получим тези примерни пространства, като хвърлим две монети: {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 priori (a priori, т.е. вероятността за наблюдавано събитие преди доказателство) на A. Тук събитие B е стойността на неизвестен екземпляр.
  • P(A|B) е последващата вероятност за събитие B, т.е. вероятността за събитието след преглед на доказателствата.

Работен пример за класификатор на Naive Bayes

Нека вземем пример за пазаруване, за да разберем работата на Bayes Naive Classifier. В този набор от данни има малък примерен набор от 30 реда за този пример.

Масив от данни

Работен пример за наивен класификатор на Бейс

Проблемът е да се предскаже дали човек ще купи продукт на конкретна комбинация от ден, отстъпка и безплатна доставка, като се използва наивната теорема на Бейс.

Работен пример за наивен класификатор на Бейс

Стъпка 1) Ще създадем честотни таблици за всеки атрибут, като използваме типовете вход, споменати в набора от данни, като дни, отстъпка и безплатна доставка.

Работен пример за наивен класификатор на Бейс

Нека събитието „Купете“, означено като „A“, и независими променливи, а именно „Отстъпка“, „Безплатна доставка“ и „Ден“, означени като „B“. Ще използваме тези събития и променливи, за да приложим теоремата на Байс.

Стъпка 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

По същия начин, ако А е Купува, тогава

= 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) По същия начин можем да изчислим вероятността за настъпване на събитие въз основа на всичките три променливи. Сега ще изчислим таблиците на вероятността за всичките три променливи, използвайки горните честотни таблици.

Работен пример за класификатор на Naive Bayes

Пример 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. Мултиномен наивен Бейс

Този тип модел на Naive Bayes се използва за проблеми с класификацията на документи. Работи с функции, които представят честотата на думите в документ. Класификаторът отчита появата и броя на думите, за да определи вероятността даден документ да принадлежи към конкретна категория, като например спорт, политика или технология.

2. Бернули Наивен Бейс

Това е подобно на мултиномиалния наивен бейс. Класификаторът Bernoulli Naive Bayes се използва за задачи за класификация на документи. Той обаче използва булеви предиктори. Той представя дали дадена дума присъства или не и приема само стойности Да или Не. Класификаторът изчислява вероятностите въз основа на това дали дадена дума се среща в текста или не.

3. Gaussian Naive Bayes

Този класификатор се използва в случай на непрекъсната стойност, но не и дискретна стойност. Този класификатор изчислява вероятностите, използвайки параметрите на Гаус разпределение, т.е. средна стойност и дисперсия.

Гаус наивен Байес

Формулата за условна вероятност се променя на,

Гаус наивен Байес

Предимства и ограничения на наивния класификатор на Бейс

Има различни предимства и недостатъци на алгоритъма Naive Bayes в машинното обучение.

Предимства на Naive Bayes Classifier

  • Простота и ефективност: Naive Bayes е прост и лесен за обучение и прилагане. Той е ефективен поради ниските изчислителни разходи. Може да обработва ефективно големи набори от данни.
  • Бързо обучение и прогнозиране: Naive Bayes не изисква толкова много данни за обучение поради независимостта между функциите. Може да предвижда бързо, след като моделът е обучен.
  • скалируемост: Naive Bayes може да обработва набори от данни с големи размери с голям брой функции. Той се представя добре дори когато броят на функциите е по-голям от броя на примерите за обучение. Той се мащабира с броя на точките от данни и предиктори. Той обработва както непрекъснати, така и дискретни данни.
  • Устойчивост на неподходящи характеристики: Не е чувствителен към неподходящи характеристики.
  • Работи добре с малки комплекти за обучение: Naive Bayes може да осигури разумни резултати дори с ограничени данни за обучение. Може да се справи със ситуации, при които броят на обучителните екземпляри е малък. Не изисква толкова много данни за обучение.

Ограничение на наивния класификатор на Бейс

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

За да преодолеете този проблем, можете да използвате Дървета за вземане на решения, случайни гори, опорни векторни машини (SVM), невронни мрежи и т.н. Тези алгоритми имат способността да научават сложни връзки и зависимости между характеристиките в данните. Така че те могат да предвидят по-точни резултати.

Приложения на Naive Bayes Classifier

Тъй като този алгоритъм е бърз и ефективен, можете да го използвате, за да правите прогнози в реално време.

Откриване на спам

Имейл услуги (като Gmail) използват този алгоритъм, за да определят дали даден имейл е спам. Този алгоритъм е отличен за филтриране на спам.

Анализ на чувството

Може да класифицира текста като положителен, отрицателен или неутрален въз основа на характеристики като избор на дума, структура на изречението и контекст. Намира приложения в мониторинга на социалните медии, прегледите на клиентите и пазарните проучвания.

Класификация на документа

Той може да класифицира документи в категории като спорт, политика, технологии или финанси въз основа на честотата или присъствието на конкретни думи или функции в документа.

Препоръчителни системи

Той може да анализира потребителски предпочитания, исторически данни и характеристики на артикули, за да предвиди потребителските интереси или предпочитания за препоръчване на продукти, филми или статии.

Този алгоритъм за класификатор се използва и при разпознаване на лица, прогнозиране на времето, медицинска диагноза, пазаруване, класификация на новини и др. Можете да внедрите Naive Bayes в Python. Има Naive Bayes класификатор sklearn, т.е. sklearn.naive_bayes. Това е модул, който реализира този алгоритъм.

Заключение

Алгоритмите на Naive Bayes в машинното обучение са класификатори, използвани най-вече при откриване на спам, класифициране на новини, анализ на настроението, прогнозиране на времето, пазаруване и т.н. Алгоритмите на Naive Bayes се основават на теоремата на Bayes. това алгоритъм е проста и лесна за изпълнение. Тъй като е бърз, можем да го използваме в приложения в реално време. Най-големият му недостатък е, че приема независими характеристики (Тъй като независимите характеристики рядко са възможни в реалния живот, затова е известен като Naive). Той третира всяка функция като еднаква. За да преодолеете този недостатък, можете да използвате други класификатори като дърво на решенията, произволна гора, машина за поддържащи вектори (SVM) и др.