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

⚡ Умно обобщение

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

  • 🔘 Определение: Класификатор, който етикетира запис, като сравнява апостериорната вероятност на всеки кандидат-клас.
  • ☑️ Наивно предположение: Всяка характеристика се третира като условно независима, което рядко е валидно, но все пак е добре предсказващо.
  • Формула на Байес: P(A|B) е равно на P(B|A), умножено по P(A), разделено на P(B).
  • 🧪 Разработен пример: Ден, отстъпка и безплатна доставка заедно дават 97.33 процента вероятност за покупка.
  • 🛠️ Три варианта: Многочленен за брой думи, Бернулиев за наличие на думи, Гаусов за непрекъснати стойности.
  • ⚠️ Ограничение: Корелираните характеристики се игнорират, така че дърветата на решенията или SVM са по-подходящи за зависими данни.

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

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

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

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

Диаграмата по-долу очертава този поток.

Наивен байесов класификатор, присвояващ етикет на клас на входен запис

Naive Bayes се използва за решаване на проблеми с класификацията. Той прогнозира въз основа на вероятността за обект. Naive Bayes се основава на теоремата на Bayes и се използва най-вече за класификация на текст. Naive 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) е вероятността за събитие А, когато събитие B вече се е случило. Вероятността P(B) не трябва да е нула.

  • Трябва да намерите вероятността за събитие A, която се дава, когато събитие B (доказателство) е вярно.
  • P(A) е априорната вероятност на A, т.е. вероятността за събитието преди да се наблюдават каквито и да е доказателства. Тук събитие B е стойността на неизвестен случай.
  • P(A|B) е апостериорната вероятност на събитие А, т.е. вероятността на А след разглеждане на доказателствата Б.

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

Най-бързият начин да видите как формулата работи е да я изпълните на ръка.

Нека вземем пример с магазинping за да се разбере работата на наивния класификатор на Байес. В този набор от данни има малък примерен набор от 30 реда за този пример.

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

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

Таблици с вероятности за Ден, Отстъпка и Безплатна Доставка, използвани в комбинираното изчисление

Пример 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 %

Двата резултата се сумират до 1.013, а не до 1, защото предположението за независимост прави всяка оценка приблизителна, така че делението на общия сбор ги преобразува в проценти.

Имайте предвид, че тъй като 97.33% е по-голямо от 2.67%. Можем да заключим, че средният клиент ще купи на празник с отстъпка и безплатна доставка.

Видове наивен байесов модел

Има много видове наивни байесови класификатори. Тук обсъдихме класификаторите на Мултином, Бернули и Гаус наивен Бейс.

вариант Тип функция Типична употреба
Многочлен Брой думи Класификация на теми и документи
Бернули Бинарни флагове за присъствие или отсъствие Кратки текстове и филтриране на спам
Гаус Непрекъснати числови стойности Показания и измервания на сензори

1. Мултиномен наивен Бейс

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

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

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

3. Gaussian Naive Bayes

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

Гаусова камбанова крива, използвана за моделиране на непрекъснати характеристики в наивен Байес

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

Гаусова наивна Байесова формула за условна вероятност, използваща средна стойност и дисперсия

- scikit-научите Библиотеката добавя още два варианта: Допълнителен наивен Байес за небалансиран текст и Категоричен наивен Байес за дискретни категории.

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

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

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

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

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

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

Второ предупреждение: вероятностите за класове, които докладва, са лошо калибрирани, така че доверителната стойност, прикрепена към прогнозата, не е надеждна вероятност.

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

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

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

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

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

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

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

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

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

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

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

Този алгоритъм за класификация се използва също в разпознаването на лица, прогнозирането на времето, медицинската диагностика и пазаруването.ping, Класификация на новини и др. Можете да внедрите наивен Байес в Python, където модулът sklearn.naive_bayes предоставя всеки от описаните по-горе варианти.

Въпроси и Отговори

Импортирайте варианта, от който се нуждаете sklearn.naive_bayes, разделете данните с train_test_split, след което извикайте fit() върху обучаващите редове и predict() върху тестовите редове. GaussianNB е подходящ за непрекъснати характеристики, докато MultinomialNB и BernoulliNB обработват броя на текста и флаговете за двоични думи.

Ако дадена категория никога не се появява с клас в обучението, нейната условна вероятност става нула и заличава цялото произведение. Лапласовото изглаждане добавя единица към всеки брой, така че нищо не се срива до нула. Scikit-learn показва това като алфа параметър.

Нито един от двамата не печели с пълна сила. Наивният Байесов метод се обучава по-бързо, нуждае се от по-малко данни и се справя с текст с много измерение. Логистичната регресия моделира корелирани характеристики и генерира по-добре калибрирани вероятности. При малки текстови набори от данни наивният Байесов метод често води; с повече данни логистичната регресия го изпреварва.

Направете тестов набор и сравнете прогнозите с истинските етикети, използвайки матрица на объркване, след това изведете прецизност, пълнота на отчитане и F1. Само по себе си точността подвежда при небалансирани данни, като например спам, където един клас доминира в извадката.

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

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

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

Копилот на GitHub бързо изготвя шаблона — импортира, обучава и тества разделяне, напасва и предсказва извиквания — от кратък коментар. Винаги проверявайте избрания вариант и кода за оценка, защото един правдоподобен скрипт все още може да обучи грешен модел.

Обобщете тази публикация с: