У Наївних Бейсах, чому турбуватися згладжуванням Лапласа, коли в тестовому наборі є невідомі слова?


27

Я читав сьогодні класифікацію Naive Bayes. Я читав під заголовком Оцінка параметрів з додаванням 1 згладжування :

Нехай посилається на клас (наприклад, позитивний чи негативний), а позначає маркер або слово.cw

Максимальний показник ймовірності для -P(w|c)

count(w,c)count(c)=counts w in class ccounts of words in class c.

Таке оцінювання може бути проблематичним, оскільки воно дасть нам ймовірність для документів з невідомими словами. Поширений спосіб вирішення цієї проблеми - використання згладжування Лапласа.P(w|c)0

Нехай V - це сукупність слів у навчальному наборі, додати до набору слів новий елемент (для невідомого).UNK

Визначте

P(w|c)=count(w,c)+1count(c)+|V|+1,

де позначає словниковий запас (слова у навчальному наборі).V

Зокрема, будь-яке невідоме слово матиме ймовірність

1count(c)+|V|+1.

Моє запитання таке: чому ми взагалі турбуємося з цим згладжуванням Лапласа? Якщо ці невідомі слова, які ми зустрічаємо в тестовому наборі, мають ймовірність, яка, очевидно, майже дорівнює нулю, тобто , який сенс включати їх у модель? Чому б просто не знехтувати їх та видалити? 1count(c)+|V|+1


3
Якщо ви цього не зробите, будь-яке твердження, що містить раніше небачене слово, матиме . Це означає, що сталася неможлива подія. Це означає, що ваша модель була неймовірно поганою. Також у правильній байєсівській моделі це ніколи не може відбутися, оскільки невідоме слово ймовірність матиме чисельник, заданий попереднім (можливо, не 1). Тож я не знаю, чому для цього потрібна фантазійна назва «згладжування Лапласа». p=0
вигадки

1
Яким був текст, з якого вийшло читання?
словазвідси

Відповіді:


17

Вам завжди потрібна ця "безвідмовна" ймовірність.

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

Ще один крайній приклад - тестове речення "Алекс зустрів Стіва". де "зустрічається" з'являється кілька разів у навчальному зразку, але "Алекс" та "Стів" не роблять. Ваша модель зробить висновок, що це твердження дуже вірогідне, що не відповідає дійсності.


Я ненавиджу звучати як повний дебіл, але ви б не хотіли докладно розробити? Як видалення "Алекса" та "Стіва" змінює ймовірність появи твердження?
Метт О'Брайен

2
Якщо припустити незалежність слів P (Alex) P (Steve) P (met) << P (met)
Sid

1
ми могли б створити словниковий запас при навчанні моделі з набору навчальних даних, то чому б просто не видалити всі нові слова, які не з’являються в словнику, коли роблять прогнози на тестових наборах даних?
авокадо

15

Скажімо, ви навчили класифікатор Naive Bayes для 2 класів, "Ham" та "Spam" (тобто він класифікує електронні листи). Для простоти будемо вважати, що попередні ймовірності становитимуть 50/50.

Скажімо, у вас є електронний лист який ваш класифікатор дуже високо оцінює як "Хам", скажімо, та(w1,w2,...,wn)

P(Ham|w1,w2,...wn)=.90
P(Spam|w1,w2,..wn)=.10

Все йде нормально.

Скажімо, у вас є ще один електронний лист який точно такий же, як і вищезгаданий електронний лист, за винятком того, що в ньому є одне слово, яке не входить до словника. Тому, оскільки кількість цього слова дорівнює 0,(w1,w2,...,wn,wn+1)

P(Ham|wn+1)=P(Spam|wn+1)=0

Несподівано,

P(Ham|w1,w2,...wn,wn+1)=P(Ham|w1,w2,...wn)P(Ham|wn+1)=0
і
P(Spam|w1,w2,..wn,wn+1)=P(Spam|w1,w2,...wn)P(Spam|wn+1)=0

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

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


чому ми б дотримувались слова, яке взагалі не існує у лексиці? чому б просто не зняти його?
авокадо

4
якщо ваш класифікатор оцінює електронну пошту, як імовірно, шинку, то p (шина | w1, ..., wn) становить 0,9, а не p (w1, ..., wn | ham)
braaterAfrikaaner

5

Це питання є досить простим, якщо ви знайомі з оцінниками Байєса, оскільки це безпосередньо висновок оцінки Байєса.

У байєсівському підході параметри вважаються величиною, зміна якої може бути описана розподілом ймовірності (або попереднім розподілом).

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

Спочатку визначтеся

m=|V|,n=ni

pi

p(p1,p2,...,pм|н1,н2,...,нм)=Γ(н+м)i=1мΓ(нi+1)i=1мpiнi

pi

Е[pi]=нi+1н+м

pipi

p^i=Е[pi]

Ви можете бачити, що ми робимо той самий висновок, що і Laplace Smoothing.


4

Ігнорування цих слів - ще один спосіб впоратися з цим. Це відповідає усередненню (інтеграції) для всіх відсутніх змінних. Тож результат інший. Як?

P(C|d)=argmaxCip(ti|C)P(C)P(d)argmaxCip(ti|C)P(C)
tid

Скажімо, маркер не відображається. Замість використання згладжування Лапласа (що походить від накладення Діріхле перед попередньою багаточленною Байєсом), ви підсумовуєте що відповідає вислову: Я приймаю зважене голосування за всі можливості для невідомих жетонів (мати їх чи ні) .tktk

