Згладжування в моделі Naive Bayes


13

Прогноз Naive Bayes робить свої прогнози, використовуючи цю формулу:

P(Y=y|X=x)=αP(Y=y)iP(Xi=xi|Y=y)

де - нормалізуючий фактор. Для цього потрібно оцінити параметри з даних. Якщо ми робимо це з -smoothing, то отримуємо оцінкуαP(Xi=xi|Y=y)k

P^(Xi=xi|Y=y)=#{Xi=xi,Y=y}+k#{Y=y}+nik

де є можливі значення для . Я з цим добре. Однак для попереднього ми маємоniXi

P^(Y=y)=#{Y=y}N

де в наборі даних є прикладів. Чому ми також не згладжуємо попереднє? Або , скоріше, у нас гладкі до? Якщо так, то який згладжуючий параметр ми обираємо? Здається, трохи нерозумно також вибрати , оскільки ми робимо інший розрахунок. Чи є консенсус? Або це не має великого значення?Nk

Відповіді:


5

Типовою причиною згладжування в першу чергу є обробка випадків, коли . Якби цього не було, ми завжди отримували коли б це було так.#{Xi=xi|Y=y}=0P(Y=y|X=x)=0

Це трапляється, коли, наприклад, класифікуючи текстові документи, ви зустрічаєте слово, яке не було у ваших навчальних даних, або просто не з’являлося в якомусь конкретному класі.

З іншого боку, у випадку попередньої ймовірності класу така ситуація не повинна відбуватися. Якщо це зробило б, це означає, що ви намагаєтеся призначити об'єкти класам, які навіть не відображалися в навчальних даних.P(Y=y)

Також я ніколи не стикався з терміном -smoothing. Згладжування лапласа або добавки набагато частіше.k


1
Причина згладжування в цілому полягає в тому, щоб уникнути перевиконання даних. Випадок, коли кількість якогось класу дорівнює нулю, - це лише особливий випадок подолання (це буває особливо погано). Ви все ще можете захотіти згладити ймовірності, коли спостерігається кожен клас. Я думаю, що мене турбує явна асиметрія - згладжування Лапласа відповідає припущенню, що у вашому наборі даних є додаткові спостереження. Чому б ви ігнорували ці спостереження, коли підходили до попереднього?
Кріс Тейлор

Я можу стверджувати, що має менший сенс згладжувати клас раніше, оскільки MLE для , ймовірно, буде набагато кращим, ніж оцінка . Якщо у мене є підстави вважати, що оцінки моїх класів є упередженими, я відкладу набір перевірки і сама підправляю приори. На мій досвід, перевиконання, як правило, є меншою проблемою з наївним Байесом (на відміну від його дискримінаційного колеги, логістичного регресу). Можливо, ви віддасте перевагу чи більше байєсівське лікування ? P(Y=y)P(Xi=xi|Y=y)
альт

"така ситуація не повинна відбуватися. Якщо це зробило б, це означає, що ви намагаєтеся призначити об'єкти класам, які навіть не відображаються у навчальних даних". Е-е ... як класифікатор призначить об'єкт класу, якого він ніколи не бачив (тобто немає у навчальних даних)?
Jemenake

@ Jemenake Проблему зазвичай називають навчанням з нульовим знімком, наприклад, див. Навчання з
alto

коли ми тренуємо модель, використовуючи набір даних навчальних даних, ми можемо створити vocab за допомогою слів, що зустрічаються у наборі даних про навчання, то чому б не просто видалити нові слова не з vocab, коли робите прогнози на тестовому наборі?
авокадо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.