П(С|г)аргмаксСткip(тi|С)П(С)=аргмаксСП(С)iкp(тi|С)ткp(тк|С)=аргмаксСП(С)iкp(тi|С)

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


2

Ви хочете знати, чому ми взагалі переймаємося згладжуванням класифікатора Naive Bayes (коли ми можемо замість цього викинути невідомі функції).

Відповідь на ваше запитання: не всі слова повинні бути невідомими у всіх класах.

Скажімо, є два класи M і N з функціями A , B і C таким чином:

М: А = 3, В = 1, С = 0

(В класі М , з'являється в 3 рази і B тільки один раз)

N: A = 0, B = 1, C = 3

(В класі N , С з'являється в 3 рази і B тільки один раз)

Давайте подивимося, що станеться, коли ви викинете функції, які з’являються нульові рази.

A) Відкинути функції, які з’являються нульовими разів у будь-якому класі

Якщо ви викидаєте функції A і C, оскільки вони з'являються нульові рази в будь-якому з класів, вам залишається лише функція B для класифікації документів.

І втратити цю інформацію - це погано, як ви побачите нижче!

Якщо вам подають тестовий документ наступним чином:

B = 1, C = 3

(Він містить B один раз і C тричі)

Тепер, так як ви відкинув особливість A і B , ви не будете в змозі сказати , чи належить вищевказаний документ для класу М або класу N .

Отже, втратити будь-яку інформацію про функції - це погано!

В) Викинути функції, які з’являються нульовими разів у всіх класах

Чи можна обійти цю проблему, відкинувши лише ті функції, які з’являються нульові рази у всіх класах?

Ні, тому що це створило б власні проблеми!

Наступний тестовий документ ілюструє, що буде, якби ми це зробили:

А = 3, В = 1, С = 1

Імовірність M і N стала б нульовою (оскільки ми не викинули нульову ймовірність A у класі N та нульову ймовірність C у класі M ).

В) Не кидайте нічого - використовуйте згладжування

Згладжування дозволяє правильно класифікувати обидва вищевказані документи, оскільки:

  1. Ви не втрачаєте інформацію про підрахунок у класах, де така інформація є і
  2. Вам не доведеться боротися з нульовими підрахунками.

Наївні класифікатори Байєса на практиці

Класифікатор Naive Bayes в NLTK використовував для викидання функцій, які мали нульовий підрахунок у будь-якому з класів.

Це використовувалося для того, щоб він погано працював при навчанні з використанням жорсткої процедури ЕМ (де класифікатор завантажується з дуже мало даних про навчання).


2
@ Aiaioo Labs Ви не змогли усвідомити, що він має на увазі слова, які взагалі не з'являються у навчальному наборі, для вашого прикладу він мав на увазі, якщо D з'явився, проблема не полягає у згладжуванні Лапласа на обчисленнях з навчальний набір, а не тестовий набір. Використання згладжування лапласа на невідомих словах із набору TEST спричиняє ймовірність перекосу в бік класу, який має найменшу кількість лексем, оскільки 0 + 1/2 + 3 перевищує 0 + 1/3 + 3 (якщо один із класів мав 3 жетони, а інші мали 2). ...

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

@DrakeThatcher, дуже згоден з вами, так, якщо ми не видалимо слова не з лексики, то передбачувана проба буде перекошена до класу з найменшою кількістю слів.
авокадо

1

Я також зіткнувся з тією ж проблемою під час вивчення Naive Bayes.

На мою думку, кожного разу, коли ми стикаємося з тестовим прикладом, до якого ми не стикалися під час тренувань, тоді позамовна ймовірність стане 0.

Таким чином, додаючи 1, навіть якщо ми ніколи не тренуємось на певній особливості / класі, ймовірність заднього рівня ніколи не буде 0.


1

Метт, ти маєш рацію, ти піднімаєш дуже гарну точку - так, Лаплас Згладжування - це відверто дурниця! Просто викидання цих функцій може бути правильним підходом, особливо коли в знаменнику також є невелика кількість - просто не вистачає доказів, щоб підтвердити оцінку ймовірності.

У мене є сильна неприязнь до вирішення будь-якої проблеми за допомогою використання довільної корекції. Проблема тут - нулі, "рішення" полягає в тому, щоб просто "додати якесь невелике значення до нуля, щоб воно більше не було нульовим - МАГІЧНА проблема не більше". Звичайно, це абсолютно довільно.

Ваша пропозиція щодо кращого вибору функцій для початку - це менш довільний підхід, і IME підвищує продуктивність. Крім того, Laplace Smoothing у поєднанні з наївним Bayes, як моя модель, за моїм досвідом, погіршує проблему деталізації - тобто проблему, коли результат балів має бути близьким до 1,0 або 0,0 (якщо кількість функцій нескінченна, то кожен бал становитиме 1,0 або 0,0 - це наслідок припущення про незалежність).

Зараз альтернативні методи оцінки ймовірності існують (крім максимальної вірогідності + згладжування Лапласа), але масово знаходяться під документами. Насправді існує ціле поле під назвою Процеси індуктивної логіки та висновку, які використовують багато інструментів з теорії інформації.

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

Це приємне властивість, оскільки кількість точок даних зменшує оцінки, мирно плавно наближаючись до попереднього - і тому їхній ефект у байєсівському розрахунку є нульовим. Згладжування Лапласа з іншого боку змушує кожну оцінку наближатись до точки Максимальної ентропії, яка може бути не попередньою, тому ефект у розрахунку не є нульовим і просто додасть шуму.

